OSDN Git Service

* basic-block.h (single_succ_edge, single_pred_edge, ei_container,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-06-08  Jan Hubicka  <jh@suse.cz>
2
3         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
4         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
5
6 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
7
8         PR tree-optimization/39874
9         PR middle-end/28685
10         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
11         Declare.
12         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
13         same_bool_result_p): New.
14         (and_var_with_comparison, and_var_with_comparison_1,
15         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
16         (or_var_with_comparison, or_var_with_comparison_1,
17         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
18         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
19         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
20         of combine_comparisons.
21         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
22
23 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
24
25         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
26         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27         * config/pdp11/pdp11.c (moxie_function_value, moxie_libcall_value,
28         moxie_function_value_regno_p): New functions.
29         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
30         TARGET_FUNCTION_VALUE_REGNO_P): Define.
31
32 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
33
34         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
35         Thumb-2 in the MINUS case.
36
37 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
38
39         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
40
41         * doc/gty.texi (GTY Options): Document typed GC allocation and
42         variable_size GTY option.
43
44         * ggc-internal.h: New.
45
46         * ggc.h: Update copyright year.
47         (digit_string): Move to stringpool.c.
48         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
49         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
50         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
51         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
52         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
53         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
54         (ggc_force_collect, ggc_get_size, ggc_statistics)
55         (ggc_print_common_statistics): Move to ggc-internal.h.
56         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
57         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
58         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
59         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
60         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
61         (ggc_alloc_zone_pass_stat): Remove.
62         (ggc_internal_alloc_stat, ggc_internal_alloc)
63         (ggc_internal_cleared_alloc_stat): New.
64         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
65         (ggc_internal_vec_alloc_stat)
66         (ggc_internal_cleared_vec_alloc_stat)
67         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
68         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
69         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
70         (ggc_cleared_alloc_ptr_array_two_args): New.
71         (htab_create_ggc, splay_tree_new_ggc): Redefine.
72         (ggc_splay_alloc): Change the type of the first argument to
73         enum gt_types_enum.
74         (ggc_alloc_string): Make macro.
75         (ggc_alloc_string_stat): New.
76         (ggc_strdup): Redefine.
77         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
78         (ggc_alloc_rtvec_sized): New.
79         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
80         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
81         (ggc_internal_cleared_alloc_zone_stat)
82         (ggc_internal_zone_alloc_stat)
83         (ggc_internal_zone_cleared_alloc_stat)
84         (ggc_internal_zone_vec_alloc_stat)
85         (ggc_alloc_zone_rtx_def_stat)
86         (ggc_alloc_zone_tree_node_stat)
87         (ggc_alloc_zone_cleared_tree_node_stat)
88         (ggc_alloc_cleared_gimple_statement_d_stat): New.
89
90         * ggc-common.c: Include ggc-internal.h.
91         (ggc_internal_cleared_alloc_stat): Rename from
92         ggc_alloc_cleared_stat.
93         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
94         (ggc_calloc): Remove.
95         (ggc_cleared_alloc_htab_ignore_args): New.
96         (ggc_cleared_alloc_ptr_array_two_args): New.
97         (ggc_splay_alloc): Add obj_type parameter.
98         (init_ggc_heuristics): Formatting fixes.
99
100         * ggc-none.c: Update copyright year.
101         (ggc_alloc_stat): Rename to ggc_alloc_stat.
102         (ggc_alloc_cleared_stat): Rename to
103         ggc_internal_cleared_alloc_stat.
104         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
105
106         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
107         Remove references to ggc_alloc in comments.
108         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
109         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
110         (new_ggc_zone, destroy_ggc_zone): Remove.
111         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
112
113         * ggc-zone.c: Include ggc-internal.h.  Remove references to
114         ggc_alloc in comments.
115         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
116         (ggc_internal_alloc_zone_pass_stat): New.
117         (ggc_internal_cleared_alloc_zone_stat): New.
118         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
119         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
120         (new_ggc_zone, destroy_ggc_zone): Remove.
121
122         * stringpool.c: Update copyright year.  Include ggc-internal.h
123         (digit_vector): Make static.
124         (digit_string): Moved from ggc.h.
125         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
126         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
127
128         * Makefile.in (GGC_INTERNAL_H): New.
129         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
130         $(GGC_INTERNAL_H) to dependencies.
131
132         * gentype.c: Update copyright year.
133         (walk_type): Accept variable_size GTY option.
134         (USED_BY_TYPED_GC_P): New macro.
135         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
136         whitespace at the end of strings.
137         (get_type_specifier, variable_size_p): New functions.
138         (alloc_quantity, alloc_zone): New enums.
139         (write_typed_alloc_def): New function.
140         (write_typed_struct_alloc_def): Likewise.
141         (write_typed_typed_typedef_alloc_def): Likewise.
142         (write_typed_alloc_defns): Likewise.
143         (output_typename, write_splay_tree_allocator_def): Likewise.
144         (write_splay_tree_allocators): Likewise.
145         (main): Call write_typed_alloc_defns and
146         write_splay_tree_allocators.
147
148         * lto-streamer.h (lto_file_decl_data_ptr): New.
149
150         * passes.c (order): Define using cgraph_node_ptr.
151
152         * strinpool.c (struct string_pool_data): Declare nested_ptr using
153         ht_identifier_ptr.
154
155         * gimple.h (union gimple_statement_d): Likewise.
156
157         * rtl.h (struct rtx_def): Likewise.
158         (struct rtvec_def): Likewise.
159
160         * tree.h (union tree_node): Likewise.
161
162         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
163
164         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
165
166         * tree-scalar-evolution.c (scev_initialize): Likewise.
167
168         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
169
170         * dwarf2asm.c (dw2_force_const_mem): Likewise.
171
172         * omp-low.c (lower_omp_critical): Likewise.
173
174         * bitmap.h (struct bitmap_head_def): Update comment to not
175         reference ggc_alloc.
176
177         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
178
179         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
180
181         * ipa-prop.c (duplicate_ggc_array): Rename to
182         duplicate_ipa_jump_func_array.  Use typed GC allocation.
183         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
184
185         * gimple.c (gimple_alloc_stat): Use
186         ggc_alloc_cleared_gimple_statement_d_stat.
187
188         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
189
190         * tree.c (make_node_stat): Use
191         ggc_alloc_zone_cleared_tree_node_stat.
192         (make_tree_vec_stat): Likewise.
193         (build_vl_exp_stat): Likewise.
194         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
195         (make_tree_binfo_stat): Likewise.
196         (tree_cons_stat): Likewise.
197
198         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
199         (shallow_copy_rtx_stat): Likewise.
200         (make_node_stat): Likewise.
201
202         * lto-symtab.c: Fix comment.
203
204         * tree-cfg.c (create_bb): Update comment to not reference
205         ggc_alloc_cleared.
206         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
207         value.
208
209         * varpool.c (varpool_node): Use typed GC allocation.
210         (varpool_extra_name_alias): Likewise.
211
212         * varasm.c (emutls_decl): Likewise.
213         (get_unnamed_section): Likewise.
214         (get_noswitch_section): Likewise.
215         (get_section): Likewise.
216         (get_block_for_section): Likewise.
217         (build_constant_desc): Likewise.
218         (create_constant_pool): Likewise.
219         (force_const_mem): Likewise.
220
221         * tree.c (build_vl_exp_stat): Likewise.
222         (build_real): Likewise.
223         (build_string): Likewise.
224         (decl_debug_expr_insert): Likewise.
225         (decl_value_expr_insert): Likewise.
226         (type_hash_add): Likewise.
227         (build_omp_clause): Likewise.
228
229         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
230
231         * tree-ssa.c (init_tree_ssa): Likewise.
232
233         * tree-ssa-structalias.c (heapvar_insert): Likewise.
234
235         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
236
237         * tree-ssa-loop-niter.c (record_estimate): Likewise.
238
239         * tree-ssa-alias.c (get_ptr_info): Likewise.
240
241         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
242
243         * tree-phinodes.c (allocate_phi_node): Likewise.
244
245         * tree-iterator.c (tsi_link_before): Likewise.
246         (tsi_link_after): Likewise.
247
248         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
249
250         * tree-dfa.c (create_var_ann): Likewise.
251
252         * tree-cfg.c (create_bb): Likewise.
253
254         * toplev.c (alloc_for_identifier_to_locale): Likewise.
255         (general_init): Likewise.
256
257         * stringpool.c (stringpool_ggc_alloc): Likewise.
258         (gt_pch_save_stringpool): Likewise.
259
260         * sese.c (if_region_set_false_region): Likewise.
261
262         * passes.c (do_per_function_toporder): Likewise.
263
264         * optabs.c (set_optab_libfunc): Likewise.
265         (set_conv_libfunc): Likewise.
266
267         * lto-symtab.c (lto_symtab_register_decl): Likewise.
268
269         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
270         (input_eh_region): Likewise.
271         (input_eh_lp): Likewise.
272         (make_new_block): Likewise.
273         (unpack_ts_real_cst_value_fields): Likewise.
274
275         * lto-section-in.c (lto_new_in_decl_state): Likewise.
276
277         * lto-cgraph.c (input_node_opt_summary): Likewise.
278
279         * loop-init.c (loop_optimizer_init): Likewise.
280
281         * lambda.h (lambda_vector_new): Likewise.
282
283         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
284
285         * ira.c (update_equiv_regs): Likewise.
286
287         * ipa.c (cgraph_node_set_new): Likewise.
288         (cgraph_node_set_add): Likewise.
289         (varpool_node_set_new): Likewise.
290         (varpool_node_set_add): Likewise.
291
292         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
293         (duplicate_ipa_jump_func_array): Likewise.
294         (ipa_read_node_info): Likewise.
295
296         * ipa-cp.c (ipcp_create_replace_map): Likewise.
297
298         * integrate.c (get_hard_reg_initial_val): Likewise.
299
300         * gimple.c (gimple_alloc_stat): Likewise.
301         (gimple_build_omp_for): Likewise.
302         (gimple_seq_alloc): Likewise.
303         (gimple_copy): Likewise.
304
305         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
306         (gsi_insert_after_without_update): Likewise.
307
308         * function.c (add_frame_space): Likewise.
309         (insert_temp_slot_address): Likewise.
310         (assign_stack_temp_for_type): Likewise.
311         (allocate_struct_function): Likewise.
312         (types_used_by_var_decl_insert): Likewise.
313
314         * except.c (init_eh_for_function): Likewise.
315         (gen_eh_region): Likewise.
316         (gen_eh_region_catch): Likewise.
317         (gen_eh_landing_pad): Likewise.
318         (add_call_site): Likewise.
319
320         * emit-rtl.c (get_mem_attrs): Likewise.
321         (get_reg_attrs): Likewise.
322         (start_sequence): Likewise.
323         (init_emit): Likewise.
324
325         * dwarf2out.c (new_cfi): Likewise.
326         (queue_reg_save): Likewise.
327         (dwarf2out_frame_init): Likewise.
328         (new_loc_descr): Likewise.
329         (find_AT_string): Likewise.
330         (new_die): Likewise.
331         (add_var_loc_to_decl): Likewise.
332         (clone_die): Likewise.
333         (clone_as_declaration): Likewise.
334         (break_out_comdat_types): Likewise.
335         (new_loc_list): Likewise.
336         (loc_descriptor): Likewise.
337         (add_loc_descr_to_each): Likewise.
338         (add_const_value_attribute): Likewise.
339         (tree_add_const_value_attribute): Likewise.
340         (add_comp_dir_attribute): Likewise.
341         (add_name_and_src_coords_attributes): Likewise.
342         (lookup_filename): Likewise.
343         (store_vcall_insn): Likewise.
344         (dwarf2out_init): Likewise.
345
346         * dbxout.c (dbxout_init): Likewise.
347
348         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
349
350         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
351
352         * config/score/score7.c (score7_output_external): Likewise.
353
354         * config/score/score3.c (score3_output_external): Likewise.
355
356         * config/s390/s390.c (s390_init_machine_status): Likewise.
357
358         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
359         (rs6000_init_machine_status): Likewise.
360         (output_toc): Likewise.
361
362         * config/pa/pa.c (pa_init_machine_status): Likewise.
363         (get_deferred_plabel): Likewise.
364
365         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
366
367         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
368
369         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
370
371         * config/mep/mep.c (mep_init_machine_status): Likewise.
372         (mep_note_pragma_flag): Likewise.
373
374         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
375
376         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
377
378         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
379
380         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
381         (i386_pe_maybe_record_exported_symbol): Likewise.
382
383         * config/i386/i386.c (get_dllimport_decl): Likewise.
384         (ix86_init_machine_status): Likewise.
385         (assign_386_stack_local): Likewise.
386
387         * config/frv/frv.c (frv_init_machine_status): Likewise.
388
389         * config/darwin.c (machopic_indirection_name): Likewise.
390
391         * config/cris/cris.c (cris_init_machine_status): Likewise.
392
393         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
394
395         * config/avr/avr.c (avr_init_machine_status): Likewise.
396
397         * config/arm/arm.c (arm_init_machine_status): Likewise.
398
399         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
400         (alpha_need_linkage): Likewise.
401         (alpha_use_linkage): Likewise.
402
403         * cgraph.c (cgraph_allocate_node): Likewise.
404         (cgraph_create_edge_1): Likewise.
405         (cgraph_create_indirect_edge): Likewise.
406         (cgraph_add_asm_node): Likewise.
407
408         * cfgrtl.c (init_rtl_bb_info): Likewise.
409
410         * cfgloop.c (alloc_loop): Likewise.
411         (rescan_loop_exit): Likewise.
412
413         * cfg.c (init_flow): Likewise.
414         (alloc_block): Likewise.
415         (unchecked_make_edge): Likewise.
416
417         * c-parser.c (c_parse_init): Likewise.
418         (c_parse_file): Likewise.
419
420         * c-decl.c (bind): Likewise.
421         (record_inline_static): Likewise.
422         (push_scope): Likewise.
423         (make_label): Likewise.
424         (lookup_label_for_goto): Likewise.
425         (finish_struct): Likewise.
426         (finish_enum): Likewise.
427         (c_push_function_context): Likewise.
428
429         * bitmap.c (bitmap_element_allocate): Likewise.
430         (bitmap_gc_alloc_stat): Likewise.
431
432         * alias.c (record_alias_subset): Likewise.
433         (init_alias_analysis): Likewise.
434
435 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
436         
437         * fold-const.c (fold_comparison): Remove redundant parenthesis.
438         * tree-inline.c (expand_call_inline): Pass translated return value of
439         cgraph_inline_failed_string to diagnostic function.
440
441 2010-06-08  Andrew Pinski <pinskia@gmail.com>
442             Shujing Zhao  <pearly.zhao@oracle.com>
443
444         PR c/37724
445         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
446         implicit bad conversions is initialization.
447         (error_init): Use gmsgid instead of msgid for argument name and change
448         the call for error.
449         (pedwarn_init): Use gmsgid instead of msgid for argument name and
450         change the call for pedwarn.
451         (warning_init): Use gmsgid instead of msgid for argument name and
452         change the call for warning.
453
454 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
455
456         * config/mips/mips-protos.h (mips_print_operand): Delete.
457         (mips_print_operand_address): Delete.
458         * config/mips/mips.h (mips_print_operand_punct): Delete.
459         (PRINT_OPERAND): Delete.
460         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
461         (PRINT_OPERAND_ADDRESS): Delete.
462         * config/mips/mips.c (mips_print_operand_punct): Make static.
463         (mips_print_operand_address): Make static.
464         (mips_print_operand): Make static.  Call
465         mips_print_operand_punct_valid_p.
466         (mips_print_operand_punct_valid_p): New function.
467         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
468         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
469
470 2010-06-07  Jan Hubicka  <jh@suse.cz>
471
472         PR middle-end/44454
473         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
474         are allocated.
475
476 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
477
478         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
479         name of RECORD.
480
481 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
482
483         * doc/sourcebuild.texi (Effective-Target Keywords, Other
484         attributes): Document gas.
485
486 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
487
488         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
489         <TYPE_LEA>: Split instruction.
490         <default>: Remove alternative 2 handling.
491         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
492         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
493         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
494
495         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
496         (ashift_zext lea splitter): Use DImode for multiplication.
497
498         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
499         to generate addition.
500
501 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
502
503         * common.opt (fira-verbose): Use Var.
504         (fpcc-struct-return): Use Init instead of VarExists.
505         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
506         toplev.c.
507         * flags.h (flag_signed_char, flag_short_enums,
508         flag_pcc_struct_return, flag_ira_verbose,
509         flag_detailed_statistics, flag_remove_unreachable_functions):
510         Remove.
511         * toplev.c (flag_detailed_statistics, flag_signed_char,
512         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
513         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
514         * toplev.h (flag_crossjumping, flag_if_conversion,
515         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
516         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
517         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
518         flag_cprop_registers, time_report, flag_ira_loop_pressure,
519         flag_ira_coalesce, flag_ira_move_spills,
520         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
521
522 2010-06-07  Jan Hubicka  <jh@suse.cz>
523
524         * df-core.c (df_analyze_problem): Do verification after allocation.
525
526         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
527         (df_lr_alloc): Initialize problem data; move bitmaps to
528         lr_bitmaps obstack.
529         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
530         (df_lr_verify_solution_start): Do not initialize problem data;
531         allocate bitmaps in lr_bitmaps.
532         (df_lr_verify_solution_end): Do not free problem data.
533
534 2010-06-07  Jan Hubicka  <jh@suse.cz>
535
536         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
537         if caller is noreturn.
538         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
539         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
540         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
541         * ipa-pure-const.c (check_decl): Add IPA parameter.
542         (state_from_flags): New function.
543         (better_state, worse_state): New functions.
544         (check_call): When in IPA mode, do not care about callees.
545         (check_load, check_store): Update.
546         (check_ipa_load, check_ipa_store): New.
547         (check_stmt): When in IPA mode, use IPA checkers.
548         (analyze_function): Use state_from_flags.
549         (propagate): Check indirect edges and references.
550
551 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
552
553         PR rtl-optimization/44404
554         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
555         of count_occurrences to see if it's safe to modify mem_insn.insn.
556
557 2010-06-07  Richard Guenther  <rguenther@suse.de>
558
559         * gimplify.c (gimplify_cleanup_point_expr): For empty body
560         and EH-only cleanup drop the cleanup instead of inserting it
561         unconditionally.
562
563 2010-06-07  Ira Rosen  <irar@il.ibm.com>
564
565         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
566         documentation.
567         * targhooks.c (default_builtin_vectorization_cost): New function.
568         * targhooks.h (default_builtin_vectorization_cost): Declare.
569         * target.h (enum vect_cost_for_stmt): Define.
570         (builtin_vectorization_cost): Change argument and comment.
571         * tree-vectorizer.h: Remove cost model macros.
572         * tree-vect-loop.c: Include target.h.
573         (vect_get_cost): New function.
574         (vect_estimate_min_profitable_iters): Replace cost model macros with
575         calls to vect_get_cost.
576         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
577         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
578         default implementation.
579         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
580         calls to target hook builtin_vectorization_cost.
581         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
582         Likewise.
583         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
584         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
585         implementation to return costs.
586         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
587         * config/spu/spu.h: Remove vectorizer cost model macros.
588         * config/i386/i386.h: Likewise.
589         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
590         a call to target hook builtin_vectorization_cost.
591
592 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
593
594         PR target/44319
595         * config/i386/i386.c (override_options): Turn zee pass on for level 2
596         and above and defer till target is known.
597         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
598         turn off otherwise.
599
600 2010-05-25  Jan Hubicka  <jh@suse.cz>
601
602         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
603         (df_compact_blocks): Likewise.
604         * df.h (struct df): Turn hardware_regs_used,
605         regular_block_artificial_uses, eh_block_artificial_uses,
606         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
607         bitmap_head.
608         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
609         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
610         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
611         df_scan_blocks, df_insn_delete, df_insn_rescan,
612         df_insn_rescan_debug_internal, df_insn_rescan_all,
613         df_process_deferred_rescans, df_process_deferred_rescans,
614         df_notes_rescan, df_get_call_refs, df_get_call_refs,
615         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
616         df_record_entry_block_defs, df_record_exit_block_uses,
617         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
618         df_scan_verify): Update.
619
620 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
621
622         PR c++/44188
623         * c-common.c (is_typedef_decl): Move this definition ...
624         * tree.c (is_typedef_decl): ... here.
625         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
626         * c-common.h (is_typedef_decl): Move this declaration ...
627         * tree.h (is_typedef_decl): ... here.
628         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
629         * dwarf2out.c (is_naming_typedef_decl): New function.
630         (gen_tagged_type_die): Split out of ...
631         (gen_type_die_with_usage): ... this function. When an anonymous
632         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
633         is emitted for the typedef.
634         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
635         anonymous tagged types.
636
637 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
638
639         PR c/20000
640         * c-decl.c (grokdeclarator): Delete warning.
641
642 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
643
644         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
645         newly built CALL_EXPR.
646         * tree-profile.c (tree_profiling): Don't profile functions produced
647         for built-in stuff.
648
649 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
650
651         PR bootstrap/44427
652         PR bootstrap/44428
653         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
654         endianness-independent.
655
656 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
657
658         * c-common.c: Move to c-family/.
659         * c-common.def: Likewise.
660         * c-common.h: Likewise.
661         * c-cppbuiltin.c: Likewise.
662         * c-dump.c: Likewise.
663         * c-format.c: Likewise.
664         * c-format.h : Likewise.
665         * c-gimplify.c: Likewise.
666         * c-lex.c: Likewise.
667         * c-omp.c: Likewise.
668         * c.opt: Likewise.
669         * c-opts.c: Likewise.
670         * c-pch.c: Likewise.
671         * c-ppoutput.c: Likewise.
672         * c-pragma.c: Likewise.
673         * c-pragma.h: Likewise.
674         * c-pretty-print.c: Likewise.
675         * c-pretty-print.h: Likewise.
676         * c-semantics.c: Likewise.
677         * stub-objc.c: Likewise.
678
679         * gengtype.c (get_file_langdir): Special-case files in c-family/.
680         (get_output_file_with_visibility): Fix name for c-common.h.
681         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
682
683         * c-tree.h: Update include path for moved files.
684         * c-lang.c: Likewise.
685         * c-lang.h: Likewise.
686         * c-parser.c: Likewise.
687         * c-convert.c: Likewise.
688         * c-decl.c: Likewise.
689         * c-objc-common.c: Likewise.
690         * configure.ac: Make sure c-family/ exists in the build directory.
691         * configure: Regenerate.
692         * Makefile.in: Update paths for moved files.  Regroup files per
693         location and update dependencies.  Move generated_files down after
694         ALL_GTFILES_H.
695
696         * config/spu/spu-c.c: Update paths for moved files.
697         * config/mep/mep-pragma.c: Likewise.
698         * config/darwin-c.c: Likewise.
699         * config/i386/msformat-c.c: Likewise.
700         * config/i386/i386-c.c: Likewise.
701         * config/avr/avr-c.c: Likewise.
702         * config/sol2-c.c: Likewise.
703         * config/ia64/ia64-c.c: Likewise.
704         * config/rs6000/rs6000-c.c: Likewise.
705         * config/arm/arm.c: Likewise.
706         * config/arm/arm-c.c: Likewise.
707         * config/h8300/h8300.c: Likewise.
708         * config/v850/v850-c.c: Likewise.
709
710         * config/t-darwin: Fix dependencies for moved files.
711         * config/t-sol2: Fix dependencies for moved files.
712         * config/mep/t-mep: Fix dependencies for moved files.
713         * config/ia64/t-ia64: Fix dependencies for moved files.
714         * config/rs6000/t-rs6000: Fix dependencies for moved files.
715         * config/v850/t-v850: Fix dependencies for moved files.
716         * config/v850/t-v850e: Fix dependencies for moved files.
717
718         * config/m32c/m32c-pragma.c
719
720         * po/exgettext: Look in c-family/ also.
721
722 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
723
724         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
725         (mark_control_dependent_edges_necessary): Call it instead of marking
726         the last statement manually.
727         (propagate_necessity): Likewise.
728
729 2010-06-05  Jan Hubicka  <jh@suse.cz>
730
731         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
732         for dominance frontiers.
733         (rewrite_into_ssa): Update for bitmap heads in dominance
734         frontiers.
735         (insert_updated_phi_nodes_for): Likewise.
736         (update_ssa): Likewise.
737         * cfganal.c (compute_dominance_frontiers_1): Likewise.
738         (compute_dominance_frontiers): Likewise.
739         (compute_idf): Likewise.
740         * df-problems.c (df_md_local_compute): Likewise.
741
742 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
743
744         * target.h (struct gcc_target): Add memory_move_cost field.
745         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
746         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
747         * targhooks.c (default_memory_move_cost): New function.
748         * targhooks.h (default_memory_move_cost): Declare function.
749         * reload.h (memory_move_cost): Declare.
750         (memory_move_secondary_cost): Change type of 'in' argument to bool.
751         * reginfo.c (memory_move_cost): New function.
752         (memory_move_secondary_cost): Change type of 'in' argument to bool.
753         * ira.h (ira_memory_move_cost): Update comment.
754         * ira.c: (ira_memory_move_cost): Update comment.
755         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
756         with memory_move_cost.
757         * postreload.c (reload_cse_simplify_set): (Ditto.).
758         * reload1.c (choose_reload_regs): (Ditto.).
759         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
760         (MEMORY_MOVE_COST):  Revise documentation.
761
762         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
763         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
764         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
765         type of 'in' argument to bool.
766         (TARGET_MEMORY_MOVE_COST): Define.
767
768 2010-06-05  Jan Hubicka  <jh@suse.cz>
769
770         * ipa-pure-const.c (propagate): Fix typo in handling of functions
771         that cannot return.  Be more careful when merging the results with
772         previously known ones.
773
774 2010-06-05  Matthias Klose  <doko@ubuntu.com>
775
776         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
777         function to add the -iplugindir option.
778         (find_plugindir_spec_function): Add new declaration and function.
779         (static_spec_func): Use it for "find-plugindir".
780
781 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
782
783         PR c++/44361
784         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
785         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
786         statement expression.
787
788 2010-06-05  Jan Hubicka  <jh@suse.cz>
789
790         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
791         (df_rd_problem_data): Convert sparse_invalidated_by_call,
792         dense_invalidated_by_call to bitmap head.
793         (df_rd_alloc, df_rd_bb_local_compute_process_def,
794         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
795         df_rd_start_dump, df_lr_verify_transfer_functions,
796         df_live_verify_transfer_functions, df_chain_create_bb,
797         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
798         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
799         df_simulate_one_insn_forwards, df_md_alloc,
800         df_md_bb_local_compute_process_def,
801         df_md_bb_local_compute_process_def, df_md_local_compute,
802         df_md_transfer_function df_md_free): Update.
803
804 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
805
806         PR c/44322
807         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
808         target type for ADDR_EXPR; require no changes to qualifiers except
809         for function types.
810         * c-tree.h (c_build_type_variant): Remove.
811
812 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
813
814         * genautomata.c (get_excl_set): Do work per element, not per char.
815         (check_presence_pattern_sets): Similar.
816         (check_absence_pattern_sets): Similar.
817
818 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
819
820         * genautomata.c (curr_state_pass_num): Delete.
821         (min_issue_delay_pass_states): Delete.
822         (min_issue_delay): Delete.
823         (initiate_min_issue_delay_pass_states): Delete.
824         (output_min_issue_delay_table): Compute min_issue_delay_vect
825         using a breadth-first search variant.
826         (output_tables): Don't call initiate_min_issue_delay_pass_states.
827
828 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
829
830         PR boostrap/44421
831         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
832         (df_byte_lr_bb_local_compute): Likewise.
833
834 2010-06-03  Jason Merrill  <jason@redhat.com>
835
836         Implement noexcept operator (5.3.7)
837         * c-common.c (c_common_reswords): Add noexcept.
838         * c-common.h (enum rid): Add RID_NOEXCEPT.
839
840 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
841
842         * config/darwin-driver.c (darwin_default_min_version): Use
843         GCC-specific formats in diagnostics.
844         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
845         diagnostics.
846         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
847         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
848         eval_spec_function, handle_braces, process_brace_body, main,
849         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
850         getenv_spec_function, compare_version_strings,
851         version_compare_spec_function): Use GCC-specific formats in
852         diagnostics.
853
854 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
855
856         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
857         that operand 0 and operand 1 are equal.
858         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
859         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
860         and operand 1 are equal.
861         <default>: Ditto.  Remove ??? comment.
862         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
863         and operand 1 are equal.
864         <default>: Ditto.  Remove ??? comment.
865         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
866         are equal.
867         (*add<mode>_4) <default>: Ditto.
868         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
869
870 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
871
872         * config/i386/i386-protos.h (ix86_print_operand): Declare.
873         * config/i386/i386.c (ix86_print_operand): Make non-static.
874         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
875         * output.h (output_operand): Declare.
876         * final.c (output_operand): Make non-static.
877
878 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
879
880         PR rtl-optimization/44013
881         * sched-deps.c (add_dependence_list_and_free): Don't free lists
882         when processing debug insns.
883
884         PR debug/41371
885         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
886         recursing.  Check that recursion is bounded.  Rename inner var
887         to avoid hiding incoming argument.
888
889 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
890
891         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
892         operands[2] == 255.
893         (*addqi_3): Ditto.
894         (*addqi_4): Ditto.
895         (*addqi_5): Ditto.
896         (*addqi_ext_1_rex64): Ditto.
897         (*addqi_ext_1): Ditto.
898
899         (*addqi_4): Check for incdec_operand in QImode.
900
901         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
902         using SWI mode iterator.
903         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
904         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
905         mode iterator.
906         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
907         using SWI mode iterator.
908
909 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
910
911         PR c/25880
912         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
913         * c-format.c (gcc_diag_flag_specs): Add hash.
914         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
915         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
916         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
917         pp_c_cv_qualifiers. Handle qualifiers spelling here.
918         (pp_c_type_qualifier_list): Call the function above.
919         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
920         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
921         (WARN_FOR_QUALIFIERS): New macro.
922         (convert_for_assignment): Use it.
923
924 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
925
926         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
927
928 2010-06-04  Jan Hubicka  <jh@suse.cz>
929
930         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
931         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
932         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
933         DF_BYTE_LR_OUT): Update for embedded bitmaps.
934         * fwprop.c (single_def_use_enter_block): Likewise.
935         * ddg.c (create_ddg_dep_from_intra_loop_link,
936         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
937         * loop-iv.c (latch_dominating_def): Likewise.
938         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
939         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
940         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
941         df_rd_transfer_function, df_rd_top_dump,
942         df_rd_bottom_dump): Update.
943         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
944         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
945         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
946         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
947         df_lr_verify_solution_start, df_lr_verify_solution_end,
948         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
949         df_live_free_bb_info, df_live_alloc, df_live_reset,
950         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
951         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
952         df_live_verify_solution_start, df_live_verify_solution_end,
953         df_live_verify_transfer_functions, df_chain_create_bb,
954         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
955         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
956         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
957         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
958         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
959         df_byte_lr_transfer_function, df_byte_lr_top_dump,
960         df_byte_lr_bottom_dump, df_create_unused_note,
961         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
962         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
963         df_md_transfer_function, df_md_init, df_md_confluence_0,
964         df_md_confluence_n,
965         df_md_top_dump, df_md_bottom_dump): Update.
966         (struct df_lr_problem_data): Embedd bitmap headers.
967
968 2010-06-04  Jan Hubicka  <jh@suse.cz>
969
970         * dce.c (dce_process_block): Do not re-scan already marked
971         instructions.
972
973 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
974
975         PR rtl-optimization/39871
976         PR rtl-optimization/40615
977         PR rtl-optimization/42500
978         PR rtl-optimization/42502
979         * ira.c (init_reg_equiv_memory_loc: New function.
980         (ira): Call it twice.
981         * reload.h (calculate_elim_costs_all_insns): Declare.
982         * ira-costs.c: Include "reload.h".
983         (regno_equiv_gains): New static variable.
984         (init_costs): Allocate it.
985         (finish_costs): Free it.
986         (ira_costs): Call calculate_elim_costs_all_insns.
987         (find_costs_and_classes): Take estimated elimination costs
988         into account.
989         (ira_adjust_equiv_reg_cost): New function.
990         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
991         * reload1.c (init_eliminable_invariants, free_reg_equiv,
992         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
993         (elim_bb): New static variable.
994         (reload): Move code out of here into init_eliminable_invariants and
995         free_reg_equiv.  Call them.
996         (calculate_elim_costs_all_insns): New function.
997         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
998         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
999         but call note_reg_elim_costly if we turned a valid memory address
1000         into an invalid one.
1001         * Makefile.in (ira-costs.o): Depend on reload.h.
1002
1003 2010-06-04  Julian Brown  <julian@codesourcery.com>
1004
1005         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
1006         for pool ranges.
1007
1008 2010-06-04  Richard Guenther  <rguenther@suse.de>
1009
1010         PR lto/41584
1011         * cgraph.h (struct varpool_node): Add lto_file_data field.
1012         * lto-cgraph.c (input_varpool_node): Initialize it.
1013
1014 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1015
1016         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
1017         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
1018         predicate in "type" attribute calculation.
1019         (*addsi_1_zext): Ditto.
1020         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
1021         (*addsi_2_zext): Ditto.
1022         (*add<mode>_3): Ditto.
1023         (*addsi_3_zext): Ditto.
1024         (*add<mode>_5): Ditto.
1025
1026 2010-06-03  Jan Hubicka  <jh@suse.cz>
1027
1028         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
1029         of bitmap_bit_p.
1030         * cfganal.c (compute_dominance_frontiers_1): Likewise.
1031
1032 2010-06-03  Jan Hubicka  <jh@suse.cz>
1033
1034         * df-problems.c (df_create_unused_note, df_note_bb_compute):
1035         micro-optimize the checks when to add new note.
1036
1037 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
1038
1039         * final.c (output_asm_insn): Call
1040         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
1041         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
1042         (output_address): Call targetm.asm_out.print_operand_address.
1043         Update comments.
1044         * target.h (struct gcc_target): Add print_operand,
1045         print_operand_address, and print_operand_punct_valid_p fields.
1046         * targhooks.h (default_print_operand): Declare.
1047         (default_print_operand_address): Declare.
1048         (default_print_operand_punct_valid_p): Declare.
1049         * targhooks.c (default_print_operand): Define.
1050         (default_print_operand_address): Define.
1051         (default_print_operand_punct_valid_p): Define.
1052         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
1053         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
1054         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
1055         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
1056         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
1057         * vmsdbgout.c (addr_const_to_string): Update comment.
1058         * config/i386/i386.c (print_operand): Rename to...
1059         (ix86_print_operand): ...this.  Make static.
1060         (print_operand_address): Rename to...
1061         (ix86_print_operand_address): ...this.  Make static.  Call
1062         ix86_print_operand instead of PRINT_OPERAND.
1063         (ix86_print_operand_punct_valid_p): New function.
1064         (TARGET_PRINT_OPERAND): Define.
1065         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1066         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1067         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
1068         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1069         (PRINT_OPERAND): Delete.
1070         (PRINT_OPERAND_ADDRESS): Delete.
1071         * config/i386/i386-protos.h (print_operand): Delete prototype.
1072         (print_operand_address): Delete prototype.
1073
1074 2010-06-03  Richard Guenther  <rguenther@suse.de>
1075
1076         PR tree-optimization/44403
1077         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1078         Preserve pointer qualifiers.
1079         (vect_create_data_ref_ptr): Likewise.
1080
1081 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1082
1083         PR c++/44294
1084         * defaults.h (MAX_FIXED_MODE_SIZE): New.
1085
1086         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
1087
1088 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
1089
1090         PR debug/44375
1091         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
1092         return false if merging the bbs would lead to goto_locus
1093         location being lost from the IL.
1094
1095 2010-06-03  Jan Hubicka  <jh@suse.cz>
1096             Jakub Jelinek  <jakub@redhat.com>
1097
1098         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
1099         set->regs[i] is NULL or has just one entry.
1100
1101 2010-06-03  Jan Hubicka  <jh@suse.cz>
1102
1103         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
1104         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
1105
1106 2010-06-03  Paul Brook  <paul@codesourcery.com>
1107
1108         * config/arm/arm.c (FL_TUNE): Define.
1109         (arm_default_cpu, arm_cpu_select): Remove.
1110         (all_cores): Populate core field.
1111         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
1112         (arm_find_cpu): New function.
1113         (arm_handle_option): Lookup cpu/architecture names.
1114         (arm_override_options): Cleanup mcpu/march/mtune handling.
1115         (arm_file_start): Ditto.
1116
1117 2010-06-03  Alan Modra  <amodra@gmail.com>
1118
1119         PR target/44169
1120         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
1121         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
1122         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
1123         (rs6000_emit_load_toc_table): Likewise.
1124
1125 2010-06-02  Jan Hubicka  <jh@suse.cz>
1126
1127         * passes.c (init_optimization_passes): Put ipa reference
1128         after ipa pure-const.
1129
1130 2010-06-02  Jan Hubicka  <jh@suse.cz>
1131
1132         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
1133         calls_read_all and calls_write_all.
1134         (get_reference_optimization_summary): Fix formatting.
1135         (is_proper_for_analysis): Check that decl is not readonly.
1136         (propagate_bits): Check CONST/PURE/noreturn flags.
1137         (ipa_init): Move all_module_statics to optimization_summary_obstack.
1138         (analyze_function): Ignore indirect edges.
1139         (copy_global_bitmap): For all module statics, do nothing.
1140         (generate_summary): Do not print calls_read_all/calls_write_all.
1141         (read_write_all_from_decl): Take node as argument; check
1142         cgraph_node_cannot_return.
1143         (propagate): Reorganize read_all/write_all computation;
1144         check indirect edges; check ecf flags; use all_module_statics
1145         in the results; do not free all_module_statics.
1146         (stream_out_bitmap): Handle all_module_statics.
1147         (ipa_reference_write_optimization_summary): Likewise; use
1148         varpool/cgraph encoders to get boundaries.
1149         (ipa_reference_read_optimization_summary): Read in all_module_statics;
1150         use it when possible.
1151
1152 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1153
1154         PR target/44218
1155         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
1156         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
1157
1158         * doc/extend.texi (powerpc builtins): Document vec_recip,
1159         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
1160
1161         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
1162         (rs6000_emit_swrsqrt): Ditto.
1163         (rs6000_emit_swdivsf): Delete.
1164         (rs6000_emit_swdivdf): Ditto.
1165         (rs6000_emit_swrsqrtsf): Ditto.
1166
1167         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
1168         describe the reciprocal estimate support for each type.
1169         (recip_options): Map -mrecip=<opt> into option bits.
1170         (gen_2arg_fn_t): New typedef for binary rtx gen function.
1171         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
1172         reciprocal estimate instructions.
1173         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
1174         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
1175         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
1176         cost information if -mdebug=cost or -mdebug=reg.
1177         (rs6000_override_options): Set -mrecip-precision for power6, and
1178         power7 machines.  If -mvsx or -mdfp, enable various options that
1179         came in previous instruction set ISAs, unless the option was
1180         explicitly disabled by the command line option.  Parse
1181         -mrecip=<opt> options.
1182         (rs6000_builtin_vectorized_function): Add support for vectorizing
1183         the reciprocal estimate builtins and expansions.
1184         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
1185         (bdesc_2arg): Add reciprocal estimate builtins.
1186         (bdesc_1arg): Add reciprocal square root estimate builtins.
1187         (rs6000_expand_builtin): Rewrite to use a switch statement,
1188         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
1189         (rs6000_init_builtins): Create declarations for reciprocal
1190         estimate builtins.
1191         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
1192         sized, prefer traditional floating point registers, if integer
1193         vector types, prefer altivec registers.  Don't actually look at
1194         the memory address any more.
1195         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
1196         builtins.
1197         (rs6000_load_constant_and_splat): New helper function to load up
1198         the constant for reciprocal estimate instructions.
1199         (rs6000_emit_madd): New helper function for generating
1200         multiply/add type instructions, based on the current switches.
1201         (rs6000_emit_msub): Ditto.
1202         (rs6000_emit_mnsub): Ditto.
1203         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
1204         replace a divide with a reciprocal estimate and fixup, adding
1205         support for machines with high precision and vectors.
1206         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
1207         low precision machines.
1208         (rs6000_emit_swdiv): New common function to be called to replace a
1209         division with reciprocal estimate and fixup.
1210         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
1211         for double and vector types.  Add support for high precision machines.
1212
1213         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
1214         the reciprocal estimate instructions can be generated.
1215         (TARGET_FRE): Ditto.
1216         (TARGET_FRSQRTES): Ditto.
1217         (TARGET_FRSQRTE): Ditto.
1218         (RS6000_RECIP_*): New macros for reciprocal estimate support.
1219
1220         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
1221         square root estimate on vectors.
1222         (re<mode>2): New insn for reciprocal division estimate on vectors.
1223
1224         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
1225         New builtin.
1226         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
1227         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
1228         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
1229         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
1230         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
1231         (RS6000_BUILTIN_RSQRT): Ditto.
1232         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
1233         floating point builtin.
1234
1235         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1236         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
1237         __RECIP_PRECISION__ based on the command line switches.
1238         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
1239
1240         * config/rs6000/rs6000.opt (-mrecip): Document add support for
1241         replacing division instructions with reciprocal estimate and fixup.
1242         (-mrecip=<opt>): New option.
1243         (-mrecip-precision): Ditto.
1244
1245         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
1246         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
1247         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
1248         precision scalar.
1249
1250         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
1251         (UNSPEC_VREFP): Ditto.
1252         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
1253         conterparts with regard to support of -mno-fused-madd and -ffast-math.
1254         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
1255         reciprocal estimate instructions to be generated.
1256         (altivec_vrefp): Ditto.
1257
1258         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
1259         estimate support.
1260         (rreg): New mode attribute for reciprocal estimate support.
1261         (recip<mode>3): New insn for division using reciprocal estimate
1262         and fixup builtins.
1263         (divide define_split): New define_split to convert floating point
1264         division to use reciprocal estimate if the user used the
1265         appropriate options and the split is run when we can add new
1266         pseudo registers for the fixup.
1267         (rsqrt<mode>2): New insn for reciprocal square root support.
1268         (recipsf3): Move into recip<mode>3.
1269         (recipdf3): Ditto.
1270         (fres): Use TARGET_FRES.
1271         (rsqrtsf2): Move into rsqrt<mode>2.
1272         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
1273         (copysignsf3): Add support for VSX.
1274         (fred): Use TARGET_FRE.
1275         (fred_fpr): Ditto.
1276         (rsqrtdf_internal1): New function for frsqrte instruciton.
1277
1278         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
1279         (vec_rsqrt): Ditto.
1280
1281 2010-06-03  Richard Guenther  <rguenther@suse.de>
1282
1283         PR middle-end/44291
1284         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
1285         (set_user_assembler_libfunc): Likewise.
1286
1287 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
1288
1289         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
1290         defaults.h.
1291         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
1292         to defaults.h
1293         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
1294         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
1295         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
1296         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
1297         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
1298         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
1299         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
1300         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
1301         * defaults.h: Updated for above mentioned changes.
1302
1303 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
1304
1305         * c-common.c: Remove header include of tm_p.h.
1306         * Makefile.in (c-common.o): Remove TM_P_H dependency.
1307
1308 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
1309
1310         * tree.h (struct tree_decl_map): New type.
1311         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
1312         (tree_decl_map_hash): New prototype.
1313         (debug_expr_for_decl, value_expr_for_decl): Change into
1314         tree_decl_map hashtab from tree_map.
1315         (init_ttree): Adjust initialization.
1316         (tree_decl_map_hash): New function.
1317         (decl_debug_expr_lookup, decl_debug_expr_insert,
1318         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
1319
1320 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1321
1322         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
1323         linker emulations.
1324         * configure: Regenerate.
1325         * config.in: Regenerate.
1326
1327         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
1328         (X86_64_EMULATION): Define.
1329         (TARGET_LD_EMULATION): Use them.
1330
1331         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
1332         (SPARC64_EMULATION): Define.
1333         (LINK_ARCH_SPEC): Use them.
1334
1335 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
1336
1337         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
1338         smallest_mode_for_size for computing the precision types of new
1339         graphite IVs.  Do not call lang_hooks.types.type_for_size.
1340
1341 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
1342
1343         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
1344         information.
1345         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
1346
1347 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
1348
1349         PR middle-end/44363
1350         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
1351         return false instead.
1352
1353 2010-06-02  Jan Hubicka  <jh@suse.cz>
1354
1355         PR middle-end/44295
1356         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
1357         create new cgraph node to check callee.
1358
1359 2010-06-02  Richard Guenther  <rguenther@suse.de>
1360
1361         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
1362
1363 2010-06-02  Richard Guenther  <rguenther@suse.de>
1364
1365         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
1366         (lto_wrapper_cleanup): ... this.  Do not exit.
1367         (fatal): Adjust.  Exit here.
1368         (fatal_perror): Likewise.
1369         (fatal_signal): New function.
1370         (main): Set up signal handlers to cleanup temporary files.
1371         * Makefile.in (lto-wrapper.o): Adjust dependencies.
1372
1373 2010-06-02  Richard Guenther  <rguenther@suse.de>
1374
1375         PR tree-optimization/44377
1376         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
1377
1378 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1379
1380         * config/s390/2097.md (z10_fhex): Remove insn reservation.
1381         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
1382         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
1383         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
1384         instruction.
1385         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
1386
1387 2010-06-02  Jan Hubicka  <jh@suse.cz>
1388
1389         * bitmap.c (bitmap_descriptor): Add search_iter.
1390         (bitmap_find_bit): Increment it.
1391         (print_statistics): Print it.
1392
1393 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
1394
1395         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
1396         instead of gimple_build_call_vec.  Delete unnecessary local variable.
1397
1398 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
1399
1400         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
1401         change from yesterday.
1402
1403 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
1404
1405         * c-ada-spec.c: Clean up redundant includes.
1406
1407 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
1408
1409         * gimplify.c: Do not include except.h and optabs.h.
1410         (gimplify_body): Do not initialize RTL profiling.
1411         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
1412         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
1413         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
1414         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
1415         langhooks.h.
1416
1417         * tree-pretty-print.h: Include pretty-print.h.
1418         * gimple-pretty-print.h: Include pretty-print.h.
1419
1420         * tree-pretty-print.c: Do not include diagnostic.h.
1421         * tree-vrp.c: Likewise.
1422         * tree-tailcall.c: Likewise
1423         * tree-scalar-evolution.c: Likewise
1424         * tree-ssa-dse.c: Likewise
1425         * tree-chrec.c: Likewise
1426         * tree-ssa-sccvn.c: Likewise
1427         * tree-ssa-copyrename.c: Likewise
1428         * tree-nomudflap.c: Likewise
1429         * tree-call-cdce.c: Likewise
1430         * tree-stdarg.c: Likewise
1431         * tree-ssa-math-opts.c: Likewise
1432         * tree-nrv.c: Likewise
1433         * tree-ssa-sink.c: Likewise
1434         * tree-browser.c: Likewise
1435         * tree-ssa-loop-ivcanon.c: Likewise
1436         * tree-ssa-loop.c: Likewise
1437         * tree-parloops.c: Likewise
1438         * tree-ssa-address.c: Likewise
1439         * tree-ssa-ifcombine.c: Likewise
1440         * tree-if-conv.c: Likewise
1441         * tree-data-ref.c: Likewise
1442         * tree-affine.c: Likewise
1443         * tree-ssa-phiopt.c: Likewise
1444         * tree-ssa-coalesce.c: Likewise
1445         * tree-ssa-pre.c: Likewise
1446         * tree-ssa-live.c: Likewise
1447         * tree-predcom.c: Likewise
1448         * tree-ssa-forwprop.c: Likewise
1449         * tree-ssa-dce.c: Likewise
1450         * tree-ssa-ter.c: Likewise
1451         * tree-ssa-loop-prefetch.c: Likewise
1452         * tree-optimize.c: Likewise
1453         * tree-ssa-phiprop.c: Likewise
1454         * tree-object-size.c: Likewise
1455         * tree-outof-ssa.c: Likewise
1456         * tree-ssa-structalias.c: Likewise
1457         * tree-switch-conversion.c: Likewise
1458         * tree-ssa-reassoc.c: Likewise
1459         * tree-ssa-operands.c: Likewise
1460         * tree-vectorizer.c: Likewise
1461         * tree-vect-data-refs.c: Likewise
1462         * tree-vect-generic.c: Likewise
1463         * tree-vect-stmts.c: Likewise
1464         * tree-vect-patterns.c: Likewise
1465         * tree-vect-slp.c: Likewise
1466         * tree-vect-loop.c: Likewise
1467         * tree-ssa-loop-ivopts.c: Likewise
1468         * tree-ssa-loop-im.c: Likewise
1469         * tree-ssa-loop-niter.c: Likewise
1470         * tree-ssa-loop-unswitch.c: Likewise
1471         * tree-ssa-loop-manip.c: Likewise
1472         * tree-ssa-loop-ch.c: Likewise
1473         * tree-dump.c: Likewise
1474         * tree-complex.c: Likewise
1475
1476         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
1477         * tree-ssa-uninit.c: Likewise
1478         * tree-ssa-threadupdate.c: Likewise
1479         * tree-ssa-uncprop.c: Likewise
1480         * tree-ssa-ccp.c: Likewise
1481         * tree-ssa-dom.c: Likewise
1482         * tree-ssa-propagate.c: Likewise
1483         * tree-ssa-alias.c: Likewise
1484         * tree-dfa.c: Likewise
1485         * tree-cfgcleanup.c: Likewise
1486         * tree-sra.c: Likewise
1487         * tree-ssa-copy.c: Likewise
1488         * tree-ssa.c: Likewise
1489         * tree-profile.c: Likewise
1490         * tree-cfg.c: Likewise
1491         * tree-ssa-threadedge.c: Likewise
1492         * tree-vect-loop-manip.c: Likewise
1493
1494         * tree-inline.c: Do not include diagnostic.h and expr.h.
1495         Include rtl.h.
1496         (copy_decl_for_dup_finish): Do not use NULL_RTX.
1497
1498         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
1499         * tree-loop-distribution.c: Likewise.
1500
1501 2010-06-01  Jan Hubicka  <jh@suse.cz>
1502
1503         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
1504
1505 2010-06-01  Jan Hubicka  <jh@suse.cz>
1506
1507         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
1508         remove return value.
1509         (split_bbs_on_noreturn_calls) .... here.
1510         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
1511         * tree-flow.h (fixup_noreturn_call): New.
1512
1513 2010-06-01  Jan Hubicka  <jh@suse.cz>
1514
1515         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
1516
1517 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
1518
1519         * tree.h (build_nt_call_list): Delete.
1520         * tree.c (build_nt_call_list): Delete.
1521
1522 2010-06-01  Jan Hubicka  <jh@suse.cz>
1523
1524         * fwprop.c: Make emit-rtl.h include last.
1525         * rtlanal.c: Include emit-rtl.h.
1526         * genautomata.c: Output emit-rtl include into insn-automata.c
1527         * df-scan.c: Include emit-rtl.h.
1528         * haifa-sched.c: Indlude emit-rtl.h.
1529         * mode-switching.c: Indlude emit-rtl.h.
1530         * graph.c: Indlude emit-rtl.h.
1531         * sel-sched.c: Include emit-rtl.h.
1532         * sel-sched-ir.c: Include emit-rtl.h.
1533         * ira-build.c: Include emit-rtl.h.
1534         * emit-rtl.c: (first_insn, last_insn): Remove defines.
1535         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
1536         Move to emit-rtl.h.
1537         (set_new_first_and_last_insn, get_last_insn_anywhere,
1538         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
1539         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
1540         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
1541         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
1542         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
1543         Use accessor functions.
1544         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
1545          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
1546         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
1547         mem_expr_equal_p): Move here from rtl.h.
1548         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
1549         Move here from emit-rtl.c; make inline.
1550         * cfglayout.h: Include emit-rtl.h.
1551         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
1552          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
1553         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
1554         mem_expr_equal_p, get_insns, set_first-insn,
1555         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
1556         * reg-stack.c: Include emit-rtl.h.
1557         * dce.c: Likewise.
1558
1559 2010-06-01  Jan Hubicka  <jh@suse.cz>
1560
1561         * cgraph.h (tree_function_versioning): Update prototype.
1562         (cgraph_function_versioning): Update prototype.
1563         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
1564         bitmap.
1565         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
1566         (cgraph_materialize_clone, save_inline_function_body): Update use of
1567         tree_function_versioning.
1568         * tree-inline.c (copy_bb): Look for previous copied block to link
1569         after; fix debug output.
1570         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
1571         (copy_body): Likewise.
1572         (expand_call_inline): Update use of copy_body.
1573         (tree_function_versioning): Update use of copy body; accept
1574         blocks_to_copy and new_entry.
1575
1576 2010-06-01  Jan Hubicka  <jh@suse.cz>
1577
1578         * gegenrtl.c: Remove unnecesary prototypes.
1579         (gendecl): Remove.
1580         (gendef): Produce static inline.
1581         (gencode): Remove.
1582         (main): Do not decode parameters; generate header only.
1583         * Makefile.in (genrtl.c): Remove.
1584
1585 2010-06-01  Jan Hubicka  <jh@suse.cz>
1586
1587         * tree-switch-conversion.c (build_one_array): Make it readonly.
1588
1589 2010-06-01  Richard Guenther  <rguenther@suse.de>
1590
1591         * optabs.c (init_optabs): Guard all accesses to reinit.
1592         * ipa-pure-const.c (propagate): Fix another typo.
1593         * opts.c (common_handle_option): Split assignment to bool.
1594         * c-opts.c (c_common_handle_option): Likewise.
1595
1596 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
1597             Matthew Gingell  <gingell@adacore.com>
1598
1599         * doc/invoke.texi: Mention -fdump-ada-spec.
1600         * tree-dump.c (dump_files): Add ada-spec.
1601         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
1602         * tree-pass.h (tree_dump_index): Add TDI_ada.
1603         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
1604         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
1605         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
1606         * c-decl.c: Include c-ada-spec.h.
1607         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
1608         functions.
1609         (c_write_global_declarations): Add handling of -fdump-ada-spec.
1610         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
1611         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
1612         * c-ada-spec.h, c-ada-spec.c: New files.
1613
1614 2010-06-01  Richard Guenther  <rguenther@suse.de>
1615
1616         PR lto/43853
1617         * ipa-pure-const.c (get_function_state): Hand back varying state
1618         if we do not have one.
1619         (has_function_state): New function.
1620         (duplicate_node_data): Adjust.
1621         (remove_node_data): Likewise.
1622         (pure_const_write_summary): Likewise.
1623         (propagate): Likewise.  Fix typo.
1624
1625 2010-06-01  Jan Hubicka  <jh@suse.cz>
1626
1627         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
1628         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
1629         (execute_all_ipa_transforms): Do not play with the states.
1630
1631 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1632
1633         * config/arm/t-linux-androideabi: New.
1634         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
1635
1636 2010-06-01  Jan Hubicka  <jh@suse.cz>
1637
1638         * tree-inline.c (estimate_num_insns): For stdarg functions look
1639         into call statement to count cost of argument passing.
1640
1641 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
1642
1643         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
1644         argument for fprintf.
1645         (ix86_output_addr_diff_elt): Likewise.
1646         (x86_function_profiler): Likewise.
1647         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
1648         (LPREFIX): Likewise.
1649         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1650
1651 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
1652
1653         PR target/44338
1654         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
1655         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
1656         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
1657         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
1658         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
1659         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
1660         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
1661         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
1662         TARGET_FUSED_MADD.
1663
1664 2010-05-31  Jan Hubicka  <jh@suse.cz>
1665
1666         * tree.h (tree_range_check_failed): Declare noreturn.
1667
1668 2010-05-31  Jan Hubicka  <jh@suse.cz>
1669
1670         * gimple.c (gimple_call_builtin_p): New function.
1671         * gimple.h (gimple_call_builtin_p): Declare.
1672         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
1673         to exit.
1674         (execute_warn_function_return): BUILT_IN_RETURN is return.
1675         (split_critical_edges): Return edges are not critical.
1676         (is_ctrl_altering_stmt): Builtin_in_return is altering.
1677         (gimple_verify_flow_info): Handle built_in_return.
1678         (execute_warn_function_return): Handle built_in_return.
1679         * ipa-pure-const.c (check_call): Ignore builtin_return.
1680
1681 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
1682
1683         PR middle-end/44337
1684         * expr.c (expand_assignment): Don't store anything for out-of-bounds
1685         array accesses with non-MEM.
1686
1687         PR tree-optimization/44182
1688         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
1689         newly needs to end a bb is followed by debug stmts, instead return
1690         true from the function at the end.
1691         (maybe_move_debug_stmts_to_successors): New function.
1692         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
1693
1694 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
1695
1696         PR target/44161
1697         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
1698
1699 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1700
1701         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
1702         for nested functions in non-optimized compilation.
1703
1704 2010-05-31  Richard Guenther  <rguenther@suse.de>
1705
1706         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
1707
1708 2010-05-30  Jan Hubicka  <jh@suse.cz>
1709
1710         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
1711
1712 2010-05-30  Richard Guenther  <rguenther@suse.de>
1713
1714         PR lto/42975
1715         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
1716         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
1717         no longer needed.
1718
1719 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
1720
1721         * config/darwin.c (output_objc_section_asm_op): Add comment.
1722         (name_needs_quotes): Add '_' to list of valid comment chars.
1723         (machopic_output_function_base_name): Remove unneeded quotes.
1724         (darwin_encode_section_info): Adjust asm whitespace.
1725         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
1726         (ASM_OUTPUT_LOCAL): Ditto.
1727         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
1728         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
1729         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
1730
1731 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1732
1733         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
1734         RS6000_OUTPUT_BASENAME unconditionally.
1735         (rs6000_output_function_epilogue): Likewise.
1736
1737 2010-05-30  Jan Hubicka  <jh@suse.cz>
1738
1739         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
1740         nodes.
1741
1742 2010-05-30  Richard Guenther  <rguenther@suse.de>
1743
1744         * tree-cfg.c (verify_gimple_assign_single): Implement
1745         verification for COND_EXPR rhs.
1746
1747 2010-05-30  Jan Hubicka  <jh@suse.cz>
1748
1749         * cgraph.h (cgraph_dump_file): Declare.
1750         * cgraphunit.c (cgraph_dump_file): Export.
1751         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
1752
1753 2010-05-30  Jan Hubicka  <jh@suse.cz>
1754
1755         * dwarf2out.c (reference_to_unused,
1756         premark_types_used_by_global_vars_helper): Avoid creation of new
1757         varpool nodes.
1758
1759 2010-05-30  Jan Hubicka  <jh@suse.cz>
1760
1761         * cgraph.h (cgraph_node_cannot_return,
1762         cgraph_edge_cannot_lead_to_return): New functions.
1763         * cgraph.c (cgraph_node_cannot_return,
1764         cgraph_edge_cannot_lead_to_return): Use them.
1765         * ipa-pure-const.c (pure_const_names): New static var.
1766         (check_call): Handle calls not leading to return.
1767         (pure_const_read_summary): Dump info read.
1768         (propagate): Dump info about propagation process; ignore side effects
1769         of functions not leading to exit; fix handling of pure functions.
1770
1771 2010-05-30  Jan Hubicka  <jh@suse.cz>
1772
1773         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
1774         for tail call epilogues.
1775
1776 2010-05-30  Jan Hubicka  <jh@suse.cz>
1777
1778         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
1779         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
1780         dump files.
1781
1782 2010-05-29  Jan Hubicka  <jh@suse.cz>
1783
1784         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
1785         node; remove references in node we no longer keep in cgrpah but need
1786         body of.
1787
1788 2010-05-29  Jan Hubicka  <jh@suse.cz>
1789
1790         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
1791
1792 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1793
1794         PR target/44165
1795         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
1796
1797 2010-05-29  Jan Hubicka  <jh@suse.cz>
1798
1799         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
1800         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
1801         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
1802         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
1803         debug_names_replaced_by, debug_update_ssa): Likewise.
1804         * sbitmap.c (debug_sbitmap): Likewise.
1805         * genrecog.c (debug_decision, debug_decision_list): Likewise.
1806         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
1807         debug_tree_chain): Likewise.
1808         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
1809         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
1810         * optabs.c  (debug_optab_libfuncs): Likewise.
1811         (verify_loop_closed_ssa): Likewise.
1812         * value-prof.c (verify_histograms): Likewise.
1813         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
1814         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
1815         * cfghooks.c (verify_flow_info): Likewise.
1816         * fold-const.c (debug_fold_checksum): Likewise.
1817         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
1818         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
1819         Likewise.
1820         * omega.c (debug_omega_problem): Likewise.
1821         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
1822         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
1823         * dominance.c (verify_dominators, debug_dominance_info,
1824         debug_dominance_tree): Likewise.
1825         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
1826         * df_regno_debug, df_ref_debug,
1827         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
1828         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
1829         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
1830         * sel-sched.c (debug_state): Likewise.
1831         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
1832         Likewise.
1833         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
1834         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
1835         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
1836         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
1837         Likewise.
1838         * c-pretty-print.c (debug_c_tree): Likewise.
1839         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
1840         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
1841         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
1842         * ebitmap.c (debug_ebitmap): Likewise.
1843         * function.c (debug_find_var_in_block_tree): Likewise.
1844         * print-rtl.c (debug_rtx): Likewise.
1845         (debug_rtx_count): Likewise.
1846         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
1847         * stor-layout.c (debug_rli): Likewise.
1848         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
1849         * tree-data-ref.c (debug_data_references,
1850         debug_data_dependence_relations, debug_data_reference,
1851         debug_data_dependence_relation, debug_rdg_vertex,
1852         debug_rdg_component, debug_rdg): Likewise.
1853         * tree-affine.c (debug_aff): Likewise.
1854         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
1855         Likewise.
1856         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
1857         * emit-rtl.c (verify_rtl_sharing): Likewise.
1858         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
1859         debug_value_expressions): Likewise.
1860         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
1861         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
1862         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
1863         * cfglayout.c (verify_insn_chain): Likewise.
1864         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
1865         debug_clast_stmt, debug_generated_program): Likewise.
1866         * ggc-page.c (debug_print_page_list): Likewise.
1867         * tree-ssa-ter.c (debug_ter): Likewise.
1868         * graphite-dependences.c (debug_pddr): Likewise.
1869         * sched-deps.c (debug_ds): Likewise.
1870         * tree-ssa.c (verify_ssa): Likewise.
1871         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
1872         debug_scattering_functions, debug_iteration_domains, debug_pdr,
1873         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
1874         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
1875         * tree-inline.c (debug_find_tree): Likewise.
1876         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
1877         debug_ppl_powerset_matrix): Likewise.
1878         * var-tracking.c (debug_dv): Likewise.
1879         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
1880         * cfgloop.c (verify_loop_structure): Likewise.
1881         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
1882         * c-common.c (verify_sequence_points): Likewise.
1883         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
1884         debug_candidates, debug_rgn_dependencies): Likewise.
1885         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
1886         * debug_constraint_graph, debug_solution_for_var,
1887         debug_sa_points_to_info): Likewise.
1888         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
1889         Likewie.
1890         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
1891         debug_loops, debug_loop, debug_loop_num): Likewise.
1892         * passes.c (debug_pass): Likewise.
1893         (dump_properties): Likewise; add cfglayout property.
1894         (debug_properties): Likewise.
1895         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
1896         * varpool.c (debug_varpool): Likewise.
1897         * regcprop.c (debug_value_data): Likewise.
1898         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
1899         debug_immediate_uses_for): Likewise.
1900
1901 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1902
1903         PR bootstrap/44315
1904         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
1905         Filter out insn-flags.h.
1906
1907 2010-05-29  Jan Hubicka  <jh@suse.cz>
1908
1909         * cgraph.h (struct varpool_node_set_def,
1910         struct cgraph_node_set_def): Remove unused AUX pointer.
1911         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
1912         VEC_empty macro.
1913
1914 2010-05-29  Jan Hubicka  <jh@suse.cz>
1915
1916         PR middle-end/44324
1917         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
1918
1919 2010-05-29  Richard Guenther  <rguenther@suse.de>
1920
1921         * lto-streamer.c (cached_bp): New global variable.
1922         (bitpack_create): Return the cached bitpack, if available.
1923         (bitpack_delete): Clear and cache the bitpack, if appropriate.
1924         (bp_pack_value): Remove redundant asserts.
1925
1926 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
1927
1928         PR middle-end/44306
1929         * tree-if-conv.c (is_true_predicate): New.
1930         (is_predicated): Use is_true_predicate.
1931         (add_to_predicate_list): Same.  Do not use unshare_expr.
1932         (add_to_dst_predicate_list): Same.
1933
1934 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
1935
1936         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
1937         field on edges.
1938         (predicate_bbs): Same.
1939         (clean_predicate_lists): Same.
1940         (find_phi_replacement_condition): Do not AND the predicate from
1941         edge->aux.
1942
1943 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1944
1945         PR bootstrap/44315
1946         * Makefile.in (build/gencondmd.o): Add a missing `\'.
1947
1948 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1949
1950         PR target/44261
1951         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
1952         (negdf2): Adjust expander pattern and use negdf2_slow.
1953         (negsf2): Likewise.
1954
1955 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
1956
1957         * basic-block.h (struct control_flow_graph): Move last_label_uid field
1958         up.
1959         * df.h (struct df_base_ref): Move regno field up.
1960         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
1961         * expr.h (struct separate_ops): Move location field up.
1962         * optabs.h (struct optab_d): Move libcall_basename field down.
1963         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
1964         * config/i386/i386.h (struct machine_function): Convert call_abi field
1965         into a bitfield.  Move cfa field to the end of the structure.
1966
1967 2010-05-29  Jan Hubicka  <jh@suse.cz>
1968
1969         * varpool.c (varpool_get_node): Fix lookup.
1970
1971 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
1972
1973         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
1974         RTL specific prototypes with #ifdef RTX_CODE.
1975         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
1976         * config/spu/t-spu-elf: Fix dependencies.
1977
1978         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
1979
1980 2010-05-29  Mike Stump  <mikestump@comcast.net>
1981
1982         PR bootstrap/44315
1983         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
1984         TM_H when building to avoid dependency loops.
1985
1986 2010-05-29  Jan Hubicka  <jh@suse.cz>
1987
1988         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
1989         refs and body; not the whole node for masters of materialized
1990         clones.
1991
1992 2010-05-29  Mike Stump  <mikestump@comcast.net>
1993
1994         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
1995
1996 2010-05-29  Jan Hubicka  <jh@suse.cz>
1997
1998         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
1999         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
2000         use of clone_function_name.
2001         * cgraph.h (cgraph_create_virtual_clone,
2002         cgraph_function_versioning): update prototypes.
2003         (clone_function_name): Declare.
2004         * ipa-cp.c (ipcp_insert_stage): Update call of
2005         cgraph_create_virtual_clone.
2006         * omp-low.c (create_omp_child_function_name): Use
2007         cgraph_create_virtual_clone.
2008         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
2009         (cgraph_function_versioning): Take SUFFIX argument; produce new name
2010         and make decl local.
2011
2012 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2013
2014         * vec.h: Include statistics.h
2015         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
2016         with VEC_H.
2017
2018 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2019
2020         * c-lex.c: Do not include c-tree.h.
2021         * c-pretty-print.c: Likewise.
2022         * c-opts.c: Likewise.
2023         * c-gimplify.c: Likewise.
2024         * c-common.c: Likewise.
2025         * c-dump.c: Likewise.  Include c-common.h.
2026
2027 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2028
2029         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
2030         before including diagnostic-core.h.
2031         (c_cpp_error): New prototype moved from c-tree.h.
2032         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
2033         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
2034         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
2035         (c_cpp_error): Prototype moved to c-common.h.
2036         * Makefile.in: Update dependency for C_COMMON_H.
2037
2038 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2039
2040         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
2041         * c-common.c (c_register_addr_space): Remove here.
2042         * c-decl.c (c_register_addr_space): Re-add here.
2043
2044 2010-05-28  Mike Stump  <mikestump@comcast.net>
2045
2046         * config/darwin-c.c: Remove c-tree.h include.
2047
2048 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2049
2050         * gcc.c: Include diagnostic.h.
2051         (error_count): Remove.  All users changed to use errorcount.
2052         (programname): Remove.  All users changed to use progname.
2053         (fancy_abort, internal_error, fatal_error, error, warning, inform,
2054         fnotice): Remove.
2055         (execute): Don't include "Internal error" and bug reporting
2056         information in argument of internal_error call.
2057         (process_command): Don't increment error_count after calling
2058         perror_with_name.
2059         (input_filename): Rename to gcc_input_filename.  All users
2060         changed.
2061         (main): Call diagnostic_initialize.  Register delete_temp_files
2062         with atexit.  Use seen_error to test for errors.
2063         * gcc.h: Include diagnostic-core.h.
2064         (fatal_error, error, warning): Remove.
2065         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
2066         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
2067         (gcc.o): Update dependencies.
2068
2069 2010-05-28  Jeff Law  <law@redhat.com>
2070
2071         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
2072         functions.
2073         * ira.h (ira_bad_reload_regno): Declare
2074         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
2075
2076         * ira-color.c (update_curr_costs): Free updated hard reg costs.
2077         (ira_reassign_conflict_allocnos): Remove bogus asserts.
2078         (allocno_reload_assign): Likewise.
2079
2080 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
2081
2082         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
2083         build1_stat.
2084
2085 2010-05-28  Richard Guenther  <rguenther@suse.de>
2086
2087         PR lto/44312
2088         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
2089         Stream fixed-point constants mode.
2090         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
2091         and TYPE_PRECISION.
2092         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
2093         Stream fixed-point constants mode.
2094         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
2095         and TYPE_PRECISION.
2096
2097 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2098
2099         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
2100         only place it was called from.
2101         (number_of_latch_executions): Do not return chrec_dont_know when the
2102         may_be_zero is a runtime condition: instead, return a COND_EXPR
2103         including the may_be_zero condition.
2104         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
2105         of nb_iterations.
2106         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
2107         COND_EXPRs.
2108
2109 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2110
2111         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
2112         generate COND_EXPRs for degenerate_phi_result.
2113
2114 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2115
2116         PR middle-end/44293
2117         * tree-if-conv.c (if_convertible_loop_p): Check the
2118         if-convertibility of phi nodes in non predicated BBs.
2119
2120 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2121
2122         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
2123
2124 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2125
2126         PR driver/15303
2127         * gcc.c (inform, warning, inform): New functions.
2128         (fatal_ice): Rename to internal_error; change cmsgid parameter to
2129         gmsgid.  All callers changed.
2130         (notice): Rename to fnotice; add parameter fp.  All callers
2131         changed.
2132         (fatal_error): Rename to fatal_signal.  All users changed.
2133         (fatal): Rename to fatal_error; change cmsgid parameter to
2134         gmsgid.  All callers changed.
2135         (process_command): Use warning instead of error for warnings.
2136         (end_going_arg): Don't use _() around argument of error.
2137         (do_spec_1): Use inform for message from %n specs.  Use warning
2138         instead of error for warnings.
2139         (main): Use inform for comparison messages.  Use warning for
2140         message about unused linker input.
2141         (error): Increment error_count.  Print "error: ".
2142         * gcc.h (fatal): Change to fatal_error.
2143         (warning): Declare.
2144         * config/darwin-driver.c (darwin_default_min_version): Use warning
2145         instead of fprintf for warnings.
2146         * cppspec.c (lang_specific_driver): Use fatal_error instead of
2147         fatal.
2148
2149 2010-05-28  Julian Brown  <julian@codesourcery.com>
2150
2151         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
2152         (*thumb2_addsi3_compare0_scratch): New.
2153         * config/arm/constraints.md (Pv): New.
2154         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
2155         for ARM mode only.
2156         (*addsi3_compare0_scratch): Likewise.
2157
2158 2010-05-28  Jan Hubicka  <jh@suse.cz>
2159
2160         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
2161         check.
2162         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
2163         only on local statics.
2164
2165 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
2166
2167         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
2168
2169 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
2170
2171         PR bootstrap/44314
2172         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
2173         (OPTION_GLIBC): Define.
2174
2175 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
2176
2177         PR debug/41048
2178         * dwarf2out.c (double_int_type_size_in_bits): New function.
2179         (round_up_to_align): Change first argument and return value to
2180         double_int.
2181         (field_byte_offset): Work internally on double_ints.
2182
2183         PR target/43636
2184         * builtins.c (expand_movstr): Use a temporary pseudo instead
2185         of target even when target is not NULL and not const0_rtx, but
2186         fails movstr predicate.
2187         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
2188
2189 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2190
2191         * final.c (rest_of_clean_state): Use %m in errors instead of
2192         strerror (errno).
2193         * gengtype.c (read_input_list, close_output_files): Use xstrerror
2194         instead of strerror.
2195         * toplev.c (process_options): Use %m in errors instead of strerror
2196         (errno).
2197         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
2198         (errno).
2199
2200 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
2201
2202         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
2203         (ix86_canonical_va_list_type): Make static.  Add declaration.
2204         (ix86_enum_va_list): Make static.  Reindent.
2205         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
2206         (ix86_canonical_va_list_type): Ditto.
2207         (ix86_enum_va_list): Ditto.
2208
2209 2010-05-28  Richard Guenther  <rguenther@suse.de>
2210
2211         * lto-wrapper.c (run_gcc): With -save-temps generate a
2212         user-visible ltrans filename.  Fixup ltrans unit numbering.
2213
2214 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
2215
2216         * c-common.c (c_common_nodes_and_builtins): Replace use
2217         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
2218         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
2219         to ix86_enum_va_list.
2220         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
2221         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
2222         (TARGET_ENUM_VA_LIST_P): Add hook description.
2223         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
2224         * target.h (gcc_target): Add enum_va_list hook.
2225
2226         PR bootstrap/44299
2227         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
2228         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
2229         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
2230
2231 2010-05-28  Alan Modra  <amodra@gmail.com>
2232
2233         PR target/44266
2234         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2235         emit_library_call machinery to set up __tls_get_addr calls.
2236
2237 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2238
2239         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
2240
2241 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
2242
2243         Revert fix for PR c++/44188
2244         * c-common.c (is_typedef_decl): Revert the moving of  this
2245         definition ...
2246         * tree.c (is_typedef_decl): ... here.
2247         (typdef_variant_p): Revert the moving of this  definition
2248         here from gcc/cp/tree.c.
2249         * c-common.h (is_typedef_decl): Revert the moving of this
2250         declaration ...
2251         * tree.h (is_typedef_decl): ... here.
2252         (typedef_variant_p): Revert the moving of this  declaration here
2253         from gcc/cp/cp-tree.h
2254         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
2255         (gen_tagged_type_die): Revert the splitting out of ...
2256         (gen_type_die_with_usage): ... this function. Revert the anonymous
2257         tagged type handling.
2258         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
2259         typedefs naming anonymous tagged types.
2260
2261 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
2262
2263         * config/rs6000/rs6000-modes.def (PSImode): Delete.
2264
2265 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
2266
2267         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
2268         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
2269         throughout.
2270         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
2271         "xer" to "ca".
2272         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
2273         XER_REGS to CA_REGS throughout.
2274         * config/rs6000/rs6000.h: Same.
2275         (ADDITIONAL_REGISTER_NAMES): Add "xer".
2276         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
2277         that mode_iterator "P" is the size for arithmetic carries as well.
2278         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
2279
2280 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
2281
2282         PR bootstrap/44255
2283         * combine.c (struct rtx_subst_pair): Define unconditionally.
2284         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
2285         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
2286         Call make_compound_operation on pair->to.
2287         (propagate_for_debug): Don't call make_compound_operation here.
2288         Always use simplify_replace_fn_rtx.
2289
2290 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
2291
2292         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
2293         * config/xtensa/xtensa.c (override_options): Check
2294           TARGET_FORCE_NO_PIC and set flag_pic.
2295         * config/xtensa/xtensa.opt: Document -mforce-no-pic
2296
2297 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
2298
2299         PR bootstrap/44299
2300         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
2301         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
2302
2303 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
2304
2305         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
2306         toplev.h.
2307         * diagnostic.c: Don't include toplev.h.
2308         (progname): Define.  Moved from toplev.c.
2309         (seen_error): New function.
2310         * diagnostic.h: Include diagnostic-core.h.
2311         (diagnostic_t, emit_diagnostic): Don't declare here.
2312         * toplev.c (progname): Move to toplev.c.
2313         (emit_debug_global_declarations, compile_file, finalize,
2314         do_compile, toplev_main): Use seen_error.
2315         * toplev.h: Include diagnostic-core.h.
2316         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
2317         internal_error, warning, warning_at, error, error_n, error_at,
2318         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
2319         verbatim, fnotice, progname): Move to diagnostic-core.h.
2320         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
2321         (expand_builtin_expect): Use seen_error.
2322         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
2323         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
2324         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
2325         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
2326         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
2327         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
2328         errorcount for errors.
2329         * c-opts.c (c_common_finish): Use seen_error.
2330         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
2331         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
2332         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
2333         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
2334         (get_coverage_counts): Use seen_error.
2335         * dwarf2out.c (dwarf2out_finish): Use seen_error.
2336         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
2337         gimplify_body): Use seen_error.
2338         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
2339         * ipa-pure-const.c (gate_pure_const): Use seen_error.
2340         * ipa-reference.c (gate_reference): Use seen_error.
2341         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
2342         * lambda-code.c: Include diagnostic-core.h instead of
2343         diagnostic.h.
2344         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
2345         * lto-compress.c: Include diagnostic-core.h instead of
2346         diagnostic.h.
2347         * lto-section-in.c: Include diagnostic-core.h instead of
2348         diagnostic.h.
2349         * lto-streamer-out.c: Include diagnostic-core.h instead of
2350         diagnostic.h.
2351         * lto-streamer.c: Include diagnostic-core.h instead of
2352         diagnostic.h.
2353         (gate_lto_out): Use seen_error.
2354         * matrix-reorg.c: Include diagnostic-core.h instead of
2355         diagnostic.h.
2356         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
2357         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
2358         (gate_expand_omp, lower_omp_1): Use seen_error.
2359         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
2360         (rest_of_decl_compilation, rest_of_type_compilation,
2361         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
2362         * tree-cfg.c (label_to_block_fn): Use seen_error.
2363         * tree-inline.c (optimize_inline_calls): Use seen_error.
2364         * tree-mudflap.c (mudflap_finish_file): Use
2365         seen_error.
2366         * tree-optimize.c (gate_all_optimizations,
2367         gate_all_early_local_passes, gate_all_early_optimizations): Use
2368         seen_error.
2369         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
2370         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
2371         (varpool_remove_unreferenced_decls,
2372         varpool_assemble_pending_decls): Use seen_error.
2373         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
2374         (TOPLEV_H, DIAGNOSTIC_H): Update.
2375         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
2376         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
2377         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
2378         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
2379         coverage.o, lambda-code.o): Update dependencies.
2380
2381 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
2382
2383         PR c++/44188
2384         * c-common.c (is_typedef_decl): Move this definition ...
2385         * tree.c (is_typedef_decl): ... here.
2386         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
2387         * c-common.h (is_typedef_decl): Move this declaration ...
2388         * tree.h (is_typedef_decl): ... here.
2389         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
2390         * dwarf2out.c (is_naming_typedef_decl): New function.
2391         (gen_tagged_type_die): Split out of ...
2392         (gen_type_die_with_usage): ... this function. When an anonymous
2393         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
2394         is emitted for the typedef.
2395         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
2396         anonymous tagged types.
2397
2398 2010-05-27  Jason Merrill  <jason@redhat.com>
2399
2400         * print-tree.c (debug_vec_tree): New fn.
2401         (print_vec_tree): New fn.
2402         * tree.h: Declare them.
2403         * gdbinit.in (pvt): New command.
2404
2405         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
2406
2407         * gdbinit.in (pdd): New command.
2408
2409 2010-05-27  Jan Hubicka  <jh@suse.cz>
2410
2411         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
2412         (update_caller_keys): Return early if there are no callers;
2413         only update fibheap when decresing the key.
2414         (update_callee_keys): Avoid recursion.
2415         (decide_inlining_of_small_functions): When badness does not match;
2416         re-insert into fibheap.
2417
2418 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
2419
2420         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
2421         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
2422         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
2423         (ALL_HOST_OBJS): Now a union of the above two.
2424         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
2425         all files in ALL_HOST_FRONTEND_OBJS.
2426         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
2427
2428         * c-common.c: Pretend to be a backend file by undefining
2429         IN_GCC_FRONTEND (still need rtl.h here).
2430
2431 2010-05-27  Jan Hubicka  <jh@suse.cz>
2432
2433         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
2434         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
2435
2436 2010-05-27  Jan Hubicka  <jh@suse.cz>
2437
2438         * sched-ebb.c: Rename struct deps to struct deps_desc.
2439         * ddg.c: Likewise.
2440         * sel-sched-ir.c: Likewise.
2441         * sched-deps.c: Likewise.
2442         * sched-int.h: Likewise.
2443         * sched-rgn.c: Likewise.
2444
2445 2010-05-27  Jon Beniston <jon@beniston.com>
2446
2447         PR 43726
2448         * config/lm32/lm32.h: Remove definition of
2449         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
2450
2451 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2452
2453         PR lto/44230
2454         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
2455
2456 2010-05-27  Richard Guenther  <rguenther@suse.de>
2457
2458         PR tree-optimization/44284
2459         * tree-vect-stmts.c (vectorizable_assignment): Handle
2460         sign-changing conversions as simple copy.
2461
2462 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2463
2464         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
2465         Bionic C library.
2466         (__gthread_active_p): Check for pthread_create if compiling against
2467         Bionic C library.
2468
2469 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2470
2471         Support compilation for Android platform.  Reimplement -mandroid.
2472
2473         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
2474         (*android*): Set ANDROID_DEFAULT.
2475         (arm*-*-linux*): Include linux-android.h.
2476         (arm*-*-eabi*): Don't include previous -mandroid implementation.
2477         * config/arm/eabi.h: Remove, move Android-specific parts ...
2478         * config/linux-android.h: ... here.  New file.
2479         * config/arm/eabi.opt: Rename to ...
2480         * config/linux-android.opt: ... this.
2481         (mandroid): Allow -mno-android option.  Initialize based on
2482         ANDROID_DEFAULT.
2483         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
2484         Move logic to corresponding LINUX_TARGET_* macros.
2485         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
2486         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
2487         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
2488         Android definitions.
2489         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
2490         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
2491         Document.
2492
2493 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2494
2495         Add support for Bionic C library
2496
2497         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
2498         macro.
2499         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
2500         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
2501
2502         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
2503         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
2504         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
2505         to support multiple C libraries.  Handle Bionic.
2506         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
2507         (BIONIC_DYNAMIC_LINKER64): Define.
2508         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
2509         Update.
2510         (TARGET_HAS_SINCOS): Enable for Bionic.
2511
2512         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
2513         the last option specified on command line take effect.
2514         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
2515         (mbionic): New.
2516         (mglibc, muclibc): Update.
2517
2518         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
2519         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
2520         DEFAULT_LIBC.
2521
2522         * doc/invoke.texi (-mglibc, -muclibc): Update.
2523         (-mbionic): Document.
2524
2525 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2526
2527         * c-common.h (c_register_addr_space): Add prototype.
2528         (ADDR_SPACE_KEYWORD): Remove.
2529         * c-common.c (c_register_addr_space): New function.
2530         (c_addr_space_name): Reimplement.
2531         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
2532
2533         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
2534         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
2535
2536         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
2537         Remove TARGET_ADDR_SPACE_KEYWORDS.
2538
2539 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
2540
2541         * input.c: New file.
2542         * input.h (main_input_filename): Move declaration to toplev.h.
2543         * toplev.c (input_location, line_table): Move to input.c
2544         * toplev.h (main_input_filename): Move declaration from input.h.
2545         * tree.c (expand_location): Move to input.c.
2546         * Makefile.in (OBJS-common): Add input.o.
2547         (input.o): Add dependencies.
2548
2549 2010-05-27  Richard Guenther  <rguenther@suse.de>
2550
2551         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
2552         for non-existant files.
2553         (fork_execute): Mark args_name file as deleted.
2554
2555 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
2556
2557         PR bootstrp/44287
2558         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
2559         (narrow_signed_type): Likewise.
2560
2561 2010-05-26  Jan Hubicka  <jh@suse.cz>
2562
2563         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
2564         edge only when checking is enabled; check using former_clone_of;
2565         check inline clones too.
2566         (cgraph_materialize_clone): Record former_clone_of pointer.
2567         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
2568         combining redirections; dump args_to_skip bitmap
2569         (cgraph_materialize_all_clones): Do no redirection here.
2570         * ipa-inline.c (inline_transform): Do redirection here.
2571         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
2572         cheking only).
2573
2574 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2575
2576         * config/avr/avr-c.c: Do not include regs.h.
2577         Include cpplib.h for cpp_define and tree.h for c-common.h.
2578         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
2579         * config/avr/t-avr: Fix dependencies for avr-c.o.
2580
2581 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2582
2583         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
2584         string instead of SYMBOL_REF rtx.
2585         * rtl.h (set_stack_check_libfunc): Move prototype from here...
2586         * libfuncs.h: ...to here.  Adjust for explow.c change.
2587
2588 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
2589
2590         * pretty-print.c: Don't include ggc.h.
2591         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
2592         (identifier_to_locale): Use them for allocation.
2593         * pretty-print.h (identifier_to_locale_alloc,
2594         identifier_to_locale_free): Declare.
2595         * toplev.c (alloc_for_identifier_to_locale): New.
2596         (general_init): Set identifier_to_locale_alloc and
2597         identifier_to_locale_free.
2598         * Makefile.in (pretty-print.o): Update dependencies.
2599
2600 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2601
2602         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
2603         pointer types if they have different alignment or mode.
2604
2605 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
2606
2607         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2608         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2609         * config/sparc/sparc-protos.h (function_value): Remove declaration.
2610         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
2611         sparc_function_value_regno_p): New functions.
2612         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2613         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2614         (function_value): Rename to...
2615         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
2616         argument to 'outgoing'.
2617         (function_arg_record_value, function_arg_union_value,
2618         function_arg_vector_value): Update comment.
2619
2620 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2621
2622         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
2623         (fde_needed_for_eh_p): New predicate.
2624         (output_call_frame_info): Use it throughout to decide whether FDEs
2625         are needed for EH purpose.
2626         (dwarf2out_begin_prologue): Reorder assignments.
2627
2628 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2629
2630         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
2631         special case loop->header.
2632         (is_predicated): New.
2633         (if_convertible_loop_p): Call it.
2634
2635 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2636
2637         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
2638         iterator in parameter.  Do not generate code during the analysis.
2639         (tree_if_convert_cond_stmt): Removed.
2640         (tree_if_convert_stmt): Removed.
2641         (predicate_bbs): New.
2642         (if_convertible_loop_p): Call predicate_bbs.
2643         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
2644         now contains all the analysis part.
2645
2646 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2647
2648         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
2649         statements in the analysis part.
2650         (tree_if_convert_stmt): Update comment.
2651         (remove_conditions_and_labels): New.
2652         (combine_blocks): Call remove_conditions_and_labels.
2653         (tree_if_conversion): Update comment.
2654
2655 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2656
2657         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
2658         than 2 predecessors or more than 2 successors.
2659
2660 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2661
2662         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
2663         of loops in which the data dependence analysis fails.
2664
2665 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2666
2667         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
2668         CDI_POST_DOMINATORS.
2669         (tree_if_conversion): Same.
2670
2671 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2672
2673         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
2674
2675 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2676
2677         * tree-if-conv.c: Update copyright years.  Fix comments.
2678         Fix indentation.
2679
2680 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
2681
2682         * builtin-types.def (BT_INT128): New primitive type.
2683         (BT_UINT128): Likewise.
2684         * c-common.c (c_common_r): Add __int128 keyword.
2685         (c_common_type_for_size): Handle __int128.
2686         (c_common_type_for_mode): Likewise.
2687         (c_common_signed_or_unsigned_type): Likewise.
2688         (c_common_nodes_and_builtins): Add builtin type
2689         if target supports 128-bit integer scalar.
2690         * c-common.h (enum rid): Add RID_INT128.
2691         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
2692         if target supports 128-bit integer scalar.
2693         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
2694         (finish_declspecs): Likewise.
2695         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
2696         (c_token_starts_declspecs): Likewise.
2697         (c_parser_declspecs): Likewise.
2698         (c_parser_attributes): Likewise.
2699         (c_parser_objc_selector): Likewise.
2700         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
2701         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
2702         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
2703         * tree.c (make_or_reuse_type): Likewise.
2704         (make_unsigned_type): Likewise.
2705         (build_common_tree_nodes_2): Likewise.
2706         * tree.h (enum integer_type_kind): Add itk_int128 and
2707         itk_unsigned_int128.
2708         (int128_integer_type_node): New define.
2709         (int128_unsigned_type_node): New define.
2710         * doc/extend.texi: Add documentation about __int128 type.
2711
2712 2010-05-26  Richard Guenther  <rguenther@suse.de>
2713
2714         * tree-ssa-sccvn.c (copy_nary): Adjust.
2715         (copy_phis): Rename to ...
2716         (copy_phi): ... this.  Adjust.
2717         (copy_references): Rename to ...
2718         (copy_reference): ... this.  Adjust.
2719         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
2720         result into the valid table.
2721
2722 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2723
2724         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
2725         insn-config.h, insn-codes.h, recog.h, and optabs.h.
2726
2727 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2728
2729         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
2730
2731 2010-05-26  Richard Guenther  <rguenther@suse.de>
2732
2733         * opts.c (common_handle_option): Handle OPT_Ofast.
2734
2735 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
2736
2737         * diagnostic.c: Don't include opts.h.
2738         (permissive_error_option): Define.
2739         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
2740         for classify_diagnostic.  Don't use memset for
2741         classify_diagnostic.  Initialize new and recently added fields.
2742         (diagnostic_classify_diagnostic): Use context->n_opts instead of
2743         N_OPTS.
2744         (diagnostic_report_diagnostic): Pass context parameter to
2745         diagnostic_report_warnings_p.  Use option_enabled and option_name
2746         hooks from context.
2747         (emit_diagnostic): Use permissive_error_option.
2748         (permerror): Likewise.
2749         * diagnostic.h: Don't include options.h.
2750         (struct diagnostic_context): Add n_opts, opt_permissive,
2751         inhibit_warnings, warn_system_headers, option_enabled and
2752         option_name fields.  Change classify_diagnostic to a pointer.
2753         * opts-diagnostic.h: New file.
2754         * opts.c: Include opts-diagnostic.h.
2755         (common_handle_option): Set global_dc fields for -Wfatal-errors,
2756         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
2757         (option_name): New function.
2758         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
2759         (c_common_handle_option): Set global_dc->permissive for
2760         -fpermissive.
2761         * c-common.c (c_cpp_error): Save and restore
2762         global_dc->warn_system_headers, not variable warn_system_headers.
2763         * toplev.c: Include opts-diagnostic.h.
2764         (general_init): Update call to diagnostic_initialize.  Set
2765         global_dc->show_column, global_dc->option_enabled and
2766         global_dc->option_name.
2767         (process_options): Don't set global_dc fields here.
2768         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
2769         (diagnostic.o, opts.o, toplev.o): Update dependencies.
2770
2771 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
2772
2773         * config/picochip/picochip.md (movsi): Split a movsi from a
2774         const after reload.
2775
2776 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2777
2778         * ggc-zone.c: Update copyright year.
2779         (poison_region): Mark memory for Valgrind as undefined before
2780         memset () call and inaccessible afterwards.
2781         (ggc_pch_total_size): Change type of i to int.
2782
2783 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2784
2785         * ggc-common.c (ggc_free_overhead): Allow empty slot.
2786
2787 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2788
2789         * ggc-common.c: Update copyright year.
2790         (ggc_rlimit_bound): Remove prototype.  Compile only if
2791         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
2792         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
2793         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
2794         (ggc_min_heapsize_heuristic): Likewise.
2795
2796 2010-05-26  Richard Guenther  <rguenther@suse.de>
2797
2798         PR rtl-optimization/44164
2799         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
2800         no-common access-path disambiguation.
2801         (indirect_ref_may_alias_decl_p): Adjust.
2802         (indirect_refs_may_alias_p): Likewise.
2803         (refs_may_alias_p_1): Likewise.
2804
2805 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2806
2807         * c-typeck.c: Do not include expr.h.
2808
2809 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2810
2811         * rtl.h (decl_default_tls_model): Move prototype from here...
2812         * output.h: ...to here.
2813         * c-decl.c: Do not include rtl.h.
2814         * c-pragma.c: Likewise.
2815         * c-parser.c: Likewise.
2816         * c-gimplify.c: Likewise.  And also not hard-reg-set.
2817         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
2818         FIXME note for it.  Add a FIXME note for expr.h.
2819         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
2820         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
2821         defined.
2822
2823 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
2824
2825         PR target/44199
2826         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
2827         or total_size is larger than red zone size for non-V4 ABI, emit a
2828         stack_tie resp. frame_tie insn before stack pointer restore.
2829         * config/rs6000/rs6000.md (frame_tie): New insn.
2830
2831 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2832
2833         * function.h (struct function): Add can_throw_non_call_exceptions bit.
2834         * lto-streamer-in.c (input_function): Stream it in.
2835         * lto-streamer-out.c (output_function): Stream it out.
2836         * function.c (allocate_struct_function): Set it.
2837         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
2838         for flag_non_call_exceptions.
2839         * cfgbuild.c (control_flow_insn_p): Likewise.
2840         (make_edges): Likewise.
2841         * cfgexpand.c (expand_stack_alignment): Likewise.
2842         * combine.c (distribute_notes): Likewise.
2843         * cse.c (cse_extended_basic_block): Likewise.
2844         * except.c (insn_could_throw_p): Likewise.
2845         * gcse.c (simple_mem): Likewise.
2846         * ipa-pure-const.c (check_call): Likewise.
2847         (check_stmt ): Likewise.
2848         * lower-subreg.c (lower-subreg.c): Likewise.
2849         * optabs.c (emit_libcall_block): Likewise.
2850         (prepare_cmp_insn): Likewise.
2851         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
2852         * postreload.c (rest_of_handle_postreload): Likewise.
2853         * reload1.c (reload_as_needed): Likewise.
2854         (emit_input_reload_insns): Likewise.
2855         (emit_output_reload_insns): Likewise.
2856         (fixup_abnormal_edges): Likewise.
2857         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
2858         * store-motion.c (find_moveable_store): Likewise.
2859         * tree-eh.c (stmt_could_throw_p): Likewise.
2860         (tree_could_throw_p): Likewise.
2861         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2862         * config/arm/arm.c (arm_expand_prologue): Likewise.
2863         (thumb1_expand_prologue): Likewise.
2864         * config/rx/rx.md (cbranchsf4): Likewise.
2865         (cmpsf): Likewise.
2866         * config/s390/s390.c (s390_emit_prologue): Likewise.
2867         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
2868         (inline_forbidden_into_p): New predicate.
2869         (expand_call_inline): Use it to forbid inlining.
2870         (tree_can_inline_p): Likewise.
2871
2872 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2873
2874         * config/i386/i386-c.c: Do not include rtl.h.
2875         * config/i386/t-i386: Update dependencies.
2876
2877 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2878
2879         * attribs.c: Do not include rtl.h.
2880         * Makefile.in: Update dependencies.
2881
2882 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
2883
2884         * double-int.h (double_int_and): New.
2885         * combine.c (try_combine): Clean up, use double_int_* and
2886         immed_double_int_const functions.
2887
2888 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2889
2890         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
2891         stderr to /dev/null instead of grep -q.
2892         * configure: Regenerate.
2893
2894 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2895
2896         * Makefile.in (EXCEPT_H): Fix typo.
2897
2898 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
2899
2900         * ira-build.c (update_conflict_hard_reg_costs): New.
2901         (ira_build): Call update_conflict_hard_reg_costs.
2902
2903 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
2904
2905         PR debug/41371
2906         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
2907         ENABLE_CHECKING.
2908         (intersect_loc_chains): Walk the s2var's loc_chain together
2909         with s1node chain as long as the locations are equal, don't
2910         call find_loc_in_1pdv in that case.
2911
2912         PR debug/42801
2913         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
2914         (copy_bind_expr): ... instead of here.
2915         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
2916         if the block hasn't been remapped.
2917         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
2918         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
2919
2920 2010-05-25  Richard Guenther  <rguenther@suse.de>
2921
2922         PR middle-end/44069
2923         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
2924         out-of-bounds array accesses.
2925
2926 2010-05-25  Richard Guenther  <rguenther@suse.de>
2927
2928         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
2929         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
2930         (run_gcc): Re-organize to make cleanup easier.
2931
2932 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2933
2934         * config/s390/s390.c (optimization_options): Fix and move the
2935         flag_prefetch_loop_arrays override ...
2936         (override_options): ... here.
2937
2938 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
2939
2940         * diagnostic.c: Don't include plugin.h.
2941         (diagnostic_report_diagnostic): Don't handle plugins specially
2942         here.  Pass context to internal_error callback.
2943         * diagnostic.h (struct diagnostic_context): Add context parameter
2944         to internal_error callback.
2945         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
2946         * plugin.h (struct diagnostic_context): Declare.
2947         (warn_if_plugins, plugins_internal_error_function): Declare.
2948         * toplev.c (general_init): Set global_dc->internal_error.
2949         * Makefile.in (diagnostic.o): Update dependencies.
2950
2951 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
2952
2953         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
2954         * config/rs6000/t-darwin64: New.
2955         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
2956         build crt2.
2957
2958 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
2959
2960         PR 44203
2961         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
2962         match the original (and intended) behaviour before r159557.  This
2963         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
2964         in two ways.
2965
2966 2010-05-25  Richard Guenther  <rguenther@suse.de>
2967
2968         * doc/invoke.texi: Document -Ofast.
2969         * target.h (struct gcc_target): Add handle_ofast.
2970         * target-def.h (TARGET_HANDLE_OFAST): Add.
2971         (TARGET_INITIALIZER): Adjust.
2972         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
2973         * common.opt (Ofast): Add.
2974
2975 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
2976
2977         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
2978         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
2979
2980 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
2981
2982         PR target/43610
2983         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
2984         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
2985         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
2986         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
2987
2988 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
2989
2990         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
2991         DW_OP_minus with negated offset instead of DW_OP_plus.
2992         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
2993
2994 2010-05-25  Wei Guozhi  <carrot@google.com>
2995
2996         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
2997         tst instruction and a new alternative.
2998         * config/arm/constraints.md (Pu): New constraint.
2999
3000 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
3001
3002         * function.c (assign_stack_local_1): Initialize variable
3003         to avoid warning when bootstrapping at -O3.
3004
3005 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
3006
3007         * configure.ac (all_lang_makefiles): Remove everything related to it.
3008         * configure: Regenerate.
3009         * Makefile.in: Fix reference to ada Make-lang.in.
3010         Remove support for LANG_MAKEFILES.
3011
3012 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
3013             Sandra Loosemore  <sandra@codesourcery.com>
3014
3015         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
3016         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
3017         description.  Add arm_neon_fp16_ok.
3018         (Add Options): Add arm_neon and arm_neon_fp16.
3019
3020 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
3021
3022         * diagnostic.c: Don't include flags.h.
3023         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
3024         context parameters.  Check flags in the context passed as a parameter.
3025         (diagnostic_build_prefix): Add context parameter.  Check
3026         show_column flag in context.
3027         (diagnostic_action_after_output): Check fatal_errors flag in context.
3028         (diagnostic_report_current_module): Check show_column flag in context.
3029         (default_diagnostic_starter): Update call to
3030         diagnostic_build_prefix.
3031         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
3032         (emit_diagnostic): Pass context to permissive_error_kind.
3033         (permerror): Pass context to permissive_error_kind.
3034         * diagnostic.h (struct diagnostic_context): Add show_column,
3035         pedantic_errors, permissive and fatal_errors fields.
3036         (diagnostic_build_prefix): Update prototype.
3037         * langhooks.c
3038         * toplev.c (process_options): Set flags in global_dc from
3039         flag_show_column, flag_pedantic_errors, flag_permissive,
3040         flag_fatal_errors.
3041         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
3042         to diagnostic_build_prefix.
3043         * Makefile.in (diagnostic.o): Update dependencies.
3044
3045 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3046
3047         * config/i386/ia32intrin.h (__crc32q): Define only if
3048         __SSE4_2__ is defined.
3049
3050 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
3051
3052         PR target/44132
3053         PR middle-end/43602
3054         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
3055         DECL_VISIBILITY_SPECIFIED.
3056         (emutls_decl): Set DECL_PRESERVE_P and copy
3057         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
3058         (emutls_finalize_control_var): New callback.
3059         (emutls_finish): Finalize emutls control variables.
3060         * toplev.c (compile_file): Move the call to emutls_finish ()
3061         before varpool_assemble_pending_decls ().
3062
3063 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
3064
3065         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
3066         added to the preprocessor condition.
3067
3068 2010-05-24  Paul Brook  <paul@codesourcery.com>
3069
3070         * gengtype-lex.l: Add HARD_REG_SET.
3071         * expr.c (expand_expr_real_1): Record writes to hard registers.
3072         * function.c (rtl_data): Add asm_clobbers.
3073         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
3074         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
3075         Use crtl->asm_clobbers.
3076
3077 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3078
3079         * doc/makefile.texi (Makefile): Mention stages 'profile'
3080         and 'feedback' for profiledbootstrap.
3081
3082 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
3083
3084         PR target/44245
3085         * config/i386/i386.c (def_builtin): Properly check
3086         OPTION_MASK_ISA_64BIT.
3087
3088 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
3089
3090         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
3091         typedefs with different but compatible types.  Allow duplicate
3092         typedefs with the same type except for pedantic non-C1X, but give
3093         warning for variably modified types.
3094         * c-typeck.c (tagged_types_tu_compatible_p,
3095         function_types_compatible_p, type_lists_compatible_p,
3096         comptypes_internal): Add parameter different_types_p; set
3097         *different_types_p for different but compatible types.  All
3098         callers changed.
3099         (comptypes_check_different_types): New.
3100         * c-tree.h (comptypes_check_different_types): Declare.
3101
3102 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
3103
3104         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
3105         * jump.c: Include basic-block.h.
3106         * profile.c: Likewise.
3107         * tree-profile.c: Likewise.
3108         * coverage.c: Likewise.
3109         * basic-block.h (optimize_function_for_size_p): Move to function.h.
3110         (optimize_function_for_speed_p): Likewise.
3111         * function.h (optimize_function_for_size_p,
3112         optimize_function_for_speed_p): Moved here from basic-block.h.
3113         * Makefile.in: Update dependencies.
3114
3115 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3116
3117         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
3118         before calling make; allow override through $MAKE.
3119         * doc/invoke.texi (Optimize Options): Document override.
3120
3121 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
3122
3123         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
3124         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3125         (rs6000_mode_dependent_address_ptr): Make static.
3126         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3127         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
3128         Remove.
3129
3130 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
3131
3132         PR target/43869
3133         * config/i386/i386.c: Make sure that the correct regparm is passed.
3134
3135 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
3136
3137         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
3138         * sbitmap.c: ...to here to internalize sbitmap element access.
3139         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
3140         Explain why basic-block.h is included.
3141         * function.h: Include tm.h for CUMULATIVE_ARGS.
3142         * Makefile.in: Update dependencies.
3143
3144 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
3145
3146         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
3147         New core types.
3148         * sbitmap.h (struct sbitmap_def): Do not typedef here.
3149         * sbitmap.c: Include sbitmap.h.
3150         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
3151         hard-reg-set.h.  Split everything related to regsets out from here...
3152         * regset.h: ...to here.  New file.
3153         * df.h: Include regset.h and sbitmap.h.
3154         * tree-flow.h: Likewise.
3155         * cfgloop.h: Likewise.
3156         * except.h: Do not include sbitmap.h.  Include hashtab.h.
3157         * cgraph.h: Include vec.h and function.h.
3158         * reload.h (struct insn_chain): Change types of live_throughout
3159         and dead_or_set from regset_head to bitmap_head.
3160         (compute_use_by_pseudos): Be defined also if regset.h is not included.
3161         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
3162         spilled_regs from regset_head to bitmap_head to avoid dependency
3163         in regset.h.
3164         * sel-sched-ir.h: Include regset.h.
3165         * reload.c: Include df.h before reload.h.
3166         * caller-save.c: Likewise.
3167         * reload1.c: Likewise.
3168         * ira.c: Likewise.
3169         (mark_elimination): Update type of r to bitmap, consistent with
3170         DF_LR_IN.
3171         * dominance.c: Include bitmap.h.
3172         * modulo-sched.c: Include df.h.
3173         * cfganal.c: Include bitmap.h and sbitmap.h.
3174         * cfgbuild.c: Include sbitmap.h.
3175         * lcm.c: Include sbitmap.h.
3176         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
3177         * domwalk.c: Include sbitmap.h, exclude ggc.h.
3178         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
3179         * cselib.c: Include bitmap.h.
3180         * tree-optimize.c: Include regset.h.
3181         * stmt.c: Include bitmap.h.
3182         * Makefile.in: Update dependencies.
3183
3184 2010-05-22  Jan Hubicka  <jh@suse.cz>
3185
3186         * cgraph.h (struct varpool_node): Add same_comdat_group.
3187         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
3188         pointer.
3189         (output_varpool): Update call of lto_output_varpool_node.
3190         (input_varpool): Read same_comdat_group pointer.
3191         (input_varpool_1): Fixup same_comdat_group pointer.
3192         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
3193         group is needed, all are.
3194         * varpool.c (varpool_remove_node): Remove node from same comdat group
3195         linklist too.
3196         (varpool_analyze_pending_decls): Walk same comdat groups.
3197
3198 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
3199
3200         * rtl.h (union rtunion_def): Remove rt_bit member.
3201         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
3202         * print-rtl (print_rtx): Do not print the member.
3203         * gengtype.c (adjust_field_rtx_def): Do not handle it.
3204         * gengenrtl.c (type_from_format): Likewise.
3205         (accessor_from_format): Likewise.
3206
3207 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
3208
3209         * dbgcnt.c: Include toplev.h instead of errors.h.
3210         * ira-emit.c: Don't include errors.h.
3211         * ira.c: Include toplev.h instead of errors.h.
3212         * lto-compress.c: Include toplev.h instead of errors.h.
3213         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
3214         ira.o, dbgcnt.o): Update dependencies.
3215
3216 2010-05-22  Richard Guenther  <rguenther@suse.de>
3217
3218         * gimple.c (gimple_types_compatible_p): Check type qualifications
3219         before merging pointer to complete and pointer to incomplete type.
3220         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
3221         we use our own resolution algorithm.  The gold linker plugin
3222         doesn't do the job we want it to do here.
3223
3224 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
3225
3226         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3227         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3228         (sparc_mode_dependent_address_p): New function.
3229
3230 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3231
3232         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
3233
3234         * timevar.c: Do not include any core headers.
3235         (timevar_print): De-i18n-ize.
3236         (print_time): Likewise.
3237         * timevar.h (timevar_push, timevar_pop): Make inline functions.
3238
3239 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
3240
3241         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
3242         langhooks-def.h.
3243         (diagnostic_initialize): Initialize x_data not last_function.
3244         (diagnostic_report_current_function): Move to tree-diagnostic.c.
3245         (default_diagnostic_starter): Call
3246         diagnostic_report_current_module not
3247         diagnostic_report_current_function.
3248         (diagnostic_report_diagnostic): Initialize x_data not
3249         abstract_origin.
3250         (verbatim): Likewise.
3251         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
3252         x_data.
3253         (struct diagnostic_context): Change last_function to x_data.
3254         (diagnostic_auxiliary_data): Replace with
3255         diagnostic_context_auxiliary_data and
3256         diagnostic_info_auxiliary_data.
3257         (diagnostic_last_function_changed, diagnostic_set_last_function,
3258         diagnostic_report_current_function): Move to tree-diagnostic.h.
3259         (print_declaration, dump_generic_node, print_generic_stmt,
3260         print_generic_stmt_indented, print_generic_expr,
3261         print_generic_decl, debug_c_tree, dump_omp_clauses,
3262         print_call_name, debug_generic_expr, debug_generic_stmt,
3263         debug_tree_chain, default_tree_printer): Move to
3264         tree-pretty-print.h.
3265         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
3266         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
3267         gimple-pretty-print.h.
3268         * pretty-print.c: Don't include tree.h
3269         (pp_base_format): Don't handle %K here.
3270         (pp_base_tree_identifier): Move to tree-pretty-print.c.
3271         * pretty-print.h (text_info): Change abstract_origin to x_data.
3272         (pp_tree_identifier, pp_unsupported_tree,
3273         pp_base_tree_identifier): Move to tree-pretty-print.h.
3274         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
3275         tree-pretty-print.h: New files.
3276         * tree-pretty-print.c: Include tree-pretty-print.h.
3277         (percent_K_format): New.  Moved from pretty-print.c.
3278         (pp_base_tree_identifier): Move from pretty-print.c.
3279         * c-objc-common.c: Include tree-pretty-print.h.
3280         (c_tree_printer): Handle %K here.
3281         * langhooks.c: Include tree-diagnostic.h.
3282         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
3283         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
3284         (default_tree_printer): Handle %K using percent_K_format.
3285         (general_init): Use default_tree_diagnostic_starter.
3286         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
3287         (free_lang_data): Use default_tree_diagnostic_starter.
3288         * c-pretty-print.c: Include tree-pretty-print.h.
3289         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3290         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3291         * dwarf2out.c: Include tree-pretty-print.h.
3292         * except.c: Include tree-pretty-print.h.
3293         * gimple-pretty-print.c: Include tree-pretty-print.h and
3294         gimple-pretty-print.h.
3295         * gimplify.c: Include tree-pretty-print.h.
3296         * graphite-poly.c: Include tree-pretty-print.h and
3297         gimple-pretty-print.h.
3298         * ipa-cp.c: Include tree-pretty-print.h.
3299         * ipa-inline.c: Include gimple-pretty-print.h.
3300         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3301         * ipa-pure-const.c: Include gimple-pretty-print.h.
3302         * ipa-struct-reorg.c: Include tree-pretty-print.h and
3303         gimple-pretty-print.h.
3304         * ipa-type-escape.c: Include tree-pretty-print.h.
3305         * print-rtl.c: Include tree-pretty-print.h.
3306         * print-tree.c: Include gimple-pretty-print.h.
3307         * sese.c: Include tree-pretty-print.h.
3308         * tree-affine.c: Include tree-pretty-print.h.
3309         * tree-browser.c: Include tree-pretty-print.h.
3310         * tree-call-cdce.c: Include gimple-pretty-print.h.
3311         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3312         * tree-chrec.c: Include tree-pretty-print.h.
3313         * tree-data-ref.c: Include tree-pretty-print.h and
3314         gimple-pretty-print.h.
3315         * tree-dfa.c: Include tree-pretty-print.h.
3316         * tree-if-conv.c: Include tree-pretty-print.h and
3317         gimple-pretty-print.h.
3318         * tree-inline.c: Include tree-pretty-print.h.
3319         * tree-into-ssa.c: Include tree-pretty-print.h and
3320         gimple-pretty-print.h.
3321         * tree-nrv.c: Include tree-pretty-print.h.
3322         * tree-object-size.c: Include tree-pretty-print.h and
3323         gimple-pretty-print.h.
3324         * tree-outof-ssa.c: Include tree-pretty-print.h and
3325         gimple-pretty-print.h.
3326         * tree-parloops.c: Include tree-pretty-print.h and
3327         gimple-pretty-print.h.
3328         * tree-predcom.c: Include tree-pretty-print.h and
3329         gimple-pretty-print.h.
3330         * tree-scalar-evolution.c: Include tree-pretty-print.h and
3331         gimple-pretty-print.h.
3332         * tree-sra.c: Include tree-pretty-print.h.
3333         * tree-ssa-address.c: Include tree-pretty-print.h.
3334         * tree-ssa-alias.c: Include tree-pretty-print.h.
3335         * tree-ssa-ccp.c: Include tree-pretty-print.h and
3336         gimple-pretty-print.h.
3337         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
3338         * tree-ssa-copy.c: Include tree-pretty-print.h and
3339         gimple-pretty-print.h.
3340         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
3341         * tree-ssa-dce.c: Include tree-pretty-print.h and
3342         gimple-pretty-print.h.
3343         * tree-ssa-dom.c: Include tree-pretty-print.h and
3344         gimple-pretty-print.h.
3345         * tree-ssa-dse.c: Include gimple-pretty-print.h.
3346         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
3347         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
3348         * tree-ssa-live.c: Include tree-pretty-print.h and
3349         gimple-pretty-print.h.
3350         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
3351         gimple-pretty-print.h.
3352         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
3353         gimple-pretty-print.h.
3354         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
3355         gimple-pretty-print.h.
3356         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
3357         gimple-pretty-print.h.
3358         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
3359         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
3360         * tree-ssa-operands.c: Include tree-pretty-print.h and
3361         gimple-pretty-print.h.
3362         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
3363         gimple-pretty-print.h.
3364         * tree-ssa-pre.c: Include tree-pretty-print.h and
3365         gimple-pretty-print.h.
3366         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
3367         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
3368         gimple-pretty-print.h.
3369         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
3370         gimple-pretty-print.h.
3371         * tree-ssa-sink.c: Include gimple-pretty-print.h.
3372         * tree-ssa-ter.c: Include tree-pretty-print.h and
3373         gimple-pretty-print.h.
3374         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
3375         * tree-ssa.c: Include tree-pretty-print.h and
3376         gimple-pretty-print.h.
3377         * tree-stdarg.c: Include gimple-pretty-print.h.
3378         * tree-switch-conversion.c: Include gimple-pretty-print.h.
3379         * tree-tailcall.c: Include tree-pretty-print.h and
3380         gimple-pretty-print.h.
3381         * tree-vect-data-refs.c: Include tree-pretty-print.h and
3382         gimple-pretty-print.h.
3383         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
3384         gimple-pretty-print.h.
3385         * tree-vect-loop.c: Include tree-pretty-print.h and
3386         gimple-pretty-print.h.
3387         * tree-vect-patterns.c: Include gimple-pretty-print.h.
3388         * tree-vect-slp.c: Include tree-pretty-print.h and
3389         gimple-pretty-print.h.
3390         * tree-vect-stmts.c: Include tree-pretty-print.h and
3391         gimple-pretty-print.h.
3392         * tree-vectorizer.c: Include tree-pretty-print.h.
3393         * tree-vrp.c: Include tree-pretty-print.h and
3394         gimple-pretty-print.h.
3395         * value-prof.c: Include tree-pretty-print.h and
3396         gimple-pretty-print.h.
3397         * var-tracking.c: Include tree-pretty-print.h.
3398         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
3399         (tree-diagnostic.o): New dependencies.
3400         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
3401         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
3402         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
3403         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
3404         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
3405         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
3406         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3407         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
3408         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
3409         tree-ssa-address.o, tree-ssa-loop-niter.o,
3410         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
3411         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
3412         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
3413         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
3414         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
3415         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
3416         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
3417         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
3418         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
3419         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
3420         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
3421         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
3422         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
3423         tree-switch-conversion.o, var-tracking.o, value-prof.o,
3424         cfgexpand.o, pretty-print.o): Update dependencies.
3425
3426 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
3427
3428         * tree-ssa-structalias.c: Remove tm_p.h from include.
3429
3430 2010-05-21  Jeff Law  <law@redhat.com>
3431
3432         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
3433
3434 2010-05-21  Jason Merrill  <jason@redhat.com>
3435
3436         * tree-eh.c (cleanup_is_dead_in): New.
3437         (lower_try_finally): Don't generate a dead cleanup region.
3438         (lower_cleanup): Likewise.
3439
3440 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
3441
3442         PR debug/44223
3443         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
3444         unchain each use from the cyclic next_regno_use chain first.
3445
3446 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3447
3448         * real: Do not include gmp.h, mpfr.h, and mpc.h.
3449         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
3450         (real_value_negate, real_value_abs): New prototypes.
3451         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
3452         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
3453         new include file for interface between MPFR and REAL_VALUE_TYPE.
3454         * real.c: Include realmpfr.h.
3455         (real_arithmetic2): Remove legacy function.
3456         (real_value_negate): New.
3457         (real_value_abs): New.
3458         (mfpr_from_real, real_from_mpfr): Move from here...
3459         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
3460         * builtins.c: Include realmpfr.h.
3461         * fold-const.c: Include realmpfr.h.
3462         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
3463         (fold_negate_const): Likewise.
3464         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
3465         * toplev.c: Include realmpfr.h.
3466         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
3467         and real_value_negate.
3468         * fixed-value.c (check_real_for_fixed_mode): Likewise.
3469         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
3470         (vfp3_const_double_index): Likewise.
3471         (arm_print_operand): Likewise.
3472         * Makefile.in: Update dependencies.
3473
3474 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3475
3476         * config/s390/s390.c (override_options): Increase the default
3477         of max-completely-peel-times.
3478
3479 2010-05-21  Julian Brown  <julian@codesourcery.com>
3480             Mark Mitchell  <mark@codesourcery.com>
3481
3482         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
3483         sibling calls for Thumb-1.
3484         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
3485         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
3486         Thumb-2.
3487         (*call_insn, *call_value_insn): Don't use for Thumb-2.
3488         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
3489         for Thumb-2.
3490         (return): New expander.
3491         (*arm_return): New name for ARM return insn.
3492         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
3493
3494 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
3495
3496         * config.gcc (sparc64-*-rtems*): New target.
3497
3498 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
3499
3500         * tree.c (build_function_decl_skip_args): Fix grammar.
3501         (build_function_type_list_1): Fix typos, adjust formatting.
3502
3503 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3504
3505         * tree.h: Include real.h and fixed-value.h as basic datatypes.
3506         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
3507         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
3508         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
3509         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
3510         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
3511         tree-pretty-print.c, tree-loop-distribution.c,
3512         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
3513         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
3514         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
3515         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
3516         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
3517         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
3518         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
3519         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
3520         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
3521         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
3522         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
3523         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
3524         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
3525         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
3526         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
3527         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
3528         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
3529         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
3530         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
3531         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
3532         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
3533         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
3534         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
3535         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
3536         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
3537         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
3538         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
3539         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
3540         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
3541         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
3542         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
3543         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
3544         config/score/score7.c, config/score/score.c, config/arm/arm.c,
3545         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
3546         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
3547         config/bfin/bfin.c: Clean up redundant includes.
3548         * Makefile.in: Update accordingly.
3549
3550 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
3551
3552         PR middle-end/44204
3553         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
3554         statement has no arguments.
3555
3556 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
3557
3558         PR/44139
3559         * varasm.c (emutls_decl): Merge attributes to new decl.
3560
3561 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3562
3563         PR middle-end/44101
3564         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
3565         around the uniquized constructor if its type requires a conversion.
3566
3567 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
3568
3569         PR debug/44205
3570         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
3571         at -O0 goto_locus of any of the incoming edges differs from
3572         goto_locus of outgoing edge, or gimple_location of any of the
3573         labels differs.
3574
3575 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
3576
3577         * ira.c (ira_non_ordered_class_hard_regs): Define.
3578         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
3579         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
3580         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
3581         cost of unaligned hard regs when allocating multi-reg pseudos.
3582
3583 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
3584
3585         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
3586         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
3587         for TARGET_NO_FLOAT.
3588         * config/mips/mips.c (mips_file_start): Expand conditional expression
3589         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
3590         (mips_override_options): Move -mno-float override -msoft-float and
3591         -mhard-float.
3592         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
3593         Condition(TARGET_SUPPORTS_NO_FLOAT).
3594         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
3595         __mips_no_float here.
3596         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
3597         (TARGET_SUPPORTS_NO_FLOAT): Define.
3598         * config/mips/sdemtk.opt: Delete.
3599
3600 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
3601
3602         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
3603
3604 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
3605
3606         PR target/43733
3607         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
3608         * configure: Regenerate.
3609         * config.in: Regenerate.
3610         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
3611         instead of sahf only for 64bit targets.
3612
3613 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
3614
3615         PR debug/44178
3616         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
3617         setup_ref_regs for DEBUG_INSNs.
3618
3619 2010-05-20  Jan Hubicka  <jh@suse.cz>
3620
3621         PR middle-end/44197
3622         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
3623
3624 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
3625
3626         PR bootstrap/43870
3627         * df-scan.c (df_ref_compare): Stabilize sort.
3628
3629 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
3630
3631         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
3632         argument.  Don't use DW_OP_piece if offset is non-zero,
3633         put offset into second DW_OP_bit_piece argument.
3634         (dw_sra_loc_expr): Adjust callers.  For memory expressions
3635         compute offset.
3636
3637 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
3638
3639         PR target/44202
3640         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
3641         settings for 16-bit-constant "addo" alternative.
3642
3643 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
3644
3645         * config/mips/mips-dsp.md (add<DSPV:mode>3,
3646         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
3647
3648         PR target/43764
3649         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
3650         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
3651         Use it.
3652
3653 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
3654
3655         * diagnostic.c (FLOAT, FFS): Don't undefine.
3656         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
3657         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
3658         include ordering.
3659
3660 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
3661
3662         * combine.c (propagate_for_debug): Call make_compound_operation
3663         on the source value.
3664         (try_combine): When implementing a split chosen by find_split_point,
3665         either copy i2src or set it to null.  Assert that i2src is not null
3666         before substituting into CALL_INSN_FUNCTION_USAGE.
3667
3668 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
3669
3670         * double-int.h (double_int_ior): New function.
3671         * tree.h (build_int_cst_wide_type): Remove.
3672         * tree.c (build_int_cst_wide_type): Remove.
3673         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
3674         of build_int_cst_wide_type.
3675         * stor-layout.c (set_sizetype): (Ditto.).
3676         * dojump.c (do_jump): Use build_int_cstu instead of
3677         build_int_cst_wide_type.
3678
3679 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3680
3681         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
3682         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
3683         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
3684         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
3685         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
3686         propagate the 'data' argument to copy_tree_r.
3687         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
3688         Propagate 'data' argument to walk_tree.
3689         (copy_if_shared): New function.
3690         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
3691         (unmark_visited): New function.
3692         (unshare_body): Call copy_if_shared instead of doing it manually.
3693         (unvisit_body): Call unmark_visited instead of doing it manually.
3694
3695 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
3696
3697         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
3698         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
3699         * hooks.c: Likewise.
3700         * target-def.h (TARGET_FOLD_BUILTIN): Define to
3701         hook_tree_tree_int_treep_bool_null.
3702         * target.h (struct gcc_target): Update signature of fold_builtin
3703         field.
3704         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
3705         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
3706         instead of the call expression.
3707         (fold_builtin_call_array): Pass n and argarray directly.
3708         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
3709         consing a list.
3710         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
3711         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
3712         `i' and use it in place of `arity'.
3713         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
3714         Dereference `args' directly.
3715         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
3716
3717 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3718
3719         * doc/sourcebuild.texi (Effective-Target Keywords): Document
3720         3dnow, sse3, sse2.
3721         (Directives): Document optional dg-require-effective-target
3722         selector.
3723
3724 2010-05-19  Richard Guenther  <rguenther@suse.de>
3725
3726         PR lto/44196
3727         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
3728
3729 2010-05-19  Richard Guenther  <rguenther@suse.de>
3730
3731         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
3732         * common.opt (fwhopr=): New.
3733         * opts.c (common_handle_option): Handle OPT_fwhopr.
3734         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
3735         * collect2.c (main): Match -fwhopr*.
3736         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
3737         Execute ltrans stage in parallel when jobs is bigger than 1.
3738
3739 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3740
3741         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
3742         pentiumpro on Solaris 8/x86 with Sun as.
3743         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
3744         hidden alias bug.
3745         (gcc_cv_as_ix86_quad): Check for .quad directive.
3746         * configure: Regenerate.
3747         * config.in: Regenerate.
3748         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
3749
3750 2010-05-19  Martin Jambor  <mjambor@suse.cz>
3751
3752         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
3753         also for indirect edges.  Actual printing moved...
3754         (ipa_print_node_jump_functions_for_edge): ...here.
3755         (ipa_compute_jump_functions): Renamed to
3756         ipa_compute_jump_functions_for_edge and made static.
3757         (ipa_compute_jump_functions): New function.
3758         (make_edge_direct_to_target): Check if the number of arguments on
3759         the newly direct edge is the same as the number of parametrs of
3760         the callee.
3761         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
3762         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
3763         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3764         analysis functions unconditionally, call the new
3765         ipa_analyze_params_uses on the node instead of every edge.
3766
3767 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
3768
3769         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
3770         to tree.
3771         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
3772         also checks for a constant int vs.  non-constant but
3773         loop-invariant steps.
3774         (find_or_create_group): Change the sort algorithm to only consider
3775         steps that are constant ints.
3776         (idx_analyze_ref): Adopt code to handle a tree instead of a
3777         HOST_WIDE_INT for step.
3778         (gather_memory_references_ref): Handle tree instead of int and be
3779         prepared to see a NULL_TREE.
3780         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
3781         prefetches if the step cannot be calculated at compile time.
3782         (issue_prefetch_ref): Issue prefetches for non-constant but
3783         loop-invariant steps.
3784
3785 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
3786
3787         Revert:
3788         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
3789
3790         * tree.h (build_call_list): Remove.
3791         * tree.c (build_call_list): Remove.
3792
3793 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
3794
3795         * tree.h (build_call_list): Remove.
3796         * tree.c (build_call_list): Remove.
3797
3798 2010-05-18  Jan Hubicka  <jh@suse.cz>
3799
3800         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
3801
3802 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
3803
3804         PR rtl-optimization/43332
3805         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
3806
3807 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
3808
3809         * tree.h (build_int_cstu): Implement as static inline.
3810         * tree.c (build_int_cstu): Remove function.
3811         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
3812         sign extended.
3813
3814 2010-05-18  Richard Guenther  <rguenther@suse.de>
3815
3816         PR lto/44143
3817         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
3818         (debug): Initialize from -save-temps.
3819         (collect_execute): Print command-line when verbose.
3820         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
3821         for ltrans invocation.  Produce -dumpbase flag again.
3822         (process_args): Remove.
3823         (main): Simplify.
3824         * collect2.c (maybe_run_lto_and_relink): Only pass object
3825         files to lto-wrapper.
3826         * gcc.c (LINK_COMMAND_SPEC): Likewise.
3827
3828 2010-05-18  Jan Hubicka  <jh@suse.cz>
3829
3830         * opts.c (decode_options): Do not disable whopr at ipa_cp.
3831         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
3832
3833 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
3834
3835         PR lto/44184
3836         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
3837         in a GIMPLE_ASM.
3838         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
3839         in a GIMPLE_ASM.
3840
3841 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
3842
3843         PR debug/41371
3844         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
3845         rtx_equal_p inline.
3846
3847 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
3848
3849         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
3850         lto-macho as lto_binary_reader.
3851
3852         * darwin.c (darwin_asm_named_section): Do not add assembler comment
3853         after .section directive; just print it before the directive instead.
3854
3855 2010-05-17  Jan Hubicka  <jh@suse.cz>
3856
3857         * cgraph.c (cgraph_create_virtual_clone): Only check
3858         versionable_function_p when not in wpa and checking is enabled.
3859         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
3860         there are no more functions to materialize.
3861
3862 2010-05-17  Jan Hubicka  <jh@suse.cz>
3863
3864         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
3865         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
3866         New functions.
3867         (output_cgraph): Call output_cgraph_opt_summary.
3868         (input_cgrpah): Call input_cgraph_opt_summary.
3869         (output_cgraph_opt_summary_p, output_node_opt_summary,
3870         input_node_opt_summary, input_cgraph_opt_section): New functions.
3871         * lto-section-in.c (lto_section_name): Add cgraphopt.
3872         * tree-inline.c (tree_function_versioning): Handle parm_num.
3873         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
3874         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
3875
3876 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
3877
3878         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
3879         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
3880         the insn to prefetch ratio heuristic to loops with known trip count.
3881
3882 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
3883
3884         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
3885         (schedule_prefetches): Do not generate a prefetch if the unroll factor
3886         is far from what is required by the prefetch.
3887
3888 2010-05-17  Jan Hubicka  <jh@suse.cz>
3889
3890         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
3891         (ipcp_estimate_growth): Likewise.
3892         (ipcp_const_param_count): Likewise.
3893         (ipcp_insert_stage): Likewise.
3894         * ipa-prop.c (visit_load_for_mod_analysis): New function.
3895         (visit_store_addr_for_mod_analysis): Set used flag.
3896         (ipa_detect_param_modifications): Set used flag for SSE params;
3897         update use of walk_stmt_load_store_addr_ops.
3898         (ipa_print_node_params): Print used flag.
3899         (ipa_write_node_info): Stream used flag.
3900         (ipa_read_node_info): Likewise.
3901         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
3902         (ipa_is_param_used): New function.
3903         (lto_ipa_fixup_call_notes): Remove unused declaration.
3904
3905 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3906
3907         PR target/44074
3908         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
3909         * configure: Regenerate.
3910         * config.in: Regenerate.
3911         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
3912         !HAVE_AS_IX86_REP_LOCK_PREFIX.
3913         Don't emit whitespace.
3914         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
3915         (*rep_movsi): Likewise.
3916         (*rep_movsi_rex64): Likewise.
3917         (*rep_movqi): Likewise.
3918         (*rep_movqi_rex64): Likewise.
3919         (*rep_stosdi_rex64): Likewise.
3920         (*rep_stossi): Likewise.
3921         (*rep_stossi_rex64): Likewise.
3922         (*rep_stosqi): Likewise.
3923         (*rep_stosqi_rex64): Likewise.
3924         (*cmpstrnqi_nz_1): Use {%;} after repz.
3925         (*cmpstrnqi_nz_rex_1): Likewise.
3926         (*cmpstrnqi_1): Likewise.
3927         (*cmpstrnqi_rex_1): Likewise.
3928         (*strlenqi_1): Use {%;} after repnz.
3929         (*strlenqi_rex_1): Likewise.
3930         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
3931         (*sync_compare_and_swap<mode>): Likewise.
3932         (sync_double_compare_and_swap<mode>): Likewise.
3933         (*sync_double_compare_and_swapdi_pic): Likewise.
3934         (sync_old_add<mode>): Likewise.
3935         (sync_add<mode>): Likewise.
3936         (sync_sub<mode>): Likewise.
3937         (sync_<code><mode>): Likewise.
3938
3939 2010-05-17  Martin Jambor  <mjambor@suse.cz>
3940
3941         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
3942         otr_token and polymorphic.
3943         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
3944         (cgraph_clone_edge): Copy the above fields.
3945         * tree.c (get_binfo_at_offset): New function.
3946         * tree.h (get_binfo_at_offset): Declare.
3947         * ipa-prop.h (enum jump_func_type): Added known_type jump function
3948         type, reordered items, updated comments.
3949         (union jump_func_value): Added base_type field, reordered fields.
3950         (enum ipa_lattice_type): Moved down in the file.
3951         (struct ipa_param_descriptor): New field polymorphic.
3952         (ipa_is_param_polymorphic): New function.
3953         * ipa-prop.c: Include gimple.h and gimple-fold.h.
3954         (ipa_print_node_jump_functions): Print known type jump functions.
3955         (compute_complex_pass_through): Renamed to...
3956         (compute_complex_assign_jump_func): this.
3957         (compute_complex_ancestor_jump_func): New function.
3958         (compute_known_type_jump_func): Likewise.
3959         (compute_scalar_jump_functions): Create known type and complex ancestor
3960         jump functions.
3961         (ipa_note_param_call): New parameter polymorphic, set the corresponding
3962         flag in the call note accordingly.
3963         (ipa_analyze_call_uses): Renamed to...
3964         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
3965         variable var only in the block where it is used.
3966         (ipa_analyze_virtual_call_uses): New function.
3967         (ipa_analyze_call_uses): Likewise.
3968         (combine_known_type_and_ancestor_jfs): Likewise.
3969         (update_jump_functions_after_inlining): Implemented handling of a
3970         number of new jump function types combination.
3971         (print_edge_addition_message): Removed.
3972         (make_edge_direct_to_target): New function.
3973         (try_make_edge_direct_simple_call): Likewise.
3974         (try_make_edge_direct_virtual_call): Likewise.
3975         (update_call_notes_after_inlining): Renamed to...
3976         (update_indirect_edges_after_inlining): this.  Moved edge creation for
3977         indirect calls to try_make_edge_direct_simple_call, also calls
3978         try_make_edge_direct_virtual_call for virtual calls.
3979         (ipa_print_node_params): Changed the header message.
3980         (ipa_write_jump_function): Stream also known type jump functions.
3981         (ipa_read_jump_function): Likewise.
3982         (ipa_write_indirect_edge_info): Stream new fields in
3983         cgraph_indirect_call_info.
3984         (ipa_read_indirect_edge_info): Likewise.
3985         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
3986         GIMPLE_FOLD_H.
3987
3988 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3989
3990         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
3991
3992 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
3993
3994         * tree.h (CALL_EXPR_ARGS): Delete.
3995         (call_expr_arglist): Delete.
3996         * tree.c (call_expr_arglist): Delete.
3997         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
3998         targetm.fold_builtin.
3999         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
4000         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
4001         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
4002         arglist parameter.  Use CALL_EXPR_ARG.
4003         (picochip_expand_builtin_3op): Likewise.
4004         (picochip_expand_builtin_2opvoid): Likewise.
4005         (picochip_expand_array_get): Likewise.
4006         (picochip_expand_array_put): Likewise.
4007         (picochip_expand_array_testport): Likewise.
4008         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
4009         rather than arglist.
4010         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
4011         CALL_EXPR_ARGS.
4012         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
4013         than TREE_VALUE and TREE_CHAIN.
4014         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
4015         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
4016         the arglist.
4017
4018 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
4019
4020         PR bootstrap/42347
4021         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
4022         to have no fallthru edge.
4023
4024         PR middle-end/44102
4025         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
4026         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
4027         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
4028         add BARRIER after previous bb if needed.
4029
4030 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
4031
4032         * tree.c (build_function_type_list_1): Remove bogus assert condition.
4033
4034 2010-05-17  Alan Modra  <amodra@gmail.com>
4035
4036         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
4037         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
4038         with copy_reg rtx param.
4039         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
4040         Correct cases where code for ABI_V4 did not initialise the reg
4041         used to access frame.  Also leave frame_reg_rtx as sp for large
4042         frames that save no regs.
4043
4044 2010-05-17  Martin Jambor  <mjambor@suse.cz>
4045
4046         PR middle-end/44133
4047         * tree-sra.c (create_access_replacement): New parameter rename, mark
4048         the replaement for renaming only when it is true.
4049         (get_access_replacement): Pass true in the rename parameter of
4050         create_access_replacement.
4051         (get_unrenamed_access_replacement): New function.
4052         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
4053         replacement declaration from it.
4054
4055 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
4056
4057         * function.c (try_fit_stack_local, add_frame_space): New static
4058         functions.
4059         (assign_stack_local_1): Use them.  Look for opportunities to use
4060         space previously wasted on alignment.
4061         * function.h (struct frame_space): New.
4062         (struct rtl_data): Add FRAME_SPACE_LIST member.
4063         * reload1.c (something_was_spilled): New static variable.
4064         (alter_reg): Set it.
4065         (reload): Test it in addition to testing if the frame size changed.
4066
4067 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
4068
4069         * config/s390/s390.c: Define sane prefetch settings and activate
4070         flag_prefetch_loop_arrays on -O3.
4071         * config/s390/s390.h: Declare that read can use write prefetch.
4072
4073 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
4074
4075         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
4076         build.
4077
4078 2010-05-16  Jan Hubicka  <jh@suse.cz>
4079
4080         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
4081         function body; do not check stdarg field of struct function.
4082
4083 2010-05-16  Jan Hubicka  <jh@suse.cz>
4084
4085         * cgraph.c (dump_cgraph_node): Dump versionable flag.
4086         * cgraph.h (cgraph_local_info): Add versionable flag.
4087         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
4088         (ipcp_versionable_function_p): Use it.
4089         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
4090         versionable flag.
4091
4092 2010-05-16  Jan Hubicka  <jh@suse.cz>
4093
4094         * cgraph.c (cgraph_clone_node): Take decl argument and insert
4095         clone into hash when it is different from orig.
4096         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
4097         * cgraph.h (cgraph_clone_node): Update prototype.
4098         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
4099         (lto_cgraph_encoder_delete): Delete body map.
4100         (lto_cgraph_encoder_size): Move to header.
4101         (lto_cgraph_encoder_encode_body_p,
4102         lto_set_cgraph_encoder_encode_body): New.
4103         (lto_output_node): Do not take written_decls argument; output clone_of
4104         pointer.
4105         (add_node_to): Add include_body_argument; call
4106         lto_set_cgraph_encoder_encode_body on master of the clone.
4107         (add_references): Update use of add_node_to.
4108         (compute_ltrans_boundary): Likewise.
4109         (output_cgraph): Do not create written_decls bitmap.
4110         (input_node): Take nodes argument; stream in clone_of correctly.
4111         (input_cgraph_1): Update use of input_node.
4112         * lto-streamer-out.c (lto_output): Use encoder info to decide
4113         what bodies to output.
4114         * ipa-inline.c (cgraph_clone_inlined_nodes,
4115         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
4116         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
4117         (lto_cgraph_encoder_size): Define here.
4118         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
4119         Declare.
4120
4121 2010-05-16  Richard Guenther  <rguenther@suse.de>
4122
4123         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
4124         -fipa-type-escape.
4125         * ipa-type-escape.c (gate_type_escape_vars): Run when
4126         -fipa-struct-reorg runs.
4127         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
4128         * common.opt (fipa-type-escape): Remove.
4129
4130 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4131
4132         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
4133         (decode_options): Likewise.
4134         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
4135
4136 2010-05-16  Jan Hubicka  <jh@suse.cz>
4137
4138         * ipa.c (function_and_variable_visibility): Also bring local all
4139         aliases.
4140
4141 2010-05-16  Richard Guenther  <rguenther@suse.de>
4142
4143         * alias.c (nonoverlapping_memrefs_p): Remove use of
4144         IPA type-escape information.
4145
4146 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
4147
4148         * c-common.c (c_common_reswords): Add _Static_assert for C.
4149         * c-parser.c (c_token_starts_declaration,
4150         c_parser_next_token_starts_declaration,
4151         c_parser_static_assert_declaration_no_semi,
4152         c_parser_static_assert_declaration): New.
4153         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
4154         Handle static assertions if static_assert_ok.
4155         (c_parser_external_declaration, c_parser_declaration_or_fndef,
4156         c_parser_compound_statement_nostart, c_parser_label,
4157         c_parser_for_statement, c_parser_objc_methodprotolist,
4158         c_parser_omp_for_loop): All callers of
4159         c_parser_declaration_or_fndef changed.
4160         (c_parser_struct_declaration): Handle static assertions.
4161         (c_parser_compound_statement_nostart): Use
4162         c_parser_next_token_starts_declaration and
4163         c_token_starts_declaration to detect start of declarations.
4164         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
4165         Likewise.
4166
4167 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
4168
4169         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
4170         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
4171         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
4172         TARGET_FUNCTION_VALUE_REGNO_P): Define.
4173         (mmix_function_outgoing_value): Rename to...
4174         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
4175         (mmix_function_value_regno_p): Make static.
4176         (mmix_libcall_value): New function.
4177         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
4178         mmix_function_value_regno_p): Remove declaration.
4179
4180 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4181
4182         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
4183         BUILT_IN_ALLOCA if stack checking is enabled.
4184
4185 2010-05-16  Richard Guenther  <rguenther@suse.de>
4186
4187         * var-tracking.c (vars_copy_1): Inline ...
4188         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
4189         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
4190         (variable_merge_over_cur): Adjust.  Merge asserts.
4191         (variable_merge_over_src): Likewise.
4192         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
4193         (variable_post_merge_new_vals): Merge asserts.
4194         (variable_post_merge_perm_vals): Likewise.
4195         (find_mem_expr_in_1pdv): Likewise.
4196         (dataflow_set_different_value): Remove.
4197         (onepart_variable_different_p): Merge asserts.
4198         (variable_different_p): Likewise.
4199         (dataflow_set_different_1): Inline ...
4200         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
4201         (emit_notes_for_differences_1): Merge asserts.
4202
4203 2010-05-16  Richard Guenther  <rguenther@suse.de>
4204
4205         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
4206         * optabs.c (libfunc_decl_hash): Likewise.
4207         * varasm.c (emutls_decl): Likewise.
4208
4209 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
4210
4211         * c-decl.c: Don't include gimple.h.
4212         (merge_decls): Do not copy gimple_body.
4213
4214 2010-05-15  Jason Merrill  <jason@redhat.com>
4215
4216         * c.opt: Add -fnothrow-opt.
4217
4218 2010-05-15  Jan Hubicka  <jh@suse.cz>
4219
4220         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
4221         analyzed.
4222         * passes.c (ipa_write_summaries): Write all analyzed nodes.
4223
4224 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
4225
4226         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
4227         * Makefile.in: Add it.
4228         Fix all other Makefile dependencies for changes below.
4229         * tree.h: Include it instead of defining VEC primitives here.
4230         * gimple.h: Likewise.
4231         * rtl.h: Likewise.
4232         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
4233         * except.h: Include vecir.h, break dependence on tree.h.
4234
4235         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
4236         Move from here...
4237         * tree-iterator.c: ...to here.
4238         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
4239
4240         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
4241         tm_p.h.
4242         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
4243         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
4244         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
4245         tree-mudflap.h, and target.h.
4246         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
4247         predict.h, tree-inline.h, gimple.h, and langhooks.h.
4248         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
4249         Add FIXME for why gimple.h is still included (should be unnecessary
4250         since GCC 4.5 gimplification unit-at-a-time).
4251         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
4252         * c-pragma.c: Add FIXME for why function.h needs to be included just
4253         for cfun, at front-end level.
4254         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
4255         Do not include ggc.h, but include vecprim.h for VEC(char).
4256         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
4257         Explain why target.h is included.
4258         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
4259         Explain why gimple.h is included.
4260         * c-ppoutput.c: Do not include tm.h.
4261         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
4262         * c-parses.c: Explain why rtl.h is included, and that this (and only
4263         this) is also why tm.h must be included.
4264         Do not include except.h.
4265         * c-lang.c: Do not include ggc.h.
4266
4267 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
4268
4269         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
4270
4271 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
4272
4273         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
4274         unions by default if those structs and unions have no tags.  Do
4275         not condition anonymous struct and unions handling on flag_iso.
4276         Allow anonymous structs and unions for C1X.
4277         (finish_struct): Do not diagnose lack of named fields when
4278         anonymous structs and unions present for C1X.  Accept flexible
4279         array members in structure with anonymous structs or unions but no
4280         directly named fields.
4281         * doc/extend.texi (Unnamed Fields): Update.
4282
4283 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4284
4285         * gimple.h (compare_field_offset): Rename into...
4286         (gimple_compare_field_offset): ...this.
4287         * gimple.c (compare_field_offset): Rename into...
4288         (gimple_compare_field_offset): ...this.  Compare the full access if
4289         the offset is self-referential.
4290         (gimple_types_compatible_p): Adjust for above renaming.
4291         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
4292         DECL_NONADDRESSABLE_P flag of fields before merging them.
4293
4294 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
4295
4296         * tree.h (ctor_to_list): Delete.
4297         * tree.c (ctor_to_list): Delete.
4298
4299 2010-05-15  Jan Hubicka  <jh@suse.cz>
4300
4301         * ipa-reference.c: Include toplev.h
4302         (is_proper_for_analysis): Only add to all_module_statics
4303         if it is allocated.
4304         (write_node_summary_p, stream_out_bitmap,
4305         ipa_reference_write_optimization_summary,
4306         ipa_reference_read_optimization_summary): New.
4307         (struct ipa_opt_pass_d pass_ipa_reference): Add
4308         optimization summary streaming.
4309         * lto-cgraph.c (referenced_from_this_partition_p,
4310         reachable_from_this_partition_p): New functions.
4311         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
4312         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
4313         * opts.c (decode_options): Enable ipa_reference.
4314         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
4315         * lto-streamer.h (referenced_from_this_partition_p,
4316         reachable_from_this_partition_p): Declare.
4317
4318 2010-05-15  Richard Guenther  <rguenther@suse.de>
4319
4320         PR tree-optimization/44038
4321         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
4322         taking the address of a V_C_E of a constant.
4323
4324 2010-05-14  Jan Hubicka  <jh@suse.cz>
4325
4326         * tree.h (memory_identifier_string): Remove.
4327         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
4328         (ipa_reference_global_vars_info_d): Remove statics_not_read and
4329         statics_not_written.
4330         (ipa_reference_optimization_summary_d): New structure.
4331         (ipa_reference_optimization_summary_t): New type and vector.
4332         (ipa_reference_vars_info_d): Embedd structures instead of using
4333         pointers.
4334         (reference_vars_to_consider): Remove out of GGC space.
4335         (module_statics_escape): Remove.
4336         (global_info_obstack): Rename to ...
4337         (optimization_summary_obstack): ... this one.
4338         (initialization_status_t): Remove.
4339         (memory_identifier_string): Remove.
4340         (get_reference_vars_info): Fix indenting.
4341         (set_reference_vars_info): Likewise.
4342         (get_reference_optimization_summary): New.
4343         (set_reference_optimization_summary): New.
4344         (get_global_reference_vars_info): Remove.
4345         (ipa_reference_get_read_global): Remove.
4346         (ipa_reference_get_written_global): Remove.
4347         (ipa_reference_get_not_read_global): Update.
4348         (ipa_reference_get_not_written_global): Update.
4349         (is_proper_for_analysis): Outlaw addressable.
4350         (propagate_bits): Update for new datastructures.
4351         (analyze_variable): Remove.
4352         (init_function_info): Update for new datastructures.
4353         (clean_function_local_data): Remove.
4354         (clean_function): Remove.
4355         (copy_global_bitmap): Use optimizations_summary_obstack.
4356         (duplicate_node_data): Duplicate optimization summary only.
4357         (remove_node_data): Remove optimization summary only.
4358         (generate_summary): Do not analyze variables; do not compute
4359         module_statics_escape; do not prune solutions by it.
4360         (read_write_all_from_decl): Fix typos in comments.
4361         (propagate): Doscover readonly and nonaddressable first;
4362         update for new datastructures; share global bitmaps.
4363         * ipa-reference.h (ipa_reference_get_read_global,
4364         ipa_reference_get_written_global): Remove.
4365         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
4366         * Makefile.in: Remove ipa-refereference from GT files.
4367
4368 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
4369
4370         PR debug/44112
4371         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
4372         for all SYMBOL_REF_DECLs.
4373
4374 2010-05-14  Jan Hubicka  <jh@suse.cz>
4375
4376         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
4377         (varpool_all_refs_explicit_p): New inline function.
4378         * ipa-reference.c: Update comment.
4379         (module_statics_written): Remove.
4380         (get_static_decl): Remove.
4381         (ipa_init): Do not initialize module_statics_written.
4382         (analyze_function): Likewise.
4383         (generate_summary): Likewise; do not compute module_statics_readonly
4384         and do not update variable flags.
4385         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
4386         * ipa.c: Inlucde flags.h
4387         (cgraph_local_node_p): New.
4388         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
4389         promote functions to local.
4390         (ipa_discover_readonly_nonaddressable_vars): New function.
4391         (function_and_variable_visibility): Use cgraph_local_node_p.
4392         * varpool.c (varpool_finalize_decl): Set force_output for
4393         DECL_PRESERVE_P vars.
4394
4395 2010-05-14  Jan Hubicka  <jh@suse.cz>
4396
4397         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
4398
4399 2010-05-14  Richard Guenther  <rguenther@suse.de>
4400
4401         PR tree-optimization/44119
4402         * tree-ssa-pre.c (eliminate): Properly mark replacement of
4403         a PHI node necessary.
4404
4405 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
4406
4407         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
4408
4409 2010-05-14  Jason Merrill  <jason@redhat.com>
4410
4411         PR c++/44127
4412         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
4413         (gimple_call_set_nothrow): New.
4414         * gimple.c (gimple_build_call_from_tree): Call it.
4415         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
4416
4417         PR c++/44127
4418         * gimplify.c (gimplify_seq_add_stmt): No longer static.
4419         * gimple.h: Declare it.
4420         * gimple.c (gimple_build_eh_filter): No ops.
4421
4422 2010-05-14  Jan Hubicka  <jh@suse.cz>
4423
4424         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
4425         nodes already in queue.
4426         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
4427         re-enqueueing node.
4428
4429 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
4430
4431         PR debug/44136
4432         * cfgexpand.c (expand_debug_expr): If non-memory op0
4433         has BLKmode, return NULL.
4434
4435 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
4436
4437         * config.gcc: Add support for --with-cpu option for bdver1.
4438         * config/i386/i386.h (TARGET_BDVER1): New macro.
4439         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
4440         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
4441         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
4442         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
4443         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
4444         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
4445         (processor_type): Add PROCESSOR_BDVER1.
4446         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
4447         processor_type in config/i386/i386.h.
4448         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
4449         movaps <reg, reg> instead of movapd <reg, reg> when replacing
4450         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
4451         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
4452         to emit packed xor instead of packed double/packed integer
4453         xor for SSE and AVX when moving a zero value.
4454         * config/i386/sse.md: Add check for
4455         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
4456         movapd/movdqa for SSE and AVX.
4457         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
4458         single logical operations i.e and, or and xor instead of packed double
4459         logical operations for SSE and AVX.
4460         * config/i386/i386-c.c (ix86_target_macros_internal):
4461         Add PROCESSOR_BDVER1.
4462         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
4463         (has_fma4, has_xop): New.
4464         * config/i386/i386.c (bdver1_cost): New variable.
4465         (m_BDVER1): New macro.
4466         (m_AMD_MULTIPLE): Add m_BDVER1.
4467         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
4468         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
4469         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
4470         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
4471         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
4472         x86_tune_sse_partial_reg_dependency,
4473         x86_tune_sse_unaligned_load_optimal,
4474         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
4475         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
4476         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
4477         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
4478         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
4479         Enable/disable for bdver1.
4480         (processor_target_table): Add bdver1_cost.
4481         (cpu_names): Add bdver1.
4482         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
4483          processor_alias_table.
4484         (ix86_expand_vector_move_misalign): Change.
4485         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
4486         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
4487         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
4488         of movupd/movdqu for SSE and AVX.
4489         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
4490         (ix86_tune_adjust_cost): Add code for bdver1.
4491         (standard_sse_constant_opcode): Add check for
4492         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
4493         of packed double xor for SSE and AVX.
4494
4495 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
4496
4497         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
4498         result to unsigned.
4499
4500 2010-05-14  Tristan Gingold  <gingold@adacore.com>
4501
4502         * toplev.c (default_debug_hooks): Remove this variable.
4503         (process_options): Remove assignments to default_debug_hooks.
4504
4505 2010-05-14  Martin Jambor  <mjambor@suse.cz>
4506
4507         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
4508         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
4509         * langhooks.h (struct lang_hooks_for_decls): Removed field
4510         fold_obj_type_ref.
4511         * tree.c (free_lang_data): Remove assignment to
4512         lang_hooks.fold_obj_type_ref.
4513         * tree.def (OBJ_TYPE_REF): Update comment.
4514
4515 2010-05-14  Richard Guenther  <rguenther@suse.de>
4516
4517         PR tree-optimization/44124
4518         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
4519
4520 2010-05-14  Alan Modra  <amodra@gmail.com>
4521
4522         PR target/44075
4523         * config/rs6000/rs6000.c (struct machine_function): Reorder
4524         fields for better packing.  Add lr_save_state.
4525         (rs6000_ra_ever_killed): Return lr_save_state if set.
4526         (rs6000_emit_eh_reg_restore): Set lr_save_state.
4527
4528 2010-05-13  Jan Hubicka  <jh@suse.cz>
4529
4530         * varpool.c (decide_is_variable_needed): Drop code checking
4531         TREE_SYMBOL_REFERENCED.
4532
4533 2010-05-13  Jan Hubicka  <jh@suse.cz>
4534
4535         * final.c (output_addr_const): Do not call mark_decl_referenced.
4536         * cgraphunit.c (process_function_and_variable_attributes): Use
4537         mark_needed_node dirrectly.
4538         (assemble_thunk): Do not call mark_decl_referenced.
4539
4540 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
4541
4542         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
4543
4544 2010-05-13  Jeff Law  <law@redhat.com>
4545
4546         * ira-conflicts.c (print_allocno_conflicts): New function broken out
4547         from...
4548         (print_conflicts): Call print_allocno_conflicts.
4549
4550 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
4551
4552         PR debug/44104
4553         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
4554         if it is NULL.
4555
4556 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
4557
4558         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
4559         t-mingw-w64 or t-mingw-w32 for multilib configuration.
4560         * config/i386/t-mingw-w32: New.
4561         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
4562
4563 2010-05-13  Martin Jambor  <mjambor@suse.cz>
4564
4565         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
4566         gimple-fold.c).
4567         * gimple-fold.c (get_base_binfo_for_type): New function.
4568         (gimple_get_relevant_ref_binfo): Likewise.
4569         (gimple_fold_obj_type_ref_known_binfo): Likewise.
4570         (gimple_fold_obj_type_ref): Likewise.
4571         (fold_gimple_call): Simplify condition for folding virtual calls
4572         and call gimple_fold_obj_type_ref.
4573         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
4574         (gimple_fold_obj_type_ref_known_binfo): Likewise.
4575
4576 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
4577
4578         * config/rs6000/rs6000-protos.h
4579         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
4580         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
4581         (rs6000_debug_mode_dependent_address)
4582         (rs6000_mode_dependent_address_ptr): Likewise.
4583
4584 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
4585
4586         PR debug/43983
4587         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
4588         by SRA.
4589         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
4590         * tree-sra.c (create_access_replacement): Call unshare_expr before
4591         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
4592         * dwarf2out.c: Include tree-flow.h.
4593         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
4594         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
4595         Handle DW_OP_bit_piece.
4596         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
4597         construct_piece_list, adjust_piece_list): New functions.
4598         (add_var_loc_to_decl): Handle SRA optimized variables.
4599         Adjust for var_loc_note to loc field renaming.
4600         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
4601         in VAR_LOCATION note.
4602         (new_loc_descr_op_bit_piece): New function.
4603         (dw_sra_loc_expr): New function.
4604         (dw_loc_list): Use it.  Don't handle the last range after the
4605         loop, handle it inside of the loop.  Adjust for var_loc_note
4606         to loc field renaming.
4607         (add_location_or_const_value_attribute): Only special case
4608         single entry loc lists if loc is NOTE_P.  Adjust for
4609         var_loc_note to loc field renaming.
4610         (dwarf2out_var_location): Don't set newloc->var_loc_note
4611         and newloc->next here.
4612
4613 2010-05-12  Jan Hubicka  <jh@suse.cz>
4614
4615         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
4616         flag.
4617         * cgraph.h (cgraph_only_called_directly_p,
4618         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
4619         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
4620         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
4621         (assemble
4622         * ipa.c (cgraph_remove_unreachable_nodes): Use
4623         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
4624         flags.
4625         * tree-inline.c (copy_bb): Check address_taken flag.
4626         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
4627         externally_visible flag.
4628
4629 2010-05-12  Jason Merrill  <jason@redhat.com>
4630
4631         PR bootstrap/44048
4632         PR target/44099
4633         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
4634         * sdbout.c (plain_type_1): Likewise.
4635         * dwarf2out.c (is_base_type): Likewise.
4636         (gen_type_die_with_usage): Likewise.  Generate
4637         DW_TAG_unspecified_type for any LANG_TYPE.
4638
4639 2010-05-12  Jan Hubicka  <jh@suse.cz>
4640
4641         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
4642         indrect edges too.
4643         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
4644         (cgraph_clone_edge): Update.
4645         (cgraph_node_remove_callees): Remove indirect calls too.
4646         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
4647         (cgraph_create_indirect_edge): Update prototype.
4648         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
4649         is_proper_for_analysis.
4650         (add_new_function, visited_nodes, function_insertion_hook_holder,
4651         get_local_reference_vars_info, mark_address_taken, mark_address,
4652         mark_load, mark_store, check_asm_memory_clobber, check_call,
4653         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
4654         (ipa_init): Do not initialize visited_nodes;
4655         function_insertion_hook_holder.
4656         (analyze_variable): Rewrite.
4657         (analyze_function): Rewrite.
4658         (copy_local_bitmap): Remove.
4659         (duplicate_node_dat): Do not duplicate local info.
4660         (generate_summary): Simplify to only walk cgraph.
4661         (write_node_summary_p, ipa_reference_write_summary,
4662         ipa_reference_read_summary): Remove.
4663         (propagate): Do not remove function insertion;
4664         generate summary.
4665         (pass_ipa_reference): NULLify summary handling fields.
4666         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
4667         (input_edge): Input ecf_flags.
4668         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
4669         (update_indirect_edges_after_inlining): Ignore edges with unknown
4670         param.
4671
4672 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
4673
4674         * implicit-zee.c: New file.
4675         * tree-pass.h (pass_implicit_zee): Declare.
4676         * passes.c (init_optimization_passes): Add zee pass.
4677         * common.opt (fzee): New flag.
4678         * timevar.def (TV_ZEE): Define.
4679         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
4680         and beyond.
4681         * Makefile.in (implicit-zee.o): Add new build file.
4682
4683 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
4684             Nathan Froyd  <froydnj@codesourcery.com>
4685
4686         * c-common.c (sync_resolve_params): Remove write-only variable.
4687
4688 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
4689
4690         * target.h (struct gcc_target): Add mode_dependent_address_p field.
4691         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
4692         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
4693         * targhooks.c (default_mode_dependent_address_p): New function.
4694         * targhooks.h (default_mode_dependent_address_p): Declare function.
4695         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
4696         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
4697         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
4698         target hook. Change return type to bool.
4699         * recog.h (mode_dependent_address_p): Change return type to bool.
4700
4701 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
4702             Nathan Froyd  <froydnj@codesourcery.com>
4703
4704         * tree-mudflap.c (build_function_type_0, build_function_type_1,
4705         build_function_type_2, build_function_type_3): Remove.
4706         (mudflap_init): Use build_function_type_list.
4707
4708 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
4709             Nathan Froyd  <froydnj@codesourcery.com>
4710
4711         * coverage.c (build_fn_info_value): Call build_constructor instead of
4712         build_constructor_from_list.
4713         (build_ctr_info_value): Likewise.
4714         (build_gcov_info): Likewise.
4715
4716 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
4717
4718         * tree.c (build_constructor): Compute TREE_CONSTANT for the
4719         resultant constructor.
4720         (build_constructor_single): Don't set TREE_CONSTANT.
4721         (build_constructor_from_list): Don't compute TREE_CONSTANT.
4722
4723 2010-05-12  Jan Hubicka  <jh@suse.cz>
4724
4725         * cgraph.h (struct varpool_node): Add aux.
4726         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
4727         * varpool.c (varpool_remove_node): Do not remove initializer.
4728         (varpool_reset_queue): Export.
4729         (varpool_finalize_decl): Volatile vars are forced to be output.
4730         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
4731         replaced decl.
4732         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
4733         process_references, varpool_can_remove_if_no_refs): New functions.
4734         (cgraph_remove_unreachable_nodes): Handle variables too.
4735
4736 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
4737
4738         PR target/44088
4739         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
4740
4741 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
4742
4743         PR middle-end/44085
4744         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
4745         change value of ORT_TASK.
4746         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
4747         (omp_notice_threadprivate_variable): New function.
4748         (omp_notice_variable): Call it for threadprivate variables.
4749         If enclosing ctx is a task, print enclosing task rather than
4750         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
4751         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
4752         if task has untied clause.
4753
4754         PR debug/42278
4755         * dwarf2out.c (base_type_die): Don't add name attribute here.
4756         (modified_type_die): Instead of sizetype use
4757         its underlying original type.  If a DW_TAG_base_type doesn't
4758         have name added, add __unknown__.
4759         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
4760         always call force_type_die instead.
4761
4762 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
4763
4764         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
4765         for __stack_chk_guard.
4766
4767 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
4768
4769         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
4770         don't call start_source_file debug hook here...
4771         (finish_options): ... but here, after outputting predefined and
4772         command line defines and undefs.
4773
4774         PR middle-end/44071
4775         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
4776         no fallthru edge.
4777         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
4778         optimizing away empty bb with no successors, move over its
4779         footer chain to fallthru predecessor.
4780         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
4781         (rtl_split_edge): For asm goto call patch_jump_insn even if
4782         splitting fallthru edge.
4783
4784         PR c++/44059
4785         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
4786         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
4787         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
4788         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
4789         on DW.ref.* decls.
4790
4791         PR c++/44062
4792         * c-parser.c (c_parser_expression): Mark LHS of a comma
4793         expression as read if it is a decl, handled component or
4794         COMPOUND_EXPR with that on the RHS.
4795         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
4796         if it is a decl or handled component.
4797
4798 2010-05-11  Jan Hubicka  <jh@suse.cz>
4799
4800         * lto-symtab.c (lto_symtab_free): New function.
4801         * lto-streamer.h (lto_symtab_free): Declare.
4802
4803 2010-05-11  Jan Hubicka  <jh@suse.cz>
4804
4805         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
4806         that if function is needed it is reachable.
4807         (lto_output_node): See if it the function is reachable or referenced.
4808         (output_cgraph): Update call of lto_output_node.
4809         * lto-streamer.h (reachable_from_other_partition_p): Declare.
4810
4811 2010-05-11  Jan Hubicka  <jh@suse.cz>
4812
4813         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
4814         Mark as used.
4815
4816 2010-05-11  Jan Hubicka  <jh@suse.cz>
4817
4818         PR tree-optimize/44063
4819         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
4820         queue.
4821         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
4822         limits.
4823         (estimate_function_body_sizes): Compute sizes even when disregarding.
4824
4825 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
4826
4827         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
4828
4829 2010-05-11  Jan Hubicka  <jh@suse.cz>
4830
4831         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
4832         into every boundary.
4833
4834 2010-05-11  Jan Hubicka  <jh@suse.cz>
4835
4836         * matrix-reorg.c (matrix_reorg): Rebuild edges.
4837
4838 2010-05-11  Jan Hubicka  <jh@suse.cz>
4839
4840         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
4841         lto_streamer_cache_delete): Put nodes into heap.
4842         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
4843         heap.
4844
4845 2010-05-11  Jan Hubicka  <jh@suse.cz>
4846
4847         * cgraphbuild.c (cgraph_rebuild_references): New.
4848         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
4849         out extern inlines.
4850         * cgraph.h (cgraph_rebuild_references): Declare.
4851         * tree-inline.c (tree_function_versioning): Use it.
4852         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
4853
4854 2010-05-11  Jan Hubicka  <jh@suse.cz>
4855
4856         * cgraph.c: Include ipa-utils.h
4857         (cgraph_create_virtual_clone): Update references.
4858         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
4859
4860 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
4861
4862         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
4863         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
4864         cache size.
4865
4866 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
4867
4868         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
4869
4870 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
4871
4872         * gcc.c (execute): For -### don't quote arguments that
4873         contain just alphanumerics and _/-. characters.
4874         * doc/invoke.texi: Document that change for -###.
4875
4876         PR debug/44023
4877         * df-problems.c (struct dead_debug): Add to_rescan field.
4878         (dead_debug_init): Clear to_rescan field.
4879         (dead_debug_finish): Rescan all debug insns in to_rescan
4880         bitmap and free the bitmap.
4881         (dead_debug_insert_before): Instead of rescanning debug insns
4882         immediately queue their rescanning until dead_debug_finish.
4883         (df_note_bb_compute): After dead_debug_add do continue instead
4884         of break.
4885
4886 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
4887
4888         PR debug/44028
4889         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
4890         clear also INSN_REG_USE_LIST.
4891
4892 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4893
4894         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
4895
4896 2010-05-10  Jan Hubicka  <jh@suse.cz>
4897
4898         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
4899         commited change.
4900
4901 2010-05-10  Jan Hubicka  <jh@suse.cz>
4902
4903         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
4904         Allocate encoders.
4905         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
4906         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
4907         (lto_streamer_cache_create): Init alloc pool.
4908         (lto_streamer_cache_delete): Free alloc pool.
4909         * lto-streamer.h: Include alloc pool.
4910         (lto_streamer_cache_d): Use alloc pool.
4911         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
4912
4913 2010-05-10  Jan Hubicka  <jh@suse.cz>
4914
4915         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
4916         * cgraphbuild.c: Include except.h
4917         (record_type_list, record_eh_tables): New function.
4918         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
4919
4920 2010-05-10  Jan Hubicka  <jh@suse.cz>
4921
4922         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
4923         __frame_dummy_init_array_entry, force_to_data): Attribute as used
4924         rather than unused.
4925
4926 2010-05-10  Michael Matz  <matz@suse.de>
4927
4928         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
4929         (can_reassociate_p): Use FLOAT_TYPE_P.
4930         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
4931         (vect_force_simple_reduction): ... this.
4932         * tree-parloops.c (gather_scalar_reductions): Use
4933         vect_force_simple_reduction.
4934         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
4935         vect_is_simple_reduction, add modify argument, if true rewrite
4936         "a-b" into "a+(-b)".
4937         (vect_is_simple_reduction, vect_force_simple_reduction): New
4938         functions.
4939         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
4940
4941 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
4942             Vladimir Makarov  <vmakarov@redhat.com>
4943
4944         PR rtl-optimization/44012
4945         * ira-build.c (remove_unnecessary_allocnos): Nullify
4946         regno_allocno_map of the removed allocno.
4947
4948 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4949
4950         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
4951         to /dev/null.
4952         * configure: Regenerate.
4953
4954 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4955
4956         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
4957         unused.
4958         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
4959         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
4960         support in Sun ld.
4961         * configure: Regenerate.
4962
4963 2010-05-10  Richard Guenther  <rguenther@suse.de>
4964
4965         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
4966         marked if the entry identifier is marked.
4967
4968 2010-05-10  Richard Guenther  <rguenther@suse.de>
4969
4970         * c-common.c (struct c_common_attributes): Add fnspec attribute.
4971         (handle_fnspec_attribute): New function.
4972         * gimple.h (gimple_call_return_flags): Declare.
4973         (gimple_call_arg_flags): Likewise.
4974         * gimple.c (gimple_call_arg_flags): New function.
4975         (gimple_call_return_flags): Likewise.
4976         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
4977         New argument flags.
4978         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
4979         return value flags.
4980         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
4981         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
4982         main work to ...
4983         (make_heapvar_for): ... this new function.
4984         (handle_rhs_call): Handle fnspec attribute argument specifiers.
4985         (handle_lhs_call): Likewise.
4986         (find_func_aliases): Adjust.
4987
4988 2010-05-10  Richard Guenther  <rguenther@suse.de>
4989
4990         PR tree-optimization/44050
4991         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
4992
4993 2010-05-10  Wei Guozhi  <carrot@google.com>
4994
4995         PR target/42879
4996         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
4997
4998 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
4999
5000         PR c/10676
5001         * c-typeck.c (lookup_field): Take a type directly.  Update
5002         recursive calls.
5003         (build_component_ref): Update call to lookup_field.
5004         (set_init_label): Use lookup_field to find initialized field.
5005         Handle returned list of fields like a sequence of designators.
5006
5007 2010-05-09  Richard Guenther  <rguenther@suse.de>
5008
5009         PR middle-end/44024
5010         * fold-const.c (tree_single_nonzero_warnv_p): Properly
5011         handle &FUNCTION_DECL.
5012
5013 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
5014
5015         PR c/4784
5016         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
5017         structures and unions recursively.
5018         (detect_field_duplicates): Move duplicate detection with a hash to
5019         detect_field_duplicates_hash.  Always use a hash if anonymous
5020         structures or unions are present.
5021         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
5022         give errors.
5023
5024 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
5025
5026         PR target/44046
5027         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
5028         detect Atom, Core 2 and Core i7.
5029
5030 2010-05-09  Richard Guenther  <rguenther@suse.de>
5031
5032         * gcc.c (store_arg): Handle temporary file deletion for
5033         joined arguments.
5034
5035 2010-05-09  Richard Guenther  <rguenther@suse.de>
5036
5037         PR middle-end/44043
5038         * ipa-inline.c (estimate_function_body_sizes): Return after
5039         disregarding inline limits.
5040
5041 2010-05-09  Richard Guenther  <rguenther@suse.de>
5042
5043         * gcc.c (store_arg): Revert last change.
5044
5045 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
5046
5047         PR middle-end/28685
5048         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
5049         (optimize_ops_list): Call it.
5050
5051 2010-05-08  Richard Guenther  <rguenther@suse.de>
5052
5053         PR tree-optimization/44030
5054         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
5055         NECESSARY flag if we propagate from a inserted expression.
5056
5057 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
5058
5059         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
5060         domain types as equal if they are both PLACEHOLDER_EXPRs.
5061
5062 2010-05-08  Richard Guenther  <rguenther@suse.de>
5063
5064         * lto-wrapper.c (run_gcc): Remove linker output from
5065         command line for LTRANS invocation.
5066
5067 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
5068
5069         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
5070         lto-macho as lto_binary_reader.
5071         * target.h (struct gcc_target): New hooks lto_start and lto_end.
5072         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
5073         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
5074         in lto_start and lto_end calls.
5075         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
5076         magic numbers.
5077         (scan_prog_file): Update is_elf_or_coff call.
5078         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
5079
5080         * collect2.c (main): Fix enum comparison.
5081
5082         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
5083         Add prototypes.
5084         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
5085         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
5086         and TARGET_ASM_LTO_END.
5087         * darwin.c: Include obstack.h and lto-streamer.h.
5088         (lto_section_names_offset, lto_section_names_obstack,
5089         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
5090         global variables.
5091         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
5092         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
5093         to a temporary file.
5094         (darwin_asm_lto_end): New function.  Restore asm_out_file.
5095         (darwin_asm_named_section): For LTO sections, replace the name with
5096         the offset of the section name in a string table, and build this
5097         table.
5098         (darwin_file_start): Initialize global vars for LTO support.
5099         (darwin_file_end): If output to asm_out_file was redirected, append it
5100         to the proper asm_out_file here.  Add the section names section.
5101
5102 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
5103
5104         * c-pragma.c (pending_weak_d, pending_weak): New.
5105         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
5106         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
5107         handle_pragma_weak): Update the uses of pending_weaks.
5108
5109 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5110
5111         PR documentation/44016
5112         * doc/standards.texi (Standards): Link to unversioned
5113         cxx0x_status.html page.
5114
5115 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
5116
5117         PR target/43708
5118         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
5119         in addition to TREE_USED, to avoid "set but unused" warnings.
5120
5121 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
5122
5123         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
5124         (is_loop_prefetching_profitable): Do not insert prefetches
5125         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
5126         times the prefetch ahead distance.
5127
5128 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
5129
5130         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
5131         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
5132         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
5133         the unroll_factor.
5134
5135 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
5136
5137         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
5138         a diagnostic info when the insn-to-mem ratio is too small.
5139
5140 2010-05-07  Richard Guenther <rguenther@suse.de>
5141
5142         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
5143         the linker plugin.
5144         (store_arg): Queue temp_filename for deletion instead of
5145         the whole argument.
5146
5147 2010-05-07  Richard Guenther  <rguenther@suse.de>
5148
5149         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
5150         (run_gcc): Handle LTRANS phase invocation.
5151         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
5152
5153 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
5154
5155         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
5156         this is also meaningful on PARM_DECLs and RESULT_DECLs.
5157
5158 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5159
5160         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
5161
5162 2010-05-07  Richard Guenther  <rguenther@suse.de>
5163
5164         PR tree-optimization/44020
5165         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
5166         code when PRE is not yet initialized.
5167
5168 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5169
5170         * config/mips/dbxmdebug.h: Remove.
5171         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
5172
5173 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
5174
5175         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
5176         with null pointer and also warn about ordered comparison of zero with
5177         pointer if -Wextra.
5178
5179 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5180
5181         * graphite-blocking.c
5182         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
5183         * graphite-clast-to-gimple.c
5184         (clast_to_gcc_expression): Same.
5185         (precision_for_value): Same.
5186         (precision_for_interval): Same.
5187         (gcc_type_for_interval): Same.
5188         (graphite_create_new_guard): Same.
5189         (compute_bounds_for_level): Same.
5190         (graphite_create_new_loop_guard): Same.
5191         * graphite-interchange.c
5192         (build_linearized_memory_access): Same.
5193         (pdr_stride_in_loop): Same.
5194         (memory_strides_in_loop_1): Same.
5195         (memory_strides_in_loop): Same.
5196         (extend_scattering): Same.
5197         (psct_scattering_dim_for_loop_depth): Same.
5198         (pbb_number_of_iterations): Same.
5199         * graphite-poly.h
5200         (debug_iteration_domains): Same.
5201         * graphite-ppl.c
5202         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
5203         (ppl_set_inhomogeneous_gmp): Same.
5204         (ppl_strip_loop): Same.
5205         (ppl_lexico_compare_linear_expressions): Same.
5206         (ppl_read_polyhedron_matrix): Same.
5207         (ppl_max_for_le_pointset): Same.
5208         * graphite-ppl.h
5209         (ppl_read_polyhedron_matrix): Same.
5210         (tree_int_to_gmp): Same.
5211         (gmp_cst_to_tree): Same.
5212         (ppl_set_inhomogeneous): Same.
5213         (ppl_set_inhomogeneous_tree): Same.
5214         (ppl_set_coef): Same.
5215         (ppl_set_coef_tree): Same.
5216         * graphite-sese-to-poly.c
5217         (build_pbb_scattering_polyhedrons): Same.
5218         (build_scop_scattering): Same.
5219         (scan_tree_for_params_right_scev): Same.
5220         (scan_tree_for_params): Same.
5221         (find_params_in_bb): Same.
5222         (find_scop_parameters): Same.
5223         (add_upper_bounds_from_estimated_nit): Same.
5224         (build_loop_iteration_domains): Same.
5225         (add_condition_to_domain): Same.
5226         (pdr_add_memory_accesses): Same.
5227
5228 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
5229
5230         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
5231         CLooG's value_* macros to their respective mpz_* counterparts.
5232         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
5233         (graphite_create_new_loop_guard): Same.
5234         * graphite-interchange.c (build_linearized_memory_access): Same.
5235         (pdr_stride_in_loop): Same.
5236         (memory_strides_in_loop_1): Same.
5237         (1st_interchange_profitable_p): Same.
5238         * graphite-poly.c (extend_scattering): Same.
5239         (psct_scattering_dim_for_loop_depth): Same.
5240         (pbb_number_of_iterations): Same.
5241         (pbb_number_of_iterations_at_time): Same.
5242         * graphite-poly.h (new_1st_loop): Same.
5243         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
5244         (oppose_constraint): Same.
5245         (insert_constraint_into_matrix): Same.
5246         (ppl_set_inhomogeneous_gmp): Same.
5247         (ppl_set_coef_gmp): Same.
5248         (ppl_strip_loop): Same.
5249         (ppl_lexico_compare_linear_expressions): Same.
5250         (ppl_max_for_le_pointset): Same.
5251         (ppl_min_for_le_pointset): Same.
5252         (ppl_build_realtion): Same.
5253         * graphite-ppl.h (gmp_cst_to_tree): Same.
5254         (ppl_set_inhomogeneous): Same.
5255         (ppl_set_inhomogeneous_tree): Same.
5256         (ppl_set_coef): Same.
5257         (ppl_set_coef_tree): Same.
5258         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
5259         (build_scop_scattering): Same.
5260         (add_value_to_dim): Same.
5261         (scan_tree_for_params_right_scev): Same.
5262         (scan_tree_for_params_int): Same.
5263         (scan_tree_for_params): Same.
5264         (find_params_in_bb): Same.
5265         (find_scop_parameters): Same.
5266         (add_upper_bounds_from_estimated_nit): Same.
5267         (build_loop_iteration_domains): Same.
5268         (create_linear_expr_from_tree): Same.
5269         (add_condition_to_domain): Same.
5270         (pdr_add_memory_accesses): Same.
5271
5272 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
5273             Jason Merrill  <jason@redhat.com>
5274
5275         * c-common.c (c_common_reswords): Add nullptr.
5276         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
5277         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
5278         (gen_type_die_with_usage): Likewise.
5279         * dbxout.c (dbxout_type): Likewise.
5280         * sdbout.c (plain_type_1): Likewise.
5281
5282 2010-05-06  Jason Merrill  <jason@redhat.com>
5283
5284         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
5285         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
5286         ret appropriately.
5287         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
5288
5289         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
5290         stripping WITH_SIZE_EXPR.
5291         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
5292         change.
5293
5294 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5295
5296         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
5297         list of obsolete configurations.
5298         Disabled check for obsolete configurations.
5299         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
5300         Removed support for previous versions.
5301         * config/mips/iris.h: Removed.
5302         * config/mips/iris5.h: Removed.
5303         * config/mips/iris6.h: Merged old iris.h contents.
5304         (TARGET_IRIX): Removed.
5305         (DRIVER_SELF_SPECS): Removed mabi=32.
5306         (IDENT_ASM_OP): Removed undef.
5307         (STARTFILE_SPEC): Removed mabi=32.
5308         (ENDFILE_SPEC): Likewise.
5309         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
5310         (MACHINE_TYPE): Update for IRIX 6.5.
5311         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
5312         TARGET_IRIX by TARGET_IRIX6.
5313         (mips_file_start): Likewise.
5314         (mips_output_external): Remove IRIX 5/6 O32 support.
5315         (mips_output_function_prologue): Likewise.
5316         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
5317         TARGET_IRIX6.
5318         (TARGET_CPU_CPP_BUILTINS): Likewise.
5319         (TARGET_IRIX): Removed.
5320         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
5321         (MULTILIB_DIRNAMES): Removed 32.
5322         (MULTILIB_OSDIRNAMES): Removed ../lib.
5323         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
5324         (Specific, mips-sgi-irix5): Document removal.
5325         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
5326         Remove references to older IRIX 6 releases and the O32 ABI.
5327
5328 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
5329
5330         PR bootstrap/43994
5331         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
5332         instead of DF_REF_REAL_REG.
5333
5334 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
5335
5336         PR target/43888
5337         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
5338         handling to still return true for x64 targets.
5339
5340 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
5341
5342         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
5343
5344 2010-05-06  Jan Hubicka  <jh@suse.cz>
5345
5346         PR tree-optimization/43791
5347         * ipa-inline.c (update_caller_keys): Remove bogus
5348         disregard_inline_limits check.
5349
5350 2010-05-06  Michael Matz  <matz@suse.de>
5351
5352         PR tree-optimization/43984
5353         * tree-ssa-pre.c (inserted_phi_names): Remove.
5354         (inserted_exprs): Change to bitmap.
5355         (create_expression_by_pieces): Set bits, don't append to vector.
5356         (insert_into_preds_of_block): Don't handle inserted_phi_names.
5357         (eliminate): Don't look at inserted_phi_names, remove deleted
5358         insns from inserted_exprs.
5359         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
5360         (init_pre, fini_pre): Allocate and free bitmaps.
5361         (execute_pre): Insert insns on edges before elimination.
5362
5363 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
5364
5365         * tree.c (initializer_zerop): Handle STRING_CST.
5366
5367 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5368
5369         PR 40989
5370         * doc/invoke.texi (Wimplicit): Document as C only.
5371         * opts.c (common_handle_option): Add argument kind.
5372         (handle_option): Rename as read_cmdline_option. Factor out code to...
5373         (handle_option): ... here. New.
5374         (handle_options): Rename as read_cmdline_options.
5375         (decode_options): Update call.
5376         (set_option): Use option index instead of option pointer. Classify
5377         diagnostics correctly.
5378         (enable_warning_as_error): Call handle_option.
5379         * opts.h (set_option): Update declaration.
5380         (handle_option): Declare.
5381         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
5382         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
5383         * c-opts.c (set_Wimplicit): Delete.
5384         (c_family_lang_mask): New static constant.
5385         (c_common_handle_option): Add argument kind. Use handle_option
5386         instead of set_Wimplicit.
5387         (c_common_post_options): warn_implicit and warn_implicit_int
5388         are disabled by default.
5389         * c-common.c (warn_implicit): Do not define here.
5390         * c-common.h (warn_implicit): Do not declare here.
5391         (c_common_handle_option): Update declaration.
5392         * lto-opts.c (lto_reissue_options): Update call to set_option.
5393
5394 2010-05-06  Richard Guenther  <rguenther@suse.de>
5395
5396         PR tree-optimization/43571
5397         * domwalk.c (walk_dominator_tree): Walk the dominator
5398         sons in more optimal order.
5399
5400 2010-05-06  Richard Guenther  <rguenther@suse.de>
5401
5402         PR tree-optimization/43934
5403         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
5404         (stmt_cost): Likewise.
5405         (extract_true_false_args_from_phi): New helper.
5406         (determine_max_movement): For PHI nodes verify we can hoist them
5407         and compute their cost.
5408         (determine_invariantness_stmt): Handle PHI nodes.
5409         (move_computations_stmt): Likewise.  Hoist PHI nodes in
5410         if-converted form using COND_EXPRs.
5411         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
5412         (tree_ssa_lim): Likewise.
5413         * tree-flow.h (tree_ssa_lim): Adjust prototype.
5414         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
5415
5416 2010-05-06  Richard Guenther  <rguenther@suse.de>
5417
5418         PR tree-optimization/43987
5419         * tree-ssa-structalias.c (could_have_pointers): For possibly
5420         address-taken variables force pointers to be recorded.
5421         (create_variable_info_for_1): Likewise.
5422         (push_fields_onto_fieldstack): Pass in wheter all fields
5423         must have pointers.
5424         (find_func_aliases): Query types instead of vars whether
5425         they contain pointers where appropriate.
5426
5427 2010-05-06  Jan Hubicka  <jh@suse.cz>
5428
5429         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
5430         (record_reference, mark_address, mark_load, mark_store): Record
5431         references.
5432         (record_references_in_initializer): Update call of record_references.
5433         (rebuild_cgraph_edges): Remove all references before rebuiding.
5434         * cgraph.c (cgraph_create_node): Clear ref list.
5435         (cgraph_remove_node): Remove references.
5436         (dump_cgraph_node): Dump references.
5437         (cgraph_clone_node): Clone references.
5438         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
5439         (struct cgraph_node, varpool_node): Add ref_lst.
5440         * ipa-ref.c: New file.
5441         * ipa-ref.h: New file.
5442         * ipa-ref-inline.h: New file.
5443         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
5444         (referenced_from_other_partition_p): New function.
5445         (lto_output_varpool_node): Take set arugment; call
5446         referenced_from_other_partition.
5447         (lto_output_ref): New.
5448         (add_references): New.
5449         (output_refs): New.
5450         (output_cgraph): Compute boundary based on references; output refs.
5451         (output_varpool): Accept cgraph_node_set argument.
5452         (input_ref): New.
5453         (input_refs): New.
5454         (input_cgraph): Call input_refs.
5455         * lto-section-in.c (lto_section_name): Add refs.
5456         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
5457         (ipa-ref.o): New file.
5458         * varpool.c (varpool_node): Clear ipa ref list.
5459         (varpool_remove_node): Remove references.
5460         (dump_varpool_node): Dump references.
5461         (varpool_assemble_decl): Only compile finalized ones.
5462         (varpool_extra_name_alias): Initialize ref list.
5463         * lto-streamer.c (lto-get_section_name): Add .refs section.
5464         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
5465         (referenced_from_other_partition_p): Declared.
5466
5467 2010-05-06  Ira Rosen  <irar@il.ibm.com>
5468
5469         PR tree-optimization/43901
5470         * tree-vect-stmts.c (vectorizable_call): Assert that vector
5471         type is not NULL if it's transformation phase, and return
5472         FALSE if it's analysis.
5473         (vectorizable_conversion, vectorizable_operation,
5474         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
5475
5476 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
5477
5478         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
5479         Delete.
5480         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
5481         New define.
5482         * config/mips/mips-protos.h
5483         (mips_small_register_classes_for_mode_p): Delete prototype.
5484
5485 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
5486
5487         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
5488         * config/arm/arm.c (multiple_operation_profitable_p,
5489         compute_offset_order): New static functions.
5490         (load_multiple_sequence, store_multiple_sequence): Use them.
5491         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
5492         memory offsets, not register numbers.
5493         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
5494
5495 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
5496
5497         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
5498         (get_pending_sizes, put_pending_size, put_pending_sizes):
5499         Update the uses of pending_sizes.
5500         * c-decl.c (store_parm_decls): Likewise.
5501         * c-tree.h (struct c_arg_info): Likewise.
5502         * tree.h: Update the prototype for get_pending_sizes and
5503         put_pending_sizes.
5504
5505 2010-05-05  Jason Merrill  <jason@redhat.com>
5506
5507         PR debug/43370
5508         * c-common.c (handle_aligned_attribute): Respect
5509         ATTR_FLAG_TYPE_IN_PLACE.
5510
5511         PR testsuite/43758
5512         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
5513         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
5514         (TARGET_INITIALIZER): Use it.
5515         * c-common.c (attribute_takes_identifier_p): Call it.
5516         * c-common.h: Update prototype.
5517         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
5518         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
5519
5520 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
5521
5522         PR debug/43950
5523         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
5524         DW_ID_down_case for Fortran compilation units.
5525
5526 2010-05-05  Jan Hubicka  <jh@suse.cz>
5527
5528         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
5529         handle aliases.
5530
5531 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
5532
5533         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
5534         a variable-sized RESULT_DECL.
5535
5536 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
5537
5538         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
5539
5540 2010-05-05  Jason Merrill  <jason@redhat.com>
5541
5542         PR c++/43787
5543         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
5544         returns GS_OK.
5545         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
5546
5547 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
5548             Jakub Jelinek  <jakub@redhat.com>
5549
5550         PR debug/43478
5551         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
5552         (dead_debug_init, dead_debug_finish): New functions.
5553         (dead_debug_add, dead_debug_insert_before): Likewise.
5554         (df_note_bb_compute): Initialize a dead_debug object, add dead
5555         debug uses to it, insert debug bind insns before death insns,
5556         reset debug insns that refer to pending uses at the end.
5557         * rtl.h (make_debug_expr_from_rtl): New prototype.
5558         * varasm.c (make_debug_expr_from_rtl): New function.
5559
5560 2010-05-05  Jan Hubicka  <jh@suse.cz>
5561
5562         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
5563         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
5564         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
5565         lto_varpool_encoder_deref, lto_varpool_encoder_size,
5566         lto_varpool_encoder_encode_initializer_p,
5567         lto_set_varpool_encoder_encode_initializer): New functions.
5568         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
5569         call output_varpool.
5570         (input_varpool_node): Do not always set analyzed.
5571         (input_cgraph_1): Return vector of cgraph nodes.
5572         (input_varpool_1): Return vector of varpools.
5573         (input_cgraph): Free the vectors.
5574         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
5575         output only initializers needed.
5576         (lto_output): Only call output_cgraph.
5577         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
5578         * lto-section-out.c (lto_new_out_decl_state): Initialize
5579         state->varpool_node_encoder.
5580         * lto-streamer.h (lto_varpool_encoder_d): New.
5581         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
5582         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
5583         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
5584         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
5585         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
5586         Declare.
5587         (output_varpool, input_varpool): Remove declarations.
5588
5589 2010-05-05  Jan Hubicka  <jh@suse.cz>
5590
5591         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
5592         with body can prevail.
5593
5594 2010-05-05  Jan Hubicka  <jh@suse.cz>
5595
5596         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
5597         size.
5598
5599 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
5600
5601         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
5602
5603         * gengtype.h (erro_at_line): Constify pos argument.
5604
5605         * gengtype.c: Include hashtab.h.
5606         (enum gc_used): Document GC_MAYBE_POINTED_TO.
5607         (error_at_line): Constify pos argument.
5608         (do_typedef): Initialize p->opt field.
5609         (get_file_gtfilename): Fix comment typo.
5610         (struct walk_type_data): Constify line field.
5611         (get_output_file_for_structure): New function.
5612         (write_local_func_for_structure): Constify orig_s argument.
5613         Use get_output_file_for_structure.
5614         (write_func_for_structure): Use get_output_file_for_structure.
5615         (INDENT): New define.
5616         (dump_pair, dump_type, dump_type_list, dump_typekind)
5617         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
5618         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
5619         functions.
5620         (seen_types): New variable.
5621         (main): New variable do_dump.  Process "-d" command line option.
5622         Call dump_everything if dump requested.
5623
5624 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
5625
5626         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
5627         in a temporary instead of invoking the macro multiple times.
5628         (track_expr_p): Likewise.
5629
5630 2010-05-04  Neil Vachharajani <nvachhar@google.com>
5631
5632         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
5633         per new semantics.
5634         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
5635         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
5636         conditions for printing notes.
5637         * common.opt (-Wcoverage-mismatch): Allow negative, default to
5638         true, update documentation.
5639         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
5640
5641 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
5642
5643         PR c/43981
5644         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
5645         on dimen.
5646
5647 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5648
5649         PR target/43799
5650         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
5651         (*sse_prologue_save_insn1): Likewise.
5652         (SSE prologue save splitter): Likewise.
5653
5654 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
5655
5656         * tree.c (free_lang_data_in_one_sizepos): New inline function.
5657         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
5658         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
5659         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
5660         all decls.  Call it on DECL_FIELD_OFFSET of fields.
5661         (find_decls_types_r): Follow DECL_VALUE_EXPR.
5662         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
5663
5664 2010-05-04  Martin Jambor  <mjambor@suse.cz>
5665
5666         * tree-sra.c (build_access_from_expr_1): The first parameter type
5667         changed to simple tree.
5668         (build_access_from_expr): Likewise, gsi parameter was eliminated.
5669         (scan_assign_result): Renamed to assignment_mod_result, enum elements
5670         renamed as well.
5671         (build_accesses_from_assign): Removed all parameters except for a
5672         simple gimple statement.  Now returns a simple bool.
5673         (scan_function): All non-analysis parts moved to separate functions
5674         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
5675         parameters and updated both callers.
5676         (sra_modify_expr): Removed parameter data.
5677         (sra_modify_function_body): New function.
5678         (perform_intra_sra): Call sra_modify_function_body to modify the
5679         function body.
5680         (replace_removed_params_ssa_names): Parameter data changed into
5681         adjustments vector.
5682         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
5683         changed the parameter dont_convert to convert with the opposite
5684         meaning.
5685         (sra_ipa_modify_assign): Parameter data changed into adjustments
5686         vector, return value changed to bool.
5687         (ipa_sra_modify_function_body): New function.
5688         (sra_ipa_reset_debug_stmts): Updated a comment.
5689         (modify_function): Use ipa_sra_modify_function_body to modify function
5690         body.
5691
5692 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
5693
5694         PR middle-end/43671
5695         * alias.c (true_dependence): Handle the same VALUE in x and mem.
5696         (canon_true_dependence): Likewise.
5697         (write_dependence_p): Likewise.
5698
5699 2010-05-04  Jan Hubicka  <jh@suse.cz>
5700
5701         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
5702         * cgraphbuild.c: Include ipa-utils.h
5703         (record_reference_ctx): New struct.
5704         (record_reference): Simplify to work on initializers; not statements.
5705         (mark_address, mark_load, mark_store): New.
5706         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
5707         walk PHI nodes too.
5708         (record_references_in_initializer): Update use of record_reference.
5709         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
5710         walk PHI nodes too.
5711
5712 2010-05-04  Jan Hubicka  <jh@suse.cz>
5713
5714         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
5715         node will be removed anyway.
5716         (lto_varpool_replace_node): Allow also unanalyzed nodes;
5717         relink aliases of node into prevailing node.
5718         * varpool.c (varpool_remove_node): Remove aliases properly;
5719         when removing node, remove all its aliases too; remove DECL_INITIAL
5720         of removed node; ggc_free the varpool node.
5721
5722 2010-05-04  Richard Guenther  <rguenther@suse.de>
5723
5724         PR tree-optimization/43879
5725         * tree-ssa-structalias.c (alias_get_name): Use
5726         DECL_ASSEMBLER_NAME if available.
5727         (create_function_info_for): Return the varinfo node.
5728         (ipa_pta_execute): Associate same-body aliases and extra names
5729         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
5730
5731 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
5732
5733         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
5734
5735 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
5736
5737         PR bootstrap/43964
5738         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
5739         only if HONOR_REG_ALLOC_ORDER is not defined.
5740
5741 2010-05-04  Richard Guenther  <rguenther@suse.de>
5742
5743         PR tree-optimization/43949
5744         * tree-vrp.c (extract_range_from_binary_expr): Only handle
5745         TRUNC_MOD_EXPR.
5746
5747 2010-04-26  Jason Merrill  <jason@redhat.com>
5748
5749         * c.opt (-fstrict-enums): New.
5750         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
5751
5752 2010-05-03  David Ung <davidu@mips.com>
5753             James E. Wilson  <wilson@codesourcery.com>
5754
5755         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
5756         emit the trap instruction before the divide for TUNE_74K.
5757
5758 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
5759
5760         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
5761         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
5762         based on the above, for new target hook.
5763
5764         * hooks.c (hook_bool_mode_true): New generic hook.
5765         * hooks.h (hook_bool_mode_true): Add prototype.
5766
5767         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
5768         target hook.
5769         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
5770         target hook, set to hook_bool_mode_false.
5771         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
5772         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
5773         with targetm.small_register_classes_for_mode_p.
5774         (find_reusable_reload): Likewise.
5775         (combine_reloads): Likewise.
5776         * reload1.c (reload_as_needed): Likewise.
5777         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
5778         * ifcvt.c (noce_process_if_block, check_cond_move_block,
5779         dead_or_predicable): Likewise.
5780         * regmove.c (optimize_reg_copy_1): Likewise.
5781         * calls.c (prepare_call_address): Likewise.
5782         (precompute_register_parameters): Likewise.
5783
5784         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
5785         hook definition.
5786         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
5787         implementation of the hook that considers all register classes
5788         small except for SH64.
5789         (sh_override_options): Use the new hook.
5790         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
5791         Add prototype.
5792
5793         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
5794         hook definition.
5795         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
5796         implementation of the hook that considers all register classes
5797         small for THUMB1.
5798         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
5799         Add prototype.
5800
5801         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
5802         hook definition.
5803         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
5804         implementation of the hook that considers all register classes
5805         small for MIPS16.
5806         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
5807         Add prototype.
5808
5809         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
5810         hook definition.
5811         * config/m32c/m32c.h: Likewise.
5812         * config/pdp11/pdp11.h: Likewise.
5813         * config/avr/avr.h: Likewise.
5814         * config/xtensa/xtensa.h: Likewise.
5815         * config/m68hc11/m68hc11.h: Likewise.
5816         * config/mn10300/mn10300.h: Likewise.
5817         * config/mcore/mcore.h: Likewise.
5818         * config/h8300/h8300.h: Likewise.
5819         * config/bfin/bfin.h: Likewise.
5820
5821         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
5822         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
5823
5824 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
5825
5826         * double-int.h (tree_to_double_int): Remove macro.
5827         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
5828         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
5829         (tree_to_double_int): New function.
5830         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
5831         Move ...
5832         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
5833
5834 2010-05-03  Richard Guenther  <rguenther@suse.de>
5835
5836         PR tree-optimization/43971
5837         * tree-ssa-structalias.c (get_constraint_for_1): Fix
5838         constraints in the !flag_delete_null_pointer_checks case.
5839
5840 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
5841
5842         PR debug/43972
5843         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
5844         result mode matches original rtl mode.
5845
5846 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
5847
5848         PR target/43888
5849         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
5850
5851 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
5852
5853         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
5854         when processing flag options.
5855
5856 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
5857
5858         * gcov-iov.c (main): Change format string placeholder
5859         from %#08x to 0x%08x.
5860         * genchecksum.c (dosum): Change format string placeholder
5861         from %#02x to 0x%02x.
5862
5863 2010-05-02  Richard Guenther  <rguenther@suse.de>
5864
5865         PR tree-optimization/43879
5866         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
5867
5868 2010-05-02  Bruno Haible  <bruno@clisp.org>
5869
5870         * doc/extend.texi (Function Attributes): Fix a typo.
5871
5872 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
5873
5874         Revert:
5875         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
5876         placeholder from 0x%x to %#x.
5877         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
5878         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
5879         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
5880         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
5881         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
5882         * config/i386/i386.c (ix86_target_string): Ditto.
5883         * config/i386/i386.c (output_pic_addr_const): Ditto.
5884         (print_operand): Ditto.
5885
5886 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
5887
5888         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
5889         placeholder from 0x%x to %#x.
5890         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
5891         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
5892         (ASM_OUTPUT_DEBUG_DATA): Ditto.
5893         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
5894         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
5895         * optc-gen.awk: Ditto.
5896         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
5897         (HOST_WIDE_INT_PRINT_HEX): Ditto.
5898         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
5899         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
5900
5901 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
5902
5903         * target.h (struct calls): Add function_value_regno_p field.
5904         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
5905         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
5906         * targhooks.c (default_function_value_regno_p): New function.
5907         * targhooks.h (default_function_value_regno_p): Declare function.
5908         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
5909         * builtins.c. (apply_result_size): (Ditto.).
5910         * combine.c. (likely_spilled_retval_p): (Ditto.).
5911         * mode-switching.c. Include 'target.h'.
5912         (create_pre_exit): Use function_value_regno_p hook.
5913         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
5914         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
5915         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
5916
5917         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
5918         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
5919         (ix86_function_value_regno_p): Declare as static, change argument
5920         type to const unsigned int.
5921         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
5922
5923 2010-05-01  Richard Guenther  <rguenther@suse.de>
5924
5925         PR tree-optimization/43949
5926         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
5927         types.
5928         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
5929
5930 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
5931
5932         * rtl.h (CONST_DOUBLE_P): Define.
5933         (rtx_to_double_int): Declare.
5934         * emit-rtl.c (rtx_to_double_int): New function.
5935         * dwarf2out.c (insert_double): New function.
5936         (loc_descriptor, add_const_value_attribute): Clean up, use
5937         rtx_to_double_int and insert_double functions.
5938
5939 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
5940
5941         * doc/extend.texi (Inline): Add missing return keyword to examples.
5942         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
5943         "command-line".
5944
5945 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
5946
5947         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
5948         the variable part of the offset as well.  Use highest_pow2_factor for
5949         all alignment checks.
5950
5951 2010-04-30  Richard Guenther  <rguenther@suse.de>
5952
5953         PR tree-optimization/43879
5954         * tree-ssa-structalias.c (type_could_have_pointers): Functions
5955         can have pointers.
5956
5957 2010-04-30  Jan Hubicka  <jh@suse.cz>
5958
5959         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
5960         varpool.
5961         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
5962
5963 2010-04-30  Jan Hubicka  <jh@suse.cz>
5964
5965         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
5966         New.
5967         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
5968         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
5969         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
5970         cgraph_node_set_needs_ltrans_p): Remove.
5971
5972 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
5973
5974         * sdbout.c: Include vec.h, do not include varray.h.
5975         (deferred_global_decls, sdbout_global_decl,
5976         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
5977         * toplev.c: Do not include varray.h.
5978         (dump_memory_report): Do not dump VARRAY statistics.
5979         * gengtype.c (open_base_file): Ignore varray.h.
5980         * Makefile.in: Update for abovementioned changes.
5981         Remove all traces of varray.c and varray.h.
5982         * varray.c: Remove file.
5983         * varray.h: Remove file.
5984
5985 2010-04-30  Jan Hubicka  <jh@suse.cz>
5986
5987         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
5988         references.
5989
5990 2010-04-30  Jan Hubicka  <jh@suse.cz>
5991
5992         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
5993         needed.
5994
5995 2010-04-30  Richard Guenther  <rguenther@suse.de>
5996
5997         * tree-ssa-structalias.c (get_constraint_for_1): Generate
5998         constraints for CONSTRUCTOR.
5999
6000 2010-04-30  Richard Guenther  <rguenther@suse.de>
6001
6002         PR lto/43946
6003         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
6004         first after all lowering passes.
6005
6006 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
6007
6008         * toplev.c: Include varray.h for statistics dumping.
6009         * tree.h: Do not declare varray_head_tag.
6010         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
6011         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
6012         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
6013         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
6014         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
6015         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
6016         c-common.c, c-common.h, reg-stack.c, basic-block.h,
6017         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
6018         include varray.h.
6019         * Makefile.in: Update for abovementioned changes.
6020
6021 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
6022
6023         PR debug/43942
6024         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
6025
6026 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
6027
6028         * config/picochip/picochip.c (picochip_legitimize_address): Define.
6029         Use this function to do machine-specific conversion.
6030         (picochip_legitimize_reload_address): Likewise.
6031         (picochip_legitimate_address_p): Check valid base register only if
6032         strict.
6033         (picochip_check_conditional_copy): Check for modw only if opnd is
6034         register.
6035         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
6036         to call the function in c.
6037         * config/picochip/picochip-protos.h
6038         (picochip_legitimize_reload_address): Define.
6039         * config/picochip/picochip.md (supported_compare1): Define.
6040
6041 2010-04-30  Jan Hubicka  <jh@suse.cz>
6042
6043         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
6044         (cgraph_global_info): Remove inlined.
6045         (LTO_cgraph_tag_names): Remove.
6046         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
6047         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
6048         simplify cgraph tags and document.
6049         (lto_output_node): Use only LTO_cgraph_unavail_node and
6050         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
6051         for_functions_valid, global info, process and output flags.
6052         (input_overwrite_node): Initialize estimated stack size and
6053         estimated growth.  Do not read flags we no longer store.
6054         (input_node): Likewise do not read info no longer stored.
6055         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
6056         flag.
6057
6058 2010-04-30  Richard Guenther  <rguenther@suse.de>
6059
6060         PR tree-optimization/43879
6061         * tree-ssa-structalias.c (get_constraint_for_1): Properly
6062         handle non-zero initializers.
6063
6064 2010-04-30  Richard Guenther  <rguenther@suse.de>
6065
6066         * builtins.c (fold_builtin_1): Delete free (0).
6067
6068 2010-04-29  Jan Hubicka  <jh@suse.cz>
6069
6070         * gengtype.c (open_base_files): Add lto-streamer.h
6071         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
6072         (pass_ipa_cp): GGC collect.
6073         * toplev. (compile_file): Do not output symbols.
6074         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
6075         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
6076         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
6077         * lto-section-in.c: Include ggc.h
6078         (lto_new_in_decl_state): Alloc in GGC.
6079         (lto_delete_in_decl_state): Likewise.
6080         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
6081         Collect.
6082
6083 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
6084
6085         PR target/42895
6086         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
6087         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
6088         (HONOR_REG_ALLOC_ORDER): Describe new macro.
6089         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
6090         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
6091         account only if HONOR_REG_ALLOC_ORDER is not defined.
6092         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
6093         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
6094
6095 2010-04-29  Jon Grant  <04@jguk.org>
6096
6097         * collect2.c (vflag): Change type from int to bool.
6098         (debug): Likewise.
6099         (helpflag): New global bool.
6100         (main): Set vflag and debug with boolean, not integer truth values.
6101         Accept new "--help" option and output usage text if found.
6102         * collect2.h (vflag): Update prototype.
6103         (debug): Likewise.
6104
6105 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
6106
6107         PR bootstrap/43936
6108         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
6109
6110 2010-04-29  Richard Guenther  <rguenther@suse.de>
6111
6112         PR bootstrap/43935
6113         * plugin.h (invoke_plugin_callbacks): Annotate arguments
6114         with ATTRIBUTE_UNUSED.
6115
6116 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
6117
6118         PR target/43921
6119         * config/i386/i386.c (get_some_local_dynamic_name): Replace
6120         INSN_P with NONDEBUG_INSN_P.
6121         (distance_non_agu_define): Likewise.
6122         (distance_agu_use): Likewise.
6123
6124 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
6125
6126         From Dominique d'Humieres <dominiq@lps.ens.fr>
6127         PR bootstrap/43858
6128         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
6129         test_set.
6130
6131 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
6132
6133         * plugin.h (invoke_plugin_callbacks): New inline function.
6134         * plugin.c (flag_plugin_added): New global flag.
6135         (add_new_plugin): Initialize above flag.
6136         (invoke_plugin_callbacks): Rename to ...
6137         (invoke_plugin_callbacks_full): ... this.
6138
6139 2010-04-28  Jan Hubicka  <jh@suse.cz>
6140
6141         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
6142         (lto_varpool_replace_node): New.
6143         (lto_symtab_resolve_symbols): Resolve varpool nodes.
6144         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
6145         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
6146         * cgraph.h (varpool_node_ptr): New type.
6147         (varpool_node_ptr): New vector.
6148         (varpool_node_set_def): New structure.
6149         (varpool_node_set): New type.
6150         (varpool_node_set): New vector.
6151         (varpool_node_set_element_def): New structure.
6152         (varpool_node_set_element, const_varpool_node_set_element): New types.
6153         (varpool_node_set_iterator): New type.
6154         (varpool_node): Add prev pointers, add used_from_other_partition,
6155         in_other_partition.
6156         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
6157         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
6158         varpool_get_node, varpool_remove_node): Declare.
6159         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
6160         varpool_node_set_size): New inlines.
6161         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
6162         * tree-pass.h (varpool_node_set_def): Forward declare.
6163         (ipa_opt_pass_d): Summary writting takes vnode sets too.
6164         (ipa_write_optimization_summaries): Update prototype.
6165         * ipa-cp.c (ipcp_write_summary): Update.
6166         * ipa-reference.c (ipa_reference_write_summary): Update.
6167         * lto-cgraph.c (lto_output_varpool_node): New static function.
6168         (output_varpool): New function.
6169         (input_varpool_node): New static function.
6170         (input_varpool_1): New function.
6171         (input_cgraph): Input varpool.
6172         * ipa-pure-const.c (pure_const_write_summary): Update.
6173         * lto-streamer-out.c (lto_output): Update, output varpool too.
6174         (write_global_stream): Kill WPA hack.
6175         (produce_asm_for_decls): Update.
6176         (output_alias_pair_p): Handle variables.
6177         (output_unreferenced_globals): Output only needed partition of varpool.
6178         * ipa-inline.c (inline_write_summary): Update.
6179         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
6180         cgraph.
6181         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
6182         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
6183         varpool_node_set_new, varpool_node_set_add,
6184         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
6185         debug_varpool_node_set): New functions.
6186         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
6187         (execute_one_pass): Process new decls too.
6188         (ipa_write_summaries_2): Pass around vsets.
6189         (ipa_write_summaries_1): Likewise.
6190         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
6191         to add.
6192         (ipa_write_optimization_summaries_1): Pass around vsets.
6193         (ipa_write_optimization_summaries): Likewise.
6194         * varpool.c (varpool_get_node): New.
6195         (varpool_node): Update doubly linked lists.
6196         (varpool_remove_node): New.
6197         (dump_varpool_node): More dumping.
6198         (varpool_enqueue_needed_node): Update doubly linked lists.
6199         (decide_is_variable_needed): Kill ltrans hack.
6200         (varpool_finalize_decl): Kill lto hack.
6201         (varpool_assemble_decl): Skip decls in other partitions.
6202         (varpool_assemble_pending_decls): Update doubly linkes lists.
6203         (varpool_empty_needed_queue): Likewise.
6204         (varpool_extra_name_alias): Likewise.
6205         * lto-streamer.c (lto_get_section_name): Add vars section.
6206         * lto-streamer.h (lto_section_type): Update.
6207         (output_varpool, input_varpool): Declare.
6208
6209 2010-04-28  Mike Stump  <mikestump@comcast.net>
6210
6211         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
6212
6213 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6214
6215         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
6216         record or union type with RECORD_OR_UNION_TYPE_P predicate.
6217         (lto_input_ts_type_tree_pointers): Likewise.
6218         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
6219         (lto_output_ts_type_tree_pointers): Likewise.
6220
6221 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6222
6223         Uniquization of constants at the Tree level
6224         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
6225         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
6226         bit to the end.
6227         (tree_output_constant_def): Declare.
6228         * gimplify.c (gimplify_init_constructor): When using block copy, first
6229         uniquize the constant constructor on the RHS.
6230         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
6231         DECL_IN_CONSTANT_POOL flag.
6232         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
6233         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
6234         constant pool.
6235         (assemble_variable): Deal with symbols belonging to the tree constant
6236         pool.
6237         (get_constant_section): Add ALIGN parameter and simplify.
6238         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
6239         (assemble_constant_contents): Use the expression of the VAR_DECL.
6240         (output_constant_def_contents): Use the alignment of the VAR_DECL.
6241         (tree_output_constant_def): New global function.
6242         (mark_constant): Use the expression of the VAR_DECL.
6243         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
6244         its expression.
6245         (output_object_block): Likewise and assemble the expression.
6246
6247 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6248
6249         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
6250         hash_tree, eq_tree): New tree hash table.
6251         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
6252         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
6253         lto_orig_address_remove): Reimplement.
6254
6255 2010-04-28  Xinliang David Li  <davidxl@google.com>
6256
6257         PR c/42643
6258         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
6259         (compute_uninit_opnds_pos): New function.
6260         (is_non_loop_exit_postdominating): New function.
6261         (compute_control_dep_chain): New function.
6262         (find_pdom): New function.
6263         (convert_control_dep_chain_into_preds): New function.
6264         (find_predicates): New function.
6265         (find_control_equiv_block): New function.
6266         (collect_phi_def_edges): New function.
6267         (find_def_preds): New function.
6268         (find_dom): New function.
6269         (dump_predicates): New function.
6270         (get_cmp_code): New function.
6271         (is_value_included_in): New function.
6272         (find_matching_predicate_in_rest_chains): New function.
6273         (use_pred_not_overlap_with_undef_path_pred): New function.
6274         (is_use_properly_guarded): New function.
6275         (normalize_cond_1): New function.
6276         (is_and_or_or): New function.
6277         (normalize_cond): New function.
6278         (is_gcond_subset_of): New function.
6279         (is_subset_of_any): New function.
6280         (is_or_set_subset_of): New function.
6281         (is_and_set_subset_of): New function.
6282         (is_norm_cond_subset_of): New function.
6283         (is_pred_expr_subset_of): New function.
6284         (is_pred_chain_subset_of): New function.
6285         (is_included_in): New function.
6286         (is_superset_of): New function.
6287         (find_uninit_use): New function.
6288         (warn_uninitialized_phi): New function.
6289         (compute_possibly_undefined_names): New function.
6290         (ssa_undefined_value_p): New function.
6291         (execute_late_warn_uninitialized): New function.
6292         * tree-ssa.c (ssa_undefined_value_p): Removed.
6293         (warn_uninit): Changed to extern.
6294         (warn_uninitialized_phi): Removed.
6295         (warn_uninitialized_vars): Changed to extern.
6296         (execute_late_warn_uninitialized): Removed
6297         * tree-flow.h: Add new prototypes.
6298         * timevar.def: Add new time variable.
6299         * Makefile.in: Add new build file.
6300
6301 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
6302
6303         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
6304         type if available.
6305
6306 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6307
6308         PR target/22224
6309         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
6310
6311 2010-04-28  Martin Jambor  <mjambor@suse.cz>
6312
6313         * cgraph.h (struct cgraph_node): New field indirect_calls.
6314         (struct cgraph_indirect_call_info): New type.
6315         (struct cgraph_edge): Removed field indirect_call. New fields
6316         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
6317         (cgraph_create_indirect_edge): Declare.
6318         (cgraph_make_edge_direct): Likewise.
6319         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
6320         * ipa-prop.h (struct ipa_param_call_note): Removed.
6321         (struct ipa_node_params): Removed field param_calls.
6322         (ipa_create_all_structures_for_iinln): Declare.
6323         * cgraph.c: Described indirect edges and uids in initial comment.
6324         (cgraph_add_edge_to_call_site_hash): New function.
6325         (cgraph_edge): Search also among the indirect edges, use
6326         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
6327         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
6328         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
6329         site hash.
6330         (initialize_inline_failed): Assign a reason to indirect edges.
6331         (cgraph_create_edge_1): New function.
6332         (cgraph_create_edge): Moved some functionality to
6333         cgraph_create_edge_1.
6334         (cgraph_create_indirect_edge): New function.
6335         (cgraph_edge_remove_callee): Add an assert checking for
6336         non-indirectness.
6337         (cgraph_edge_remove_caller): Special-case indirect edges.
6338         (cgraph_remove_edge): Likewise.
6339         (cgraph_set_edge_callee): New function.
6340         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
6341         (cgraph_make_edge_direct): New function.
6342         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
6343         the declaration of the call statement matches.
6344         (cgraph_node_remove_callees): Special-case indirect edges.
6345         (cgraph_clone_edge): Likewise.
6346         (cgraph_clone_node): Clone also the indirect edges.
6347         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
6348         indirect_call, dump count of indirect_calls edges.
6349         * ipa-prop.c (iinlining_processed_edges): New variable.
6350         (ipa_note_param_call): Create indirect edges instead of
6351         creating notes.  New parameter node.
6352         (ipa_analyze_call_uses): New parameter node, pass it on to
6353         ipa_note_param_call.
6354         (ipa_analyze_stmt_uses): Likewise.
6355         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
6356         (print_edge_addition_message): Work on edges rather than on notes.
6357         (update_call_notes_after_inlining): Likewise, renamed to
6358         update_indirect_edges_after_inlining.
6359         (ipa_create_all_structures_for_iinln): New function.
6360         (ipa_free_node_params_substructures): Do not free notes.
6361         (ipa_edge_duplication_hook): Propagate bits within
6362         iinlining_processed_edges bitmap.
6363         (ipa_node_duplication_hook): Do not duplicate notes.
6364         (free_all_ipa_structures_after_ipa_cp): Renamed to
6365         ipa_free_all_structures_after_ipa_cp.
6366         (free_all_ipa_structures_after_iinln): Renamed to
6367         ipa_free_all_structures_after_iinln.
6368         (ipa_write_param_call_note): Removed.
6369         (ipa_read_param_call_note): Removed.
6370         (ipa_write_indirect_edge_info): New function.
6371         (ipa_read_indirect_edge_info): Likewise.
6372         (ipa_write_node_info): Do not stream notes, do stream information
6373         in indirect edges.
6374         (ipa_read_node_info): Likewise.
6375         (lto_ipa_fixup_call_notes): Removed.
6376         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
6377         * ipa-inline.c (pass_ipa_inline): Likewise.
6378         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
6379         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
6380         * tree-inline.c (copy_bb): Removed an unnecessary double check for
6381         is_gimple_call.
6382         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
6383         edges.
6384         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
6385         (output_cgraph): Stream also indirect edges.
6386         (lto_output_edge): Added capability to stream indirect edges.
6387         (input_edge): Likewise.
6388         (input_cgraph_1): Likewise.
6389         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
6390         of indirect edges.
6391
6392 2010-04-28  Richard Guenther  <rguenther@suse.de>
6393
6394         PR tree-optimization/43879
6395         PR tree-optimization/43909
6396         * tree-ssa-structalias.c (struct variable_info): Add
6397         only_restrict_pointers flag.
6398         (new_var_info): Initialize it.  Increment stats.total_vars here.
6399         (create_function_info_for): Do not increment stats.total_vars here.
6400         (get_function_part_constraint): Fix build with C++.
6401         (insert_into_field_list): Remove.
6402         (push_fields_onto_fieldstack): Properly merge fields.
6403         (create_variable_info_for): Split and simplify.
6404         (create_variable_info_for_1): New piece.
6405         (intra_create_variable_infos): Properly make restrict constraints
6406         from parameters.
6407
6408 2010-04-28  Richard Guenther  <rguenther@suse.de>
6409
6410         PR c++/43880
6411         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
6412
6413 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6414             Jan Hubicka <hubicka@ucw.cz>
6415
6416         * doc/invoke.texi (-Wsuggest-attribute=const,
6417         -Wsuggest-attribute=pure): Document.
6418         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
6419         (function_always_visible_to_compiler_p,
6420         suggest_attribute, warn_function_pure, warn_function_const):
6421         New functions.
6422         (check_call): Improve debug info.
6423         (analyze_function): Do not check availability.
6424         (add_new_function): Check availability.
6425         (propagate): Output warnings.
6426         (skip_function_for_local_pure_const): New function.
6427         (local_pure_const): Use it; output warnings.
6428         * common.opt (Wsuggest-attribute=const,
6429         Wsuggest-attribute=pure): New.
6430
6431 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
6432
6433         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
6434         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
6435         or DW_CFA_def_cfa_offset{,_sf}.
6436
6437 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
6438
6439         * tree.h: Fix truncated long macros.
6440
6441 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
6442
6443         * collect2.c (TARGET_64BIT): Redefine to target's default.
6444         * tlink.c: Likewise.
6445         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
6446         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
6447         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
6448         for underscoring __USER_LABEL_PREFIX__.
6449         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
6450         (SUB_LINK_ENTRY32): New.
6451         (SUB_LINK_ENTRY64): New.
6452         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
6453         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
6454         (SUB_LINK_ENTRY64): New.
6455         (SUB_LINK_ENTRY): New.
6456         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
6457         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
6458         x64 target is choosen.
6459         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
6460         * configure: Regenerated.
6461         * configure.ac (leading-mingw64-underscores): Option added.
6462
6463 2010-04-27  Jan Hubicka  <jh@suse.cz>
6464
6465         * doc/invoke.texi (-fipa-profile): Document.
6466         * opts.c (decode_options): Enable ipa-profile at -O1.
6467         * timevar.def (TV_IPA_PROFILE): Define.
6468         * common.opt (fipa-profile): Add.
6469         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
6470         flag for clones.
6471         (cgraph_propagate_frequency): Handle only local ones.
6472         * tree-pass.h (pass_ipa_profile): Declare.
6473         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
6474         (pass_ipa_profile): Use TV_IPA_PROFILE.
6475         * ipa.c (ipa_profile): New function.
6476         (gate_ipa_profile): Likewise.
6477         (pass_ipa_profile): New global variable.
6478         * passes.c (pass_ipa_profile): New.
6479
6480 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
6481
6482         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
6483
6484 2010-04-27  Martin Jambor  <mjambor@suse.cz>
6485
6486         PR middle-end/43812
6487         * ipa.c (dissolve_same_comdat_group_list): New function.
6488         (function_and_variable_visibility): Call
6489         dissolve_same_comdat_group_list when comdat group contains external or
6490         newly local nodes.
6491         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
6492         lists are circular and that they contain only DECL_ONE_ONLY nodes.
6493
6494 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
6495
6496         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
6497         (const_hash_1) <VECTOR_CST>: New case.
6498         (compare_constant) <VECTOR_CST>: Likewise.
6499         <ADDR_EXPR>: Deal with LABEL_REFs.
6500         (copy_constant) <VECTOR_CST>: New case.
6501
6502 2010-04-27  Jan Hubicka  <jh@suse.cz>
6503
6504         * cgraph.c (cgraph_propagate_frequency): New function.
6505         * cgraph.h (cgraph_propagate_frequency): Declare.
6506         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
6507         cgraph_propagate_frequency.
6508
6509 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
6510
6511         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
6512
6513 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
6514
6515         PR target/40657
6516         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
6517         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
6518         here to determine which regs to push and how much stack to reserve.
6519
6520 2010-04-27  Jie Zhang  <jie@codesourcery.com>
6521
6522         * doc/gimple.texi (gimple_statement_with_ops): Remove
6523         addresses_taken field.
6524         (gimple_statement_with_memory_ops): Likewise.
6525
6526 2010-04-27  Jan Hubicka  <jh@suse.cz>
6527
6528         * tree-inline.c (eni_inlining_weights): Remove.
6529         (estimate_num_insns): Special case more builtins.
6530
6531 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
6532
6533         PR c/32207
6534         * c-typeck.c (build_binary_op): Move forward check for comparison
6535         pointer with null pointer constant and adjust the diagnostic message.
6536
6537 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
6538
6539         PR lto/42776
6540         * configure.ac (gcc_cv_as_section_has_align): Set if installed
6541         binutils supports extended .section directive needed by LTO, or
6542         warn if older binutils found.
6543         (LTO_BINARY_READER): New AC_SUBST'd variable.
6544         (LTO_USE_LIBELF): Likewise.
6545         * gcc/config.gcc (lto_binary_reader): New target-specific configure
6546         variable.
6547         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
6548         (LTO_USE_LIBELF): Likewise.
6549         * configure: Regenerate.
6550
6551         * collect2.c (is_elf): Rename from this ...
6552         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
6553          object files in addition to ELF-formatted ones.
6554         (scan_prog_file): Caller updated.  Also allow for LTO info marker
6555         symbol to be prefixed or not by an extra underscore.
6556
6557         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
6558         * config/i386/winnt.c: Also #include lto-streamer.h
6559         (i386_pe_asm_named_section): Specify 1-byte section alignment for
6560         LTO named sections.
6561         (i386_pe_asm_output_aligned_decl_common): Add comment.
6562         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
6563
6564 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
6565
6566         PR target/43889
6567         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
6568         Add missing earlyclobber for second alternative.
6569
6570 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
6571
6572         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
6573         bits for artificial defs at the top of the block.
6574         * fwprop.c (single_def_use_enter_block): Don't call it.
6575
6576 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
6577
6578         PR 43715
6579         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
6580         instead of "$gcc_cv_objdump -T".
6581         Use "-undefined dynamic_lookup" on darwin.
6582         * gcc/configure: Regenerate.
6583
6584 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
6585
6586         PR c/43893
6587         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
6588
6589 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
6590
6591         * c-parser.c (struct c_token): Move location field up.
6592         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
6593         (struct c_declspecs): Convert typespec_word, storage_class, and
6594         default_int_p into bitfields.
6595         (struct c_declarator): Move loc field up.
6596
6597 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
6598
6599         * cfgloop.h (struct loop): Move can_be_parallel field up.
6600         * ipa-prop.h (struct ip_node_params): Move bitfields up.
6601         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
6602         down.
6603         (struct iv_cand): Convert pos field into a bitfield.
6604         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
6605         field up.
6606         (struct _stmt_vec_info): Shuffle fields for better packing.
6607
6608 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
6609
6610         * varasm.c (IN_NAMED_SECTION): Remove guard.
6611         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
6612         (IN_NAMED_SECTION_P): ...this.
6613         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
6614         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
6615
6616 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
6617
6618         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
6619         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
6620         of shadowing it.  Fix comments.
6621
6622 2010-04-26  Jan Hubicka  <jh@suse.cz>
6623
6624         * cgraph.c (cgraph_create_node): Set node frequency to normal.
6625         (cgraph_clone_node): Copy function frequency.
6626         * cgraph.h (node_frequency): New enum
6627         (struct cgraph_node): Add.
6628         * final.c (rest_of_clean_state): Update.
6629         * lto-cgraph.c (lto_output_node): Output node frequency.
6630         (input_overwrite_node): Input node frequency.
6631         * tre-ssa-loop-ivopts (computation_cost): Update.
6632         * lto-streamer-out.c (output_function): Do not output function
6633         frequency.
6634         * predict.c (maybe_hot_frequency_p): Update and handle functions
6635         executed once.
6636         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
6637         attribute lookup.
6638         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
6639         (compute_function_frequency): Set noreturn functions to be executed
6640         once.
6641         (choose_function_section): Update.
6642         * lto-streamer-in.c (input_function): Do not input function frequency.
6643         * function.c (allocate_struct_function): Do not initialize function
6644         frequency.
6645         * function.h (function_frequency): Remove.
6646         (struct function): Remove function frequency.
6647         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
6648         (try_update): Update.
6649         * tree-inline.c (initialize_cfun): Do not update function frequency.
6650         * passes.c (pass_init_dump_file): Update.
6651         * i386.c (ix86_compute_frame_layout): Update.
6652         (ix86_pad_returns): Update.
6653
6654 2010-04-26  Jie Zhang  <jie@codesourcery.com>
6655
6656         PR tree-optimization/43833
6657         * tree-vrp.c (range_int_cst_p): New.
6658         (range_int_cst_singleton_p): New.
6659         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
6660         when both operands are constants.  Use range_int_cst_p in
6661         BIT_IOR_EXPR case.
6662
6663 2010-04-26  Jan Hubicka  <jh@suse.cz>
6664
6665         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
6666
6667 2010-04-26  Richard Guenther  <rguenther@suse.de>
6668
6669         PR lto/43080
6670         * gimple.c (gimple_decl_printable_name): Deal gracefully
6671         with a NULL DECL_NAME.
6672
6673 2010-04-26  Richard Guenther  <rguenther@suse.de>
6674
6675         PR lto/42425
6676         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
6677         if emitting debug information and it is either a function
6678         or a namespace decl.
6679
6680 2010-04-26  Ira Rosen  <irar@il.ibm.com>
6681
6682         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
6683         determine if the statement is vectorizable, and a macro to access it.
6684         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
6685         Skip statements that can't be vectorized. If the analysis fails,
6686         mark the statement as unvectorizable if vectorizing basic block.
6687         (vect_compute_data_refs_alignment): Likewise.
6688         (vect_verify_datarefs_alignment): Skip statements marked as
6689         unvectorizable. Add print.
6690         (vect_analyze_group_access): Skip statements that can't be
6691         vectorized. If the analysis fails, mark the statement as
6692         unvectorizable if vectorizing basic block.
6693         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
6694         * tree-vect-stmts.c (vectorizable_store): Fix the number of
6695         generated stmts for SLP.
6696         (new_stmt_vec_info): Initialize the new field.
6697         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
6698         statements marked as unvectorizable.
6699
6700 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
6701
6702         * c-common.c (flag_isoc1x): New.
6703         (flag_isoc99): Update comment.
6704         * c-common.h (flag_isoc1x): New.
6705         (flag_isoc99): Update comment.
6706         * c-cppbuiltin.c (builtin_define_float_constants): Also define
6707         __<type>_DECIMAL_DIG__.
6708         * c-opts.c (set_std_c1x): New.
6709         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
6710         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
6711         * c.opt (-std=c1x, -std=gnu1x): New options.
6712         * doc/cpp.texi: Mention -std=c1x.
6713         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
6714         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
6715         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
6716         * doc/standards.texi: Mention C1X.
6717         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
6718         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
6719         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
6720         Define for C1X.
6721
6722 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
6723
6724         * config/i386/gmon-sol2.c (_mcleanup): Change format string
6725         placeholder from 0x%x to %#x.
6726         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
6727         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
6728         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
6729         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
6730         * config/i386/i386.c (ix86_target_string): Ditto.
6731         (output_pic_addr_const): Ditto.
6732         (print_operand): Ditto.
6733
6734 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
6735
6736         * combine.c (find_split_point): Add third argument.  Use it
6737         to find nested multiply-accumulate instructions.  Adjust calls.
6738         (try_combine): Adjust call to find_split_point.
6739
6740 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
6741
6742         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
6743
6744 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
6745
6746         PR tree-optimization/41442
6747         * fold-const.c (merge_truthop_with_opposite_arm): New function.
6748         (fold_binary_loc): Call it.
6749
6750 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6751
6752         * toplev.c (general_init): Set default for fdiagnostics-show-option.
6753         * opts.c (common_handle_option): Allow disabling it.
6754         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
6755
6756 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
6757
6758         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
6759         between modes if both types are integral.
6760
6761 2010-04-23  Richard Guenther  <rguenther@suse.de>
6762
6763         PR tree-optimization/43572
6764         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
6765
6766 2010-04-23  Richard Guenther  <rguenther@suse.de>
6767
6768         PR lto/43455
6769         * tree-inline.c (tree_can_inline_p): Also check compatibility
6770         of return types.
6771
6772 2010-04-23  Martin Jambor  <mjambor@suse.cz>
6773
6774         PR tree-optimization/43846
6775         * tree-sra.c (struct access): New flag grp_assignment_read.
6776         (build_accesses_from_assign): Set grp_assignment_read.
6777         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
6778         (enum mark_read_status): New type.
6779         (analyze_access_subtree): Propagate grp_assignment_read, create
6780         accesses also if both direct_read and root->grp_assignment_read.
6781
6782 2010-04-23  Martin Jambor  <mjambor@suse.cz>
6783
6784         PR middle-end/43835
6785         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
6786         function does not have type attributes.
6787
6788 2010-04-23  Richard Guenther  <rguenther@suse.de>
6789
6790         PR lto/42653
6791         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
6792         of FUNCTION_DECLs.
6793
6794 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6795
6796         * sese.h (create_if_region_on_edge): Remove.
6797
6798         * sese.c (create_if_region_on_edge): Make static.
6799
6800         * tree-inline.c: Do not include ggc.h.
6801
6802         * expr.c: Do not include ggc.h.
6803
6804         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
6805         dependencies.
6806
6807 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
6808
6809         PR target/43744
6810         * config/sh/sh.c (find_barrier): Don't emit a constant pool
6811         in the middle of insns for casesi_worker_2.
6812
6813 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
6814
6815         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
6816
6817 2010-04-22  Ira Rosen  <irar@il.ibm.com>
6818
6819         PR tree-optimization/43842
6820         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
6821         loop unrolling in update of exit phis. Fix comment.
6822         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
6823         least two reduction statements in the loop before starting SLP
6824         analysis.
6825
6826 2010-04-22  Nick Clifton  <nickc@redhat.com>
6827
6828         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
6829
6830 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
6831
6832         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
6833         to simplify a + ~a.
6834
6835 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6836
6837         * tree-parloops.c (loop_parallel_p): New argument
6838         parloop_obstack.  Pass it down.
6839         (parallelize_loops): New variable parloop_obstack.  Initialize it,
6840         pass it down, free it.
6841
6842         * tree-loop-linear.c (linear_transform_loops): Pass down
6843         lambda_obstack.
6844
6845         * tree-data-ref.h (lambda_compute_access_matrices): New argument
6846         of type struct obstack *.
6847
6848         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
6849         scratch_obstack.  Initialize it, pass down, free it.
6850
6851         * lambda.h (lambda_loop_new): Remove.
6852         (lambda_matrix_new, lambda_matrix_inverse)
6853         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
6854         argument of type struct obstack *.
6855
6856         * lambda-trans.c (lambda_trans_matrix_new): New argument
6857         lambda_obstack.  Pass it down, use obstack allocation for ret.
6858         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
6859         it down.
6860
6861         * lambda-mat.c (lambda_matrix_get_column)
6862         (lambda_matrix_project_to_null): Remove.
6863         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
6864         allocation for mat.
6865         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
6866         lambda_obstack.
6867
6868         * lambda-code.c (lambda_loop_new): New function.
6869         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
6870         (lambda_compute_auxillary_space, lambda_compute_target_space)
6871         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
6872         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
6873         (build_access_matrix): New argument lambda_obstack.  Use obstack
6874         allocation for am.
6875         (lambda_compute_step_signs, lambda_compute_access_matrices): New
6876         argument lambda_obstack.  Pass it down.
6877
6878 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
6879
6880         * optabs.h (expand_widening_mult): Declare.
6881
6882 2010-04-22  Richard Guenther  <rguenther@suse.de>
6883
6884         PR tree-optimization/43845
6885         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
6886         lookup the CALL_EXPR function and arguments.
6887
6888 2010-04-22  Nick Clifton  <nickc@redhat.com>
6889
6890         * config/stormy16/stormy16.c
6891         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
6892         * config/stormy16/stormy16.h: Tidy up formatting.
6893         (DONT_USE_BUILTIN_SETJMP): Remove definition.
6894         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
6895         (ineqbranchsi): Delete pattern.
6896         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
6897         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
6898         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
6899         stormy16-lib2-ucmpsi2.c.
6900
6901 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
6902
6903         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
6904         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
6905         extra set merge_set_noclobber, and use it to relax the final test
6906         slightly.
6907         * df.h (df_simulate_find_noclobber_defs): Declare.
6908         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
6909         conditional defs.
6910         (df_simulate_find_noclobber_defs): New function.
6911
6912 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
6913
6914         * config/i386/i386.md: Use {} around multi-line preparation statements.
6915
6916 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6917
6918         * c-tree.h (push_init_level, pop_init_level, set_init_index)
6919         (process_init_element): New argument of type struct obstack *.
6920
6921         * c-typeck.c (push_init_level, pop_init_level, set_designator)
6922         (set_init_index, set_init_label, set_nonincremental_init)
6923         (set_nonincremental_init_from_string, find_init_member)
6924         (output_init_element, output_pending_init_elements)
6925         (process_init_element): New argument braced_init_obstack.  Pass it
6926         down.
6927         (push_range_stack, add_pending_init): New argument
6928         braced_init_obstack.  Use obstack allocation.
6929
6930         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
6931         braced_init_obstack.  Pass it down.
6932         (c_parser_braced_init): New variables ret, braced_init_obstack.
6933         Initialize obstack, pass it down and finally free it.
6934
6935 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
6936
6937         PR middle-end/29274
6938         * tree-pass.h (pass_optimize_widening_mul): Declare.
6939         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
6940         gate_optimize_widening_mul): New static functions.
6941         (pass_optimize_widening_mul): New.
6942         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
6943         <case MULT_EXPR>: Remove support for widening multiplies.
6944         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
6945         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
6946         simplify_gen_unary rather than directly building extensions.
6947         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
6948         WIDEN_MULT_EXPR.
6949         * expmed.c (expand_widening_mult): New function.
6950         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
6951
6952 2010-04-21  Jan Hubicka  <jh@suse.cz>
6953
6954         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
6955         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
6956         * lto-wpa-fixup.c: Remove.
6957         * Makefile.in (lto-wpa-fixup.o): Remove.
6958         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
6959         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
6960         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
6961
6962 2010-04-21  Jan Hubicka  <jh@suse.cz>
6963
6964         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
6965         add write_optimization_summary, read_optimization_summary.
6966         (ipa_write_summaries_of_cgraph_node_set): Remove.
6967         (ipa_write_optimization_summaries): Declare.
6968         (ipa_read_optimization_summaries): Declare.
6969         * ipa-cp.c (pass_ipa_cp): Update.
6970         * ipa-reference.c (pass_ipa_reference): Update.
6971         * ipa-pure-const.c (pass_ipa_pure_const): Update.
6972         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
6973         Update.
6974         * ipa-inline.c (pass_ipa_inline): Update.
6975         * ipa.c (pass_ipa_whole_program): Update.
6976         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
6977         * passes.c (ipa_write_summaries_1): Do not test wpa.
6978         (ipa_write_optimization_summaries_1): New.
6979         (ipa_write_optimization_summaries): New.
6980         (ipa_read_summaries): Do not test ltrans.
6981         (ipa_read_optimization_summaries_1): New.
6982         (ipa_read_optimization_summaries): New.
6983
6984 2010-04-21  Jan Hubicka  <jh@suse.cz>
6985
6986         * lto-cgraph.c (lto_output_node): Do not output comdat groups
6987         for boundary nodes.
6988         (output_cgraph): Do not arrange comdat groups for boundary nodes.
6989
6990 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
6991
6992         PR debug/40040
6993         * dwarf2out.c (add_name_and_src_coords_attributes): Add
6994         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
6995
6996 2010-04-21  Jan Hubicka  <jh@suse.cz>
6997
6998         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
6999
7000 2010-04-21  Jan Hubicka  <jh@suse.cz>
7001
7002         * varpool.c (decide_is_variable_needed): Variable is always needed
7003         during ltrans.
7004
7005 2010-04-21  Jan Hubicka  <jh@suse.cz>
7006
7007         * opts.c (decode_options): Enable pure-const pass for whopr.
7008
7009 2010-04-21  Jan Hubicka  <jh@suse.cz>
7010
7011         * cgraph.c (dump_cgraph_node): Dump also assembler name.
7012         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
7013         at WPA dumping.
7014         (cgraph_decide_inlining): Do not expect callee to be removed in all
7015         cases.
7016
7017 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
7018
7019         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
7020
7021 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
7022
7023         * config/i386/i386.md (x86_shrd): Add athlon_decode and
7024         amdfam10_decode attributes.
7025
7026 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7027
7028         PR middle-end/43570
7029         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
7030         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
7031         (lower_copyprivate_clauses): Use private var in outer
7032         context instead of original var.  Make sure the types
7033         are correct for VLAs.
7034
7035 2010-04-21  Richard Guenther  <rguenther@suse.de>
7036
7037         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
7038         to non-pointer objects.
7039
7040 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
7041
7042         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
7043         last chain entry if it starts with the still current label.
7044         (add_location_or_const_value_attribute): Check that
7045         loc_list->first->next is NULL instead of comparing ->first with ->last.
7046         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
7047         to add_var_loc_to_decl.
7048
7049         * dwarf2out.c (output_call_frame_info): For dw_cie_version
7050         >= 4 add also address size and segment size fields into CIE header.
7051
7052         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
7053         long as address size is the same as sizeof (void *) and
7054         segment size is 0.
7055         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
7056         address size or segment size is unexpected, return DW_EH_PE_omit.
7057         (classify_object_over_fdes): If get_cie_encoding returned
7058         DW_EH_PE_omit, return -1.
7059         (init_object): If classify_object_over_fdes returned -1,
7060         pretend there were no FDEs at all.
7061
7062 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
7063
7064         * config/i386/i386.md (bswap<mode>2): Macroize expander from
7065         bswap{si,di}2 using SWI48 mode iterator.
7066         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
7067         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
7068         set modrm attribute of bswap insn to 0 and remove length attribute.
7069         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
7070         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
7071         set mode attribute to <MODE> and remove length attribute.
7072
7073 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
7074
7075         PR rtl-optimization/43520
7076         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
7077         zero available registers.
7078
7079 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7080
7081         * builtins.c (fold_builtin_cproj): Fold more cases.
7082
7083 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7084
7085         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
7086         (fold_builtin_1): Fold builtin cproj.
7087         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
7088         Use ATTR_CONST_NOTHROW_LIST.
7089
7090 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
7091
7092         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
7093         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
7094         ffsi2_no_cmove for !TARGET_CMOVE.
7095         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
7096         (ffssi2): Remove expander.
7097         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
7098         mode iterator.
7099         (ctz<mode>2): Ditto from ctz{si,di}2.
7100         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
7101         mode iterator.
7102         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
7103         mode iterator.
7104
7105 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
7106
7107         * dwarf2out.c (AT_linkage_name): Define.
7108         (clone_as_declaration): Handle DW_AT_linkage_name.
7109         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
7110         of DW_AT_MIPS_linkage_name.
7111         (move_linkage_attr): Likewise.
7112         (dwarf2out_finish): Likewise.
7113
7114 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
7115
7116         PR middle-end/41952
7117         * fold-const.c (fold_comparison): New folding rule.
7118
7119 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
7120
7121         * double-int.h (double_int_setbit): Declare.
7122         * double-int.c (double_int_setbit): New function.
7123         * rtl.h (immed_double_int_const): Declare.
7124         * emit-rtl.c (immed_double_int_const): New function.
7125         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
7126         and immed_double_int_const functions.
7127         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
7128         expand_copysign_bit):  (Ditto.).
7129         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
7130         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
7131         * dojump.c (prefer_and_bit_test): (Ditto.).
7132         * expr.c (convert_modes, reduce_to_bit_field_precision,
7133         const_vector_from_tree): (Ditto.).
7134         * expmed.c (mask_rtx, lshift_value): (Ditto.).
7135
7136 2010-04-20  Jan Hubicka  <jh@suse.cz>
7137
7138         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
7139         (dump_cgraph_node): Dump new flags.
7140         * cgraph.h (struct cgraph_node): Add flags
7141         reachable_from_other_partition and in_other_partition.
7142         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
7143         other partition can not be removed.
7144         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
7145         the other partition must be output; silence sanity checking on
7146         leaking functions bodies from other paritition.
7147         * lto-cgraph.c (reachable_from_other_partition_p): New function.
7148         (lto_output_node): Output new flags; do not sanity check that inline
7149         clones are output; drop lto_forced_extern_inline_p code; do not mock
7150         visibility flags at partition boundaries.
7151         (add_node_to): New function.
7152         (output_cgraph): Use it to sort functions so masters appear before
7153         clones.
7154         (input_overwrite_node): Input new flags.
7155         * passes.c (ipa_write_summaries): Do not call
7156         lto_new_extern_inline_states.
7157         * lto-section-out.c (forced_extern_inline,
7158         lto_new_extern_inline_states lto_delete_extern_inline_states,
7159         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
7160         * lto-streamer.h (lto_new_extern_inline_states,
7161         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
7162         lto_forced_extern_inline_p): Kill.
7163
7164 2010-04-20  Richard Guenther  <rguenther@suse.de>
7165
7166         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
7167         from vars that can have pointers.
7168         (process_constraint): Dump useless constraints.
7169
7170 2010-04-20  Richard Guenther  <rguenther@suse.de>
7171
7172         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
7173         (dump_sa_points_to_info): Remove asserts.
7174         (init_base_vars): nothing_id isn't an escape point nor does it
7175         have pointers.
7176
7177 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
7178
7179         * tree.h (TYPE_REF_IS_RVALUE): Define.
7180         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
7181         should_move_die_to_comdat, prune_unused_types_walk): Handle
7182         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
7183         (modified_type_die, gen_reference_type_die): Emit
7184         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
7185         if TYPE_REF_IS_RVALUE and -gdwarf-4.
7186
7187 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7188
7189         PR target/43635
7190         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
7191         calls for -fpic -m31 if they have been sibcall optimized.
7192
7193 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
7194
7195         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
7196         ar.lc fixed and call-used.
7197
7198         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
7199
7200 2010-04-19  Jan Hubicka  <jh@suse.cz>
7201
7202         * opts.c (decode_options): Disable whpr incompatible passes.
7203         * lto/lto.c (lto_1_to_1_map): Skip clones.
7204         (read_cgraph_and_symbols): Do not mark everything as needed.
7205         (do_whole_program_analysis): Do map only after optimizing;
7206         set proper cgraph_state; use passmanager.
7207
7208 2010-04-19  DJ Delorie  <dj@redhat.com>
7209
7210         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
7211         POINTER_PLUS_EXPR and fix them.
7212
7213 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
7214
7215         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
7216         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
7217         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
7218         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
7219         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
7220         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
7221         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
7222         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
7223         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
7224         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
7225         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
7226
7227 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
7228
7229         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
7230         (check_cond_move_block): Likewise.
7231         (cond_move_process_if_block): Likewise.
7232         (noce_find_if_block): Improve formatting.
7233         (find_if_header): Pass 0 to memset and tweak conditions.
7234         (cond_exec_find_if_block): Fix long lines and tweak conditions.
7235
7236 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
7237
7238         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
7239         for -gdwarf-4.
7240
7241         PR middle-end/43337
7242         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
7243         with non-local decl doesn't need chain.
7244
7245 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
7246
7247         * ira-color.c (allocno_reload_assign): Avoid accumulating
7248         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
7249
7250 2010-04-19  Martin Jambor  <mjambor@suse.cz>
7251
7252         * gimple.h (create_tmp_reg): Declare.
7253         * gimplify.c (create_tmp_reg): New function.
7254         (gimplify_return_expr): Use create_tmp_reg.
7255         (gimplify_omp_atomic): Likewise.
7256         (gimple_regimplify_operands): Likewise.
7257         * tree-dfa.c (make_rename_temp): Likewise.
7258         * tree-predcom.c (predcom_tmp_var): Likewise.
7259         (reassociate_to_the_same_stmt): Likewise.
7260         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
7261         (get_replaced_param_substitute): Likewise.
7262         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
7263         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
7264         * tree-ssa-pre.c (get_representative_for): Likewise.
7265         (create_expression_by_pieces): Likewise.
7266         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
7267         (create_tailcall_accumulator): Likewise.
7268
7269 2010-04-19  Martin Jambor  <mjambor@suse.cz>
7270
7271         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
7272         new_stmt.
7273         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
7274
7275 2010-04-19  Richard Guenther  <rguenther@suse.de>
7276
7277         PR tree-optimization/43796
7278         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
7279         from SCEV in the lattice.
7280         (vrp_visit_phi_node): Dump change.
7281
7282 2010-04-19  Richard Guenther  <rguenther@suse.de>
7283
7284         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
7285         * configure: Re-generated.
7286
7287 2010-04-19  Richard Guenther  <rguenther@suse.de>
7288
7289         PR tree-optimization/43783
7290         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
7291         constant ARRAY_REF operands two and three if possible.
7292
7293 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
7294
7295         PR target/43766
7296         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
7297
7298 2010-04-19  Jie Zhang  <jie@codesourcery.com>
7299
7300         PR target/43662
7301         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
7302
7303 2010-04-19  Ira Rosen  <irar@il.ibm.com>
7304
7305         PR tree-optimization/37027
7306         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
7307         and macro to access it.
7308         (vectorizable_reduction): Add argument.
7309         (vect_get_slp_defs): Likewise.
7310         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
7311         statements for possible use in SLP.
7312         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
7313         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
7314         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
7315         add new argument.
7316         (vectorizable_reduction): Likewise.
7317         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
7318         vect_get_slp_defs.
7319         (vectorizable_type_demotion, vectorizable_type_promotion,
7320         vectorizable_store): Likewise.
7321         (vect_analyze_stmt): Update call to vectorizable_reduction.
7322         (vect_transform_stmt): Likewise.
7323         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
7324         (vect_build_slp_tree): Fix indentation. Check that there are no loads
7325         from different interleaving chains in same node.
7326         (vect_slp_rearrange_stmts): New function.
7327         (vect_supported_load_permutation_p): Allow load permutations for
7328         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
7329         inside SLP nodes if necessary.
7330         (vect_analyze_slp_instance): Handle reductions.
7331         (vect_analyze_slp): Try to build SLP instances originating from groups
7332         of reductions.
7333         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
7334         (vect_get_constant_vectors): Create initial vectors for reductions
7335         according to reduction code. Add new argument.
7336         (vect_get_slp_defs): Add new argument, pass it to
7337         vect_get_constant_vectors.
7338         (vect_schedule_slp_instance): Remove SLP tree root statements.
7339
7340 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
7341
7342         * tree.h (ENUM_IS_SCOPED): Define.
7343         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
7344         for ENUM_IS_SCOPED enums.
7345
7346 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
7347
7348         * fold-const.c (fold_comparison): Use ssizetype.
7349         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
7350         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
7351         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
7352         * tree-object-size.c (compute_object_sizes): Use size_type_node.
7353
7354         * tree.h (initialize_sizetypes): Remove parameter.
7355         (build_common_tree_nodes): Remove second parameter.
7356         * stor-layout.c (initialize_sizetypes): Remove parameter.
7357         Always create an unsigned type.
7358         (set_sizetype): Assert that the passed type is unsigned and simplify.
7359         * tree.c (build_common_tree_nodes): Remove second parameter.
7360         Adjust call to initialize_sizetypes.
7361         * c-decl.c (c_init_decl_processing): Remove second argument in call to
7362         build_common_tree_nodes.
7363
7364 2010-04-18  Matthias Klose  <doko@ubuntu.com>
7365
7366         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
7367
7368 2010-04-18  Ira Rosen  <irar@il.ibm.com>
7369
7370         PR tree-optimization/43771
7371         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
7372         load permutation doesn't have gaps.
7373
7374 2010-04-18  Jan Hubicka  <jh@suse.cz>
7375
7376         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
7377         (sse_prologue_save_insn expander): Use new pattern.
7378         (sse_prologue_save_insn1): New pattern and splitter.
7379         (sse_prologue_save_insn): Update to deal also with 64bit aligned
7380         blocks.
7381         * i386.c (setup_incoming_varargs_64): Do not compute jump
7382         destination here.
7383         (ix86_gimplify_va_arg): Update alignment needed.
7384         (ix86_local_alignment): Do not align all local arrays to 128bit.
7385
7386 2010-04-17  Jan Hubicka  <jh@suse.cz>
7387
7388         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
7389
7390 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
7391
7392         * arm.md (negdi2): Remove redundant code to force values into a
7393         register.
7394
7395 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
7396
7397         * arm/bpabi.S: Add EABI alignment attributes to objects.
7398         * arm/bpabi-v6m.S: Likewise.
7399         * arm/crti.asm: Likewise.
7400         * arm/crtn.asm: Likewise.
7401         * arm/lib1funcs.asm: Likewise.
7402         * arm/libunwind.S: Likewise.
7403
7404 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
7405
7406         * arm-protos.h (tune_params): New structure.
7407         * arm.c (current_tune): New variable.
7408         (arm_constant_limit): Delete.
7409         (struct processors): Add pointer to the tune parameters.
7410         (arm_slowmul_tune): New tuning option.
7411         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
7412         (all_cores): Adjust to pick up the tuning model.
7413         (arm_constant_limit): New function.
7414         (arm_override_options): Select the appropriate tuning model.  Delete
7415         initialization of arm_const_limit.
7416         (arm_split_constant): Use the new constant-limit model.
7417         (arm_rtx_costs): Pick up the current tuning model.
7418         * arm.md (is_strongarm, is_xscale): Delete.
7419         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
7420         for Xscale variant architectures.
7421         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
7422
7423 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7424
7425         * config/arm/arm.c (arm_gen_constant): Remove unused variable
7426         can_shift.
7427         (arm_rtx_costs_1): Remove unused variable extra_cost.
7428         (arm_unwind_emit_set): Use variable offset.
7429         (thumb1_output_casesi): Remove unused variable flags.
7430
7431 2010-04-16  Jeff Law  <law@redhat.com>
7432
7433         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
7434         needing assignment rather than doing a two-phase assignment.  Remove
7435         unused variable 'm'.
7436
7437 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
7438
7439         PR bootstrap/43767
7440         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
7441
7442 2010-04-16  Doug Kwan  <dougkwan@google.com>
7443
7444         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
7445         (next_operand_entry_id): New static variable.
7446         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
7447         (add_to_ops_vec): Assigned unique ID to operand entry.
7448         (struct oecount_s): New field ID.
7449         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
7450         (undistribute_ops_list): Assign unique IDs to oecounts.
7451         (init_reassoc): reset next_operand_entry_id.
7452
7453 2010-04-16  Doug Kwan  <dougkwan@google.com>
7454
7455         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
7456         missing left parenthesis.
7457
7458 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
7459
7460         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
7461         *btdi_rex64 using SWI48 mode iterator.
7462         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
7463         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
7464         *jcc_btdi_mask_rex64.
7465
7466 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
7467
7468         * double-int.h (tree_to_double_int): Convert to macro.
7469         * double-int.c (tree_to_double_int): Remove.
7470
7471 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
7472
7473         PR debug/43762
7474         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
7475         with want_address 2 and in case a single element list might be
7476         possible, call it again with want_address 0.
7477
7478 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
7479
7480         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
7481         case 'W' print operands for HI mode.
7482         * config/h8300/h8300.h (Y0, Y2) : New constraints.
7483         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
7484         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
7485         * config/h8300/predicate.md (bit_register_indirect_operand): New.
7486
7487         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
7488
7489         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
7490         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
7491         #xx:3 and #xx:4 mode.
7492
7493         * config/h8300/h8300.md (inverted load with HImode dest): Add
7494         support for H8300SX.
7495
7496         * config/h8300/predicate.md (bit_operand): Allow immediate values that
7497         satisfy 'U' constraint.
7498
7499 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7500
7501         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
7502         * configure: Regenerate.
7503         * config.in: Regenerate.
7504         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
7505         works.
7506
7507 2010-04-16  Richard Guenther  <rguenther@suse.de>
7508
7509         * tree.h (struct tree_decl_minimal): Move pt_uid ...
7510         (struct tree_decl_common): ... here.
7511         (DECL_PT_UID): Adjust.
7512         (SET_DECL_PT_UID): Likewise.
7513         (DECL_PT_UID_SET_P): Likewise.
7514
7515 2010-04-16  Richard Guenther  <rguenther@suse.de>
7516
7517         PR tree-optimization/43572
7518         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
7519         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
7520         * tree-flow.h (is_call_clobbered): Remove.
7521         * tree-flow-inline.h (is_call_clobbered): Likewise.
7522         * tree-dfa.c (dump_variable): Do not dump call clobber state.
7523         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
7524         (execute_return_slot_opt): Adjust.
7525         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
7526         check for call clobbered vars here.
7527         (find_tail_calls): Move tailcall verification to the
7528         proper place.
7529
7530 2010-04-16  Diego Novillo  <dnovillo@google.com>
7531
7532         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
7533
7534 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
7535
7536         PR target/40603
7537         * config/arm/arm.md (cbranchqi4): New pattern.
7538         * config/arm/predicates.md (const0_operand,
7539         cbranchqi4_comparison_operator): New predicates.
7540
7541 2010-04-16  Richard Guenther  <rguenther@suse.de>
7542
7543         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
7544         (dump_gimple_stmt): Likewise.
7545
7546 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
7547
7548         * recog.h (struct recog_data): New field is_operator.
7549         (struct insn_operand_data): New field is_operator.
7550         * recog.c (extract_insn): Set recog_data.is_operator.
7551         * genoutput.c (output_operand_data): Emit code to set the
7552         is_operator field.
7553         * reload.c (find_reloads): Use it rather than testing for an
7554         empty constraint string.
7555
7556         PR target/41514
7557         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
7558         If the previous insn is a cbranchsi4_insn with the same arguments,
7559         omit the compare instruction.
7560
7561         * config/arm/arm.md (addsi3_cbranch): If destination is a high
7562         register, inputs must be low registers and we need a low register
7563         scratch.  Handle alternative 2 like alternative 3.
7564
7565 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
7566
7567         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
7568         don't call get_addr on both.  If one expression is a VALUE and
7569         the other a REG, check VALUE's locs if the REG isn't among them.
7570
7571 2010-04-16  Christian Bruel  <christian.bruel@st.com>
7572
7573         * config/sh/sh.h (sh_frame_pointer_required): New function.
7574         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
7575         (flag_omit_frame_pointer) Set.
7576         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
7577         (rounded_frame_size): Adjust size with outgoing_args_size.
7578         (sh_set_return_address): Must return from stack pointer.
7579         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
7580         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
7581         (ACCUMULATE_OUTGOING_ARGS): Define.
7582         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
7583         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
7584
7585 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
7586
7587         PR target/43471
7588         * config/sh/sh.c (sh_legitimize_reload_address): Use
7589         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
7590         Remove a unneeded check for offset_base.
7591
7592 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
7593
7594         * configure: Regenerated.
7595
7596 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7597
7598         * config/s390/s390.c (s390_call_save_register_used): Switch back
7599         to HARD_REGNO_NREGS.
7600
7601 2010-04-15  Richard Guenther  <rguenther@suse.de>
7602
7603         * alias.c (alias_set_subset_of): Handle alias-set zero
7604         child properly.
7605
7606 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
7607             Julian Brown  <julian@codesourcery.com>
7608
7609         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
7610         alternatives according to use of high and low regs.
7611         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
7612         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
7613         optimizing for size on Thumb-2.
7614
7615 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
7616
7617         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
7618
7619 2010-04-15  Richard Guenther  <rguenther@suse.de>
7620
7621         * tree-ssa-structalias.c (struct variable_info): Add
7622         is_fn_info flag.
7623         (new_var_info): Initialize it.
7624         (dump_constraints): Support printing last added constraints.
7625         (debug_constraints): Adjust.
7626         (dump_constraint_graph): Likewise.
7627         (make_heapvar_for): Check for NULL cfun.
7628         (get_function_part_constraint): New function.
7629         (get_fi_for_callee): Likewise.
7630         (find_func_aliases): Properly implement IPA PTA constraints.
7631         (process_ipa_clobber): New function.
7632         (find_func_clobbers): Likewise.
7633         (insert_into_field_list_sorted): Remove.
7634         (create_function_info_for): Properly allocate vars for IPA mode.
7635         Do not use insert_into_field_list_sorted.
7636         (create_variable_info_for): Properly generate constraints for
7637         global vars in IPA mode.
7638         (dump_solution_for_var): Always dump the solution.
7639         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
7640         (find_what_var_points_to): Adjust.
7641         (pt_solution_set): Change.
7642         (pt_solution_ior_into): New function.
7643         (pt_solution_empty_p): Export.
7644         (pt_solution_includes_global): Adjust.
7645         (pt_solution_includes_1): Likewise.
7646         (pt_solutions_intersect_1): Likewise.
7647         (dump_sa_points_to_info): Check some invariants.
7648         (solve_constraints): Move constraint dumping ...
7649         (compute_points_to_sets): ... here.
7650         (ipa_pta_execute): ... and here.
7651         (compute_may_aliases): Do not re-compute points-to info
7652         locally if IPA info is available.
7653         (ipa_escaped_pt): New global var.
7654         (ipa_pta_execute): Properly implement IPA PTA.
7655         * tree-into-ssa.c (dump_decl_set): Support dumping
7656         decls not in referenced-vars.
7657         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
7658         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
7659         (dump_points_to_solution): Likewise.
7660         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
7661         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
7662         (remap_gimple_stmt): Reset call clobber/use information if necessary.
7663         (copy_decl_to_var): Copy DECL_PT_UID.
7664         (copy_result_decl_to_var): Likewise.
7665         * tree.c (make_node_stat): Initialize DECL_PT_UID.
7666         (copy_node_stat): Copy it.
7667         * tree.h (DECL_PT_UID): New macro.
7668         (SET_DECL_PT_UID): Likewise.
7669         (DECL_PT_UID_SET_P): Likewise.
7670         (struct tree_decl_minimal): Add pt_uid member.
7671         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
7672         (pt_solution_empty_p): Declare.
7673         (pt_solution_set): Adjust.
7674         (ipa_escaped_pt): Declare.
7675         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
7676         * gimple-pretty-print.c (pp_points_to_solution): New function.
7677         (dump_gimple_call): Dump call clobber/use information.
7678         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
7679         * tree-pass.h (TDF_ALIAS): New dump option.
7680         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
7681         * doc/invoke.texi (-fipa-pta): Update documentation.
7682
7683 2010-04-15  Richard Guenther  <rguenther@suse.de>
7684
7685         * Makefile.in (OBJS-common): Add gimple-fold.o.
7686         (gimple-fold.o): New rule.
7687         * tree.h (maybe_fold_offset_to_reference,
7688         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
7689         prototypes ...
7690         * gimple.h: ... here.
7691         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
7692         may_propagate_address_into_dereference): Move prototypes ...
7693         * gimple.h: ... here.
7694         * tree-ssa-ccp.c (get_symbol_constant_value,
7695         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
7696         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
7697         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
7698         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
7699         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
7700         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
7701         gimplify_and_update_call_from_tree): Move ...
7702         * gimple-fold.c: ... here.  New file.
7703         (ccp_fold_builtin): Rename to ...
7704         (gimple_fold_builtin): ... this.
7705         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
7706
7707 2010-04-15  Richard Guenther  <rguenther@suse.de>
7708
7709         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
7710         fit_double_type, force_fit_type_double, add_double_with_sign,
7711         neg_double, mul_double_with_sign, lshift_double, rshift_double,
7712         lrotate_double, rrotate_double, div_and_round_double): Move ...
7713         * double-int.c: ... here.
7714         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
7715         add_double, neg_double, mul_double_with_sign, mul_double,
7716         lshift_double, rshift_double, lrotate_double, rrotate_double,
7717         div_and_round_double): Move prototypes ...
7718         * double-int.h: ... here.
7719
7720 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
7721
7722         PR target/43742
7723         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
7724         matching constraints to ensure inputs match the output.
7725
7726 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
7727
7728         PR target/43742
7729         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
7730         in an input-only operand.
7731
7732 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
7733
7734         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
7735         (double_int_not, double_int_lshift, double_int_rshift): Declare.
7736         (double_int_negative_p): Convert to static inline function.
7737         * double-int.c (double_int_lshift, double_int_lshift): New functions.
7738         (double_int_negative_p): Remove.
7739         * tree.h (lshift_double, rshift_double):
7740         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
7741         * fold-const.c (fold_convert_const_int_from_real,
7742         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
7743         (lshift_double): Change type of arith argument to bool.
7744         (rshift_double): Change type of arith argument to bool. Correct
7745         comment.
7746         * expmed.c (mask_rtx, lshift_value): (Ditto.).
7747
7748 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
7749
7750         PR target/21803
7751         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
7752         at the start and end of the then/else blocks, and omit them from the
7753         conversion.
7754         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
7755         argument; all callers changed.  Pass zero to old_insns_match_p instead.
7756         (flow_find_head_matching_sequence): New function.
7757         (old_insns_match_p): Check REG_EH_REGION notes for calls.
7758         * basic-block.h (flow_find_cross_jump,
7759         flow_find_head_matching_sequence): Declare functions.
7760
7761 2010-04-14  Jason Merrill  <jason@redhat.com>
7762
7763         PR c++/36625
7764         * c-common.c (attribute_takes_identifier_p): New fn.
7765         * c-common.h: Declare it.
7766
7767 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7768
7769         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
7770         splitter condition.
7771         (*udivmod<mode>4): Ditto.
7772
7773 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7774
7775         * config/i386/i386.md (maxmin_int): Rename code attribute from
7776         maxminiprefix and update all users.
7777         (maxmin_float): Ditto from maxminfprefix.
7778         (logic): Ditto from logicprefix.
7779         (absneg_mnemonic): Ditto from absnegprefix.
7780         * config/i386/mmx.md: Update all users of maxminiprefix,
7781         maxminfprefix and logicprefix for rename.
7782         * config/i386/sse.md: Ditto.
7783         * config/i386/sync.md (sync_<code><mode>): Update for
7784         logicprefix rename.
7785
7786 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7787
7788         PR 42966
7789         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
7790         warnings converted to errors.
7791
7792 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7793
7794         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
7795         used insn_type variable.
7796         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
7797         to avoid set-but-not-used warning.
7798
7799 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7800
7801         * df-core.c (df_ref_debug): Change format string placeholder
7802         from 0x%x to %#x.
7803         * dwarf2asm.c (dw2_asm_output_data_raw,
7804         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
7805         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
7806         * dwarf2out.c (output_cfi, output_cfi_directive,
7807         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
7808         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
7809         Ditto.
7810         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
7811         * print-rtl.c (print_rtx): Ditto.
7812
7813 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
7814
7815         PR middle-end/42694
7816         * builtins.c (expand_builtin_pow_root): New function to expand pow
7817         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
7818         series of sqrt and cbrt calls under -ffast-math.
7819         (expand_builtin_pow): Call it.
7820
7821 2010-04-14  Michael Matz  <matz@suse.de>
7822
7823         PR tree-optimization/42963
7824         * tree-cfg.c (touched_switch_bbs): New static variable.
7825         (group_case_labels_stmt): New function broken out from ...
7826         (group_case_labels): ... here, use the above.
7827         (start_recording_case_labels): Allocate touched_switch_bbs.
7828         (end_recording_case_labels): Deallocate it, call
7829         group_case_labels_stmt.
7830         (gimple_redirect_edge_and_branch): Remember index of affected BB.
7831
7832 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7833
7834         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
7835         from insn template.
7836
7837 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
7838
7839         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
7840
7841 2010-04-13  Jan Hubicka  <jh@suse.cz>
7842
7843         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
7844         of optimized out static functions.
7845         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
7846         cost computation.  Also sanity check for overflows.
7847         (update_caller_keys): Update cgraph_edge_badness call; properly
7848         update fibheap and sanity check that it is up to date.
7849         (add_new_edges_to_heap): Update cgraph_edge_badness.
7850         (cgraph_decide_inlining_of_small_function): Likewise;
7851         add sanity checking that badness in heap is up to date;
7852         improve dumping of reason; Update badness of calls to the
7853         offline copy of function currently inlined; dump badness
7854         of functions not inlined because of unit growth limits.
7855
7856 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
7857
7858         PR middle-end/32628
7859         * c-common.c (pointer_int_sum): Disregard overflow that occured only
7860         because of sign-extension change when converting to sizetype here...
7861         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
7862
7863         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
7864         the folding to constants.  Remove redundant final conversion.
7865         (fold_binary) <associate>: Do not associate if the re-association of
7866         constants alone overflows.
7867         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
7868         to the end of the list.
7869         (multiple_of_p) <COND_EXPR>: New case.
7870
7871 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7872
7873         * opt-functions.awk (opt_sanitized_name): New.
7874         (opt_enum): New.
7875         * optc-gen.awk: Use it
7876         * opth-gen.awk: Use it.
7877
7878 2010-04-13  Martin Jambor  <mjambor@suse.cz>
7879
7880         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
7881         (sra_modify_assign): Delete stmts loading dead data even if racc has no
7882         children.  Call replace_uses_with_default_def_ssa_name to handle
7883         SSA_NAES on lhs.
7884
7885 2010-04-13  Michael Matz  <matz@suse.de>
7886
7887         PR middle-end/43730
7888         * builtins.c (expand_builtin_interclass_mathfn): Also create
7889         a register if the predicate doesn't match.
7890
7891 2010-04-13  Diego Novillo  <dnovillo@google.com>
7892
7893         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
7894         * c-pch.c: Include timevar.h.
7895         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
7896         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
7897         * ggc-common.c: Include timevar.h.
7898         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
7899         * timevar.def (TV_PCH_SAVE): Define.
7900         (TV_PCH_CPP_SAVE): Define.
7901         (TV_PCH_PTR_REALLOC): Define.
7902         (TV_PCH_PTR_SORT): Define.
7903         (TV_PCH_RESTORE): Define.
7904         (TV_PCH_CPP_RESTORE): Define.
7905
7906 2010-04-13  Michael Matz  <matz@suse.de>
7907
7908         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
7909         into MINUS_EXPRs.
7910         (can_reassociate_p): New function.
7911         (break_up_subtract_bb, reassociate_bb): Use it.
7912
7913 2010-04-13  Richard Guenther  <rguenther@suse.de>
7914
7915         PR bootstrap/43737
7916         * builtins.c (c_readstr): Fix assert.
7917
7918 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
7919
7920         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
7921         when generating cltd insn.
7922
7923         (*ashl<mode>3_1): Remove special handling for register operand 2.
7924         (*ashlsi3_1_zext): Ditto.
7925         (*ashlhi3_1): Ditto.
7926         (*ashlhi3_1_lea): Ditto.
7927         (*ashlqi3_1): Ditto.
7928         (*ashlqi3_1_lea): Ditto.
7929         (*<shiftrt_insn><mode>3_1): Ditto.
7930         (*<shiftrt_insn>si3_1_zext): Ditto.
7931         (*<shiftrt_insn>qi3_1_slp): Ditto.
7932         (*<rotate_insn><mode>3_1): Ditto.
7933         (*<rotate_insn>si3_1_zext): Ditto.
7934         (*<rotate_insn>qi3_1_slp): Ditto.
7935
7936 2010-04-13  Richard Guenther  <rguenther@suse.de>
7937
7938         * tree-ssa-structalias.c (callused_id): Remove.
7939         (call_stmt_vars): New.
7940         (get_call_vi): Likewise.
7941         (lookup_call_use_vi): Likewise.
7942         (lookup_call_clobber_vi): Likewise.
7943         (get_call_use_vi): Likewise.
7944         (get_call_clobber_vi): Likewise.
7945         (make_transitive_closure_constraints): Likewise.
7946         (handle_const_call): Adjust to do per-call call-used handling.
7947         (handle_pure_call): Likewise.
7948         (find_what_var_points_to): Remove general callused handling.
7949         (init_base_vars): Likewise.
7950         (init_alias_vars): Initialize call_stmt_vars.
7951         (compute_points_to_sets): Process call-used and call-clobbered
7952         vars for call statements.
7953         (delete_points_to_sets): Free call_stmt_vars.
7954
7955 2010-04-13  Richard Guenther  <rguenther@suse.de>
7956
7957         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
7958         Only add RW dependence for dependence distance zero.
7959         Adjust maximal vectorization factor according to dependences.
7960         Move alignment handling ...
7961         (vect_find_same_alignment_drs): ... here.  New function.
7962         (vect_analyze_data_ref_dependences): Adjust.
7963         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
7964         (vect_analyze_data_refs): Adjust minimal vectorization factor
7965         according to data references.
7966         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
7967         dependences before determining the vectorization factor.
7968         Analyze alignment after determining the vectorization factor.
7969         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
7970         dependences before alignment.
7971         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
7972         Adjust prototype.
7973         (vect_analyze_data_refs): Likewise.
7974         (MAX_VECTORIZATION_FACTOR): New define.
7975
7976 2010-04-13  Duncan Sands  <baldrick@free.fr>
7977
7978         * except.h (lang_eh_type_covers): Remove.
7979         * except.c (lang_eh_type_covers): Likewise.
7980
7981 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7982             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7983
7984         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
7985         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
7986         UNITS_PER_LONG where it is ABI relevant.
7987         (s390_return_addr_rtx): Likewise.
7988         (s390_back_chain_rtx): Likewise.
7989         (s390_frame_area): Likewise.
7990         (s390_frame_info): Likewise.
7991         (s390_initial_elimination_offset): Likewise.
7992         (save_gprs): Likewise.
7993         (s390_emit_prologue): Likewise.
7994         (s390_emit_epilogue): Likewise.
7995         (s390_function_arg_advance): Likewise.
7996         (s390_function_arg): Likewise.
7997         (s390_va_start): Likewise.
7998         (s390_gimplify_va_arg): Likewise.
7999         (s390_function_profiler): Likewise.
8000         (s390_optimize_prologue): Likewise.
8001         (s390_rtx_costs): Likewise.
8002         (s390_secondary_reload): Likewise.
8003         (s390_promote_function_mode): Likewise.
8004         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
8005         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
8006         registers available.
8007         (s390_unwind_word_mode): New function.
8008         (s390_function_value): Split 64 bit values into register pair if
8009         used as return value.
8010         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
8011         function call parameters.  Handle parallels.
8012         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
8013         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
8014         (DWARF_CIE_DATA_ALIGNMENT): New macro.
8015         (s390_expand_setmem): Remove unused variable src_addr.
8016         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
8017         deal with 64 bit registers.
8018         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
8019         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
8020         (UNITS_PER_LONG): New macro.
8021         * libjava/include/s390-signal.h: Define extended ucontext
8022         structure containing the upper halfs of the 64 bit registers.
8023
8024 2010-04-13  Simon Baldwin  <simonb@google.com>
8025
8026         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
8027
8028 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
8029
8030         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
8031         rvalue on the RHS if the LHS is of a non-renamable type.
8032         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
8033
8034 2010-04-13  Matthias Klose  <doko@ubuntu.com>
8035
8036         * gcc.c (cc1_options): Handle -iplugindir before processing
8037         the cc1 spec. Only add -iplugindir once.
8038         (cpp_unique_options): Add -iplugindir option if -fplugin* options
8039         found.
8040         * common.opt (iplugindir): Remove `Separate' property, initialize.
8041         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
8042         option.
8043         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
8044         (distclean): Remove plugin dir.
8045         * doc/invoke.texi: Document -iplugindir.
8046
8047 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
8048
8049         * doc/plugins.texi (Loading Plugins): Document short
8050         -fplugin=foo option.
8051         (Plugin API): Mention default_plugin_dir_name function.
8052
8053         * gcc.c (find_file_spec_function): Add new declaration.
8054         (static_spec_func): Use it for "find-file".
8055         (find_file_spec_function): Add new function.
8056         (cc1_options): Add -iplugindir option if -fplugin* options found.
8057
8058         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
8059
8060         * plugin.c (add_new_plugin): Updated comment, and handle short
8061         plugin name.
8062         (default_plugin_dir_name): Added new function.
8063
8064         * common.opt (iplugindir): New option to set the plugin directory.
8065
8066 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
8067
8068         * config/i386/i386.md (any_rotate): New code iterator.
8069         (rotate_insn): New code attribute.
8070         (rotate): Ditto.
8071         (SWIM124): New mode iterator.
8072         (<rotate_insn>ti3): New expander.
8073         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
8074         any_rotate code iterator.
8075         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
8076         using any_rotate code iterator and SWIM124 mode iterator.
8077         (ix86_rotlti3): New insn_and_split pattern.
8078         (ix86_rotrti3): Ditto.
8079         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
8080         ix86_rotl{di,ti}3 patterns.
8081         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
8082         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
8083         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
8084         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
8085         code iterator and SWI mode iterator.
8086         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
8087         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
8088         code iterator.
8089         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
8090         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
8091         (bswap rotatert splitter): Add splitter.
8092         (bswap splitter): Macroize splitter using any_rotate code iterator.
8093         Add insn predicate to split only for TARGET_USE_XCHGB or when
8094         optimizing function for size.
8095
8096 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
8097
8098         * config/pa/pa.c (emit_move_sequence): Remove use of
8099         deleted variable flag_argument_noalias.
8100
8101 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8102
8103         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
8104         configurations.
8105         Add to unsupported targets list.
8106         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
8107         sparc*-sun-solaris2.[567]* from target lists.
8108         * configure: Regenerate.
8109         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
8110         removal.
8111         Remove Solaris 7 patch references.
8112         (Specific, sparc-sun-solaris2.7): Removed.
8113         (sparc-sun-solaris2*): Update Solaris 7 example.
8114         (sparc64-*-solaris2*): Likewise.
8115
8116 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8117
8118         * config.build (alpha*-dec-osf4*): Remove.
8119         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
8120         of obsolete configurations.
8121         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
8122         support.
8123         * config/alpha/t-osf4: Renamed to ...
8124         * config/alpha/t-osf5: ... this.
8125         * config/alpha/osf.h: Renamed to ...
8126         * config/alpha/osf5.h: ... this.
8127         Merged old osf5.h contents.
8128         Update comments.
8129         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
8130         (EXTRA_SPECS): Removed.
8131         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
8132         reflect removal of Tru64 UNIX V4.0/V5.0 support.
8133         Document that.
8134
8135 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8136
8137         * doc/contrib.texi (Contributors, Rainer Orth): Update.
8138
8139 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
8140
8141         PR/43702
8142         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
8143         __thiscall convention.
8144
8145 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
8146
8147         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
8148         orig_base.
8149         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
8150
8151 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
8152
8153         * function.c (assign_parms_initialize_all): Add unused attribute
8154         to fntype.
8155
8156 2010-04-12  Richard Guenther  <rguenther@suse.de>
8157
8158         * gsstruct.def (GSS_CALL): New.
8159         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
8160         * gimple.h: Include tree-ssa-alias.h.
8161         (struct gimple_statement_call): New.
8162         (union gimple_statement_struct_d): Add gimple_call member.
8163         (gimple_call_reset_alias_info): Declare.
8164         (gimple_call_use_set): New function.
8165         (gimple_call_clobber_set): Likewise.
8166         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
8167         * gimple.c (gimple_call_reset_alias_info): New function.
8168         (gimple_build_call_1): Call it.
8169         * lto-streamer-in.c (input_gimple_stmt): Likewise.
8170         * tree-inline.c (remap_gimple_stmt): Likewise.
8171         (expand_call_inline): Remove callused handling.
8172         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
8173         * tree-dfa.c (dump_variable): Likewise.
8174         * tree-parloops.c (parallelize_loops): Likewise.
8175         * tree-ssa.c (init_tree_ssa): Likewise.
8176         (delete_tree_ssa): Likewise.
8177         * tree-flow-inline.h (is_call_used): Remove.
8178         * tree-flow.h (struct gimple_df): Remove callused member.
8179         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
8180         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
8181         (ref_maybe_used_by_call_p_1): Simplify.
8182         (call_may_clobber_ref_p_1): Likewise.
8183         * tree-ssa-structalias.c (compute_points_to_sets): Set
8184         the call stmt used and clobbered sets.
8185         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
8186         (find_tail_calls): Verify the tail call.
8187
8188 2010-04-12  Richard Guenther  <rguenther@suse.de>
8189
8190         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
8191         single-iteration always-inline inlining.
8192         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
8193         (cgraph_decide_inlining): Do not handle always-inline specially.
8194         (try_inline): Remove always-inline cycle detection special case.
8195         Do not recurse on always-inlines.
8196         (cgraph_early_inlining): Do not iterate if not optimizing.
8197         (cgraph_gate_early_inlining): remove.
8198         (pass_early_inline): Run unconditionally.
8199         (gate_cgraph_decide_inlining): New function.
8200         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
8201         not inlining or optimizing.
8202         (cgraph_decide_inlining_of_small_functions): Also consider
8203         always-inline functions.
8204         (cgraph_default_inline_p): Return true for nodes which should
8205         disregard inline limits.
8206         (estimate_function_body_sizes): Assume zero size and time for
8207         nodes which are marked as disregarding inline limits.
8208         (cgraph_decide_recursive_inlining): Do not perform recursive
8209         inlining on always-inline nodes.
8210
8211 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
8212
8213         PR bootstrap/43699
8214         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
8215         for exprs satisfying handled_component_p.
8216
8217 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
8218
8219         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
8220         non-constant aggregate elements.
8221
8222         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
8223         is a real initialization.
8224
8225 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
8226
8227         PR c/36774
8228         * c-decl.c (start_function): Move forward check for nested function.
8229
8230 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
8231
8232         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
8233         * config/sh/sh.c: Include reload.h.
8234         (sh_legitimize_reload_address): New.
8235         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
8236         sh_legitimize_reload_address.
8237
8238 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
8239
8240         * config/sh/sh.md (*movqi_pop): New insn pattern.
8241         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
8242
8243 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
8244
8245         * config/i386/i386.md (any_shiftrt): New code iterator.
8246         (shiftrt_insn): New code attribute.
8247         (shiftrt): Ditto.
8248         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
8249         using any_shiftrt code iterator.
8250         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
8251         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
8252         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
8253         pattern from corresponding peephole2 patterns.
8254         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
8255         using any_shiftrt code iterator.
8256         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
8257         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
8258         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
8259         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
8260         *{ashr,lshr}<mode>3_cmp_zext.
8261         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
8262
8263 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
8264
8265         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
8266         scratch register.
8267         (*lshr<mode>3_cconly): Ditto.
8268
8269 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
8270
8271         * config/i386/i386.md (lshr<mode>3): Macroize expander from
8272         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
8273         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
8274         pattern from *lshr{di,ti}3_1 and corresponding splitters using
8275         DWI mode iterator.
8276         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
8277         from corresponding peephole2 patterns.
8278         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
8279         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
8280         and *lshrdi3_1_rex64 using SWI mode iterator.
8281         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
8282         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
8283         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
8284         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
8285         and *lshrdi3_cmp_rex64 using SWI mode iterator.
8286         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
8287         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
8288         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
8289         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
8290         SWI mode iterator.
8291
8292 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
8293
8294         * config/i386/i386.md (ashr<mode>3): Macroize expander from
8295         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
8296         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
8297         pattern from *ashr{di,ti}3_1 and corresponding splitters using
8298         DWI mode iterator.
8299         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
8300         from corresponding peephole2 patterns.
8301         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
8302         (ashrsi3_cvt): Rename from ashrsi3_31.
8303         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
8304         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
8305         and x86_64_shift_adj_3 using SWI48 mode iterator.
8306         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
8307         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
8308         and *ashrdi3_1_rex64 using SWI mode iterator.
8309         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
8310         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
8311         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
8312         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
8313         and *ashrdi3_cmp_rex64 using SWI mode iterator.
8314         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
8315         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
8316         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
8317         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
8318         SWI mode iterator.
8319         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
8320         * config/i386/i386.c (ix86_split_ashr): Update for renamed
8321         x86_shift<mode>_adj_3 expanders.
8322
8323 2010-04-10  Wei Guozhi  <carrot@google.com>
8324
8325         PR target/42601
8326         * config/arm/arm.c (arm_pic_static_addr): New function.
8327         (legitimize_pic_address): Call arm_pic_static_addr when it detects
8328         a static symbol.
8329         (arm_output_addr_const_extra): Output expression for new pattern.
8330         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
8331
8332 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
8333
8334         * ira-costs.c (record_reg_classes): Ignore alternatives that are
8335         not enabled.
8336
8337         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
8338         * web.c: Include "insn-config.h" and "recog.h".
8339         (union_match_dups): New function.
8340         (web_main): Call it.
8341         (union_defs): Don't try to recognize match_dups.
8342
8343         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
8344         if doing so would replace the entire pattern.
8345
8346 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
8347
8348         PR target/43707
8349         PR target/43709
8350         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
8351         and splitter pattern.  Change splitter operand 1 predicate to
8352         nonmemory_operand.
8353
8354 2010-04-09  Martin Jambor  <mjambor@suse.cz>
8355
8356         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
8357         lattices are addresses of CONST_DECLs with the same initial value.
8358         (ipcp_print_all_lattices): Print values of CONST_DECLs.
8359         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
8360
8361 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
8362             Bernd Schmidt  <bernds@codesourcery.com>
8363
8364         * loop-invariant.c (replace_uses): New static function.
8365         (move_invariant_reg): Use it to ensure we can replace the uses.
8366
8367 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
8368
8369         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
8370         function template.
8371         (picochip_override_options): Enable section anchors only above -O1.
8372         (picochip_reorg): Fixed a couple of build warnings.
8373
8374 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8375
8376         * configure.ac (plugin -rdynamic test): Log result.
8377         * configure: Regenerate.
8378         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
8379         (RDYNAMIC_SPEC): Define.
8380         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
8381
8382 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8383
8384         * configure.ac: Determine Sun ld version numbers.
8385         (comdat_group): Restrict GNU ld version checks to gld.
8386         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
8387         (enable_comdat): Support --enable-comdat.
8388         * configure: Regenerate.
8389         * doc/install.texi (Configuration): Document --enable-comdat.
8390
8391 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8392
8393         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
8394         * config/sol2-gld.h: ... here.
8395         * config.gcc (sparc*-*-solaris2*): Reflect this.
8396         (i[34567]86-*-solaris2*): Use it.
8397
8398 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
8399
8400         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
8401         setup_clocks_p.
8402         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
8403
8404 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8405
8406         PR 42965
8407         * diagnostic.c (diagnostic_initialize): Initialize
8408         some_warnings_are_errors.
8409         (diagnostic_finish): New.
8410         (diagnostic_action_after_output): Call it before exiting.
8411         (diagnostic_report_diagnostic): Do not print message here. Set
8412         some_warnings_are_errors.
8413         * diagnostic.h (diagnostic_context): Delete
8414         issue_warnings_are_errors_message. Add some_warnings_are_errors.
8415         (diagnostic_finish): Declare.
8416         * toplev.c (toplev_main): Call it before exit.
8417
8418 2010-04-09  Jason Merrill  <jason@redhat.com>
8419
8420         PR c++/42623
8421         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
8422         for incomplete type.
8423
8424         PR c++/41788
8425         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
8426         based on a warning flag.
8427
8428 2010-04-09  Richard Guenther  <rguenther@suse.de>
8429
8430         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
8431
8432 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
8433
8434         PR bootstrap/43684
8435         * varasm.c (default_assemble_visibility): Wrap vars that are
8436         set, but unused, by targets without GAS.
8437         * config/rs6000/rs6000.c (paired_emit_vector_compare):
8438         Remove set, but unused, vars.
8439         (rs6000_legitimize_tls_address): Likewise.
8440         (altivec_expand_dst_builtin): Likewise.
8441         * config/darwin.c (machopic_classify_symbol): Likewise.
8442         (machopic_indirection_name): Likewise.
8443
8444 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
8445
8446         * config/i386/i386.md (DWI): New mode iterator.
8447         (S): New mode attribute.
8448         (shift_operand): Ditto.
8449         (shift_immediate_operand): Ditto.
8450         (ashl_input_operand): Ditto.
8451         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
8452         using SDWIM mode iterator.
8453         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
8454         pattern from *ashl{di,ti}3_1 and corresponding splitters using
8455         DWI mode iterator.
8456         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
8457         from corresponding peephole2 patterns.
8458         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
8459         and x86_64_shift_adj_1 using SWI48 mode iterator.
8460         (x86_shift<mode>_adj_2): Ditto.
8461         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
8462         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
8463         using SWI48 mode iterator.
8464         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
8465         *ashldi3_cmp_rex64 using SWI mode iterator.
8466         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
8467         *ashldi3_cconly_rex64 using SWI mode iterator.
8468         * config/i386/i386.c (ix86_split_ashl): Update for renamed
8469         x86_shift<mode>_adj_{1,2}.
8470         (ix86_split_ashr): Ditto.
8471         (ix86_split_lshr): Ditto.
8472
8473 2010-04-09  Richard Guenther  <rguenther@suse.de>
8474
8475         * target.h (builtin_conversion): Pass in input and output types.
8476         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
8477         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
8478         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
8479         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
8480
8481         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
8482         Handle AVX modes.
8483         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
8484
8485 2010-04-09  Richard Guenther  <rguenther@suse.de>
8486
8487         PR target/43152
8488         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
8489
8490 2010-04-09  Richard Guenther  <rguenther@suse.de>
8491
8492         * tree-vectorizer.h (struct _stmt_vec_info): Document
8493         that vectype is the type of the LHS.
8494         (supportable_widening_operation, supportable_narrowing_operation):
8495         Get both input and output vector types as arguments.
8496         (vect_is_simple_use_1): Declare.
8497         (get_same_sized_vectype): Likewise.
8498         * tree-vect-loop.c (vect_determine_vectorization_factor):
8499         Set STMT_VINFO_VECTYPE to the vector type of the def.
8500         (vectorizable_reduction): Adjust.
8501         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
8502         Adjust.  Specify the output vector type.
8503         (vect_pattern_recog_1): Adjust.
8504         * tree-vect-stmts.c (get_same_sized_vectype): New function.
8505         (vectorizable_call): Adjust.
8506         (vectorizable_conversion): Likewise.
8507         (vectorizable_operation): Likewise.
8508         (vectorizable_type_demotion): Likewise.
8509         (vectorizable_type_promotion): Likewise.
8510         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
8511         the def.
8512         (vect_is_simple_use_1): New function.
8513         (supportable_widening_operation): Get both input and output
8514         vector types.
8515         (supportable_narrowing_operation): Likewise.
8516         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
8517
8518 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
8519
8520         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
8521         __thiscall and _thiscall as predefined macros.
8522         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
8523         thiscall attribute handling.
8524         (ix86_comp_type_attributes): Likewise.
8525         (ix86_function_regparm): Likewise.
8526         (ix86_return_pops_args): Likewise.
8527         (init_cumulative_args): Likewise.
8528         (find_drap_reg): Likewise.
8529         (ix86_static_chain): Likewise.
8530         (x86_this_parameter): Likewise.
8531         (x86_output_mi_thunk): Likewise.
8532         (ix86_attribute_table): Add description for thiscall attribute.
8533         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
8534         * doc/extend.texi: Add documentation for thiscall.
8535
8536 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8537
8538         PR c++/28584
8539         * c.opt (Wint-to-pointer-cast): Available in C++.
8540         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
8541
8542 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
8543
8544         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
8545         * calls.c (expand_call): Pass the function type to aggregate_value_p.
8546         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
8547         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
8548         function type instead.  Reorder and simplify checks.
8549
8550         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
8551
8552 2010-04-08  Jing Yu  <jingyu@google.com>
8553             Zdenek Dvorak  <ook@ucw.cz>
8554
8555         PR tree-optimization/42720
8556         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
8557         loop unswitch conditions here from ...
8558         (tree_unswitch_single_loop): ... here.
8559
8560 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
8561
8562         * tree-if-conv.c: Fix comments and simplify logic.
8563
8564 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
8565
8566         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
8567         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
8568         (main_tree_if_conversion): Update call to tree_if_conversion.
8569
8570 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8571
8572         PR 42485
8573         * doc/invoke.texi (-b,-V): Delete.
8574         * doc/tm.texi: Do not mention -b.
8575         * gcc.c (display_help): Delete -b and -V.
8576         (process_command): Delete -b and -V.
8577         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
8578
8579 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
8580             Wolfgang Gellerich  <gellerich@de.ibm.com>
8581
8582         Implement target hook for loop unrolling
8583         * target.h (loop_unroll_adjust): Add a new target hook function.
8584         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
8585         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
8586         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
8587         (s390_loop_unroll_adjust): Implement the new target hook for s390.
8588         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
8589         target hook.
8590         (decide_unroll_stupid): Likewise.
8591
8592 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8593
8594         PR target/43643
8595         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
8596
8597 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8598
8599         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
8600         (Specific, *-*-solaris2*): Likewise.
8601         Don't prefer Sun as over GNU as.
8602
8603 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
8604
8605         * config/s390/s390.c (override_options): Adjust the z10 defaults
8606         for max-unroll-times, max-completely-peeled-insns
8607         and max-completely-peel-times.
8608
8609 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8610
8611         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
8612         instructions for z10.
8613         (s390_expand_setmem): Likewise.
8614         (s390_expand_cmpmem): Likewise.
8615
8616 2010-04-08  Richard Guenther  <rguenther@suse.de>
8617
8618         PR tree-optimization/43679
8619         * tree-ssa-pre.c (eliminate): Only propagate copies.
8620
8621 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
8622
8623         PR bootstrap/43681
8624         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
8625         set but not used variable warning.
8626
8627 2010-04-08  Wei Guozhi  <carrot@google.com>
8628
8629         PR target/41653
8630         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
8631         (arm_size_rtx_costs): Call the new function when optimized for size.
8632
8633 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
8634
8635         PR debug/43670
8636         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
8637         op0 is not a MEM, just return NULL instead of assertion
8638         failure.
8639         (discover_nonconstant_array_refs): Don't walk debug stmts.
8640
8641 2010-04-08  Doug Kwan  <dougkwan@google.com>
8642
8643         * configure.ac: Recognize gold and do not use its version number
8644         to test ld features.
8645         * configure: Regenerate.
8646
8647 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
8648
8649         PR middle-end/40815
8650         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
8651         (negate_value): Move code to push elements to broken_up_substracts ...
8652         (eliminate_plus_minus_pair): ... here.  Push operands that have no
8653         negative pair to plus_negates.
8654         (repropagate_negates, init_reassoc, fini_reassoc): Update.
8655
8656 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8657
8658         * doc/install.texi (Configuration): Move description of
8659         --enable-lto, --with-libelf*, --enable-gold from Java section to
8660         general section.
8661
8662         * doc/generic.texi (Working with declarations)
8663         (Function Properties, C and C++ Trees): Fix typos.
8664         * doc/sourcebuild.texi (Top Level): Likewise.
8665
8666 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
8667
8668         PR c/18624
8669         * tree.h (DECL_READ_P): Define.
8670         (struct tree_decl_common): Add decl_read_flag.
8671         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
8672         a set but not used warning.
8673         (merge_decls): Merge DECL_READ_P flag.
8674         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
8675         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
8676         * c-common.c (handle_used_attribute, handle_unused_attribute):
8677         Likewise.
8678         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
8679         New prototypes.
8680         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
8681         New functions.
8682         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
8683         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
8684         c_parser_binary_expression, c_parser_cast_expression,
8685         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
8686         Call default_function_array_read_conversion instead of
8687         default_function_array_conversion where needed.
8688         (c_parser_unary_expression, c_parser_conditional_expression,
8689         c_parser_postfix_expression_after_primary, c_parser_initelt):
8690         Likewise.  Call mark_exp_read where needed.
8691         (c_parser_statement_after_labels, c_parser_asm_operands,
8692         c_parser_typeof_specifier, c_parser_sizeof_expression,
8693         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
8694         where needed.
8695         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
8696         New.
8697         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
8698         (warn_unused_but_set_parameter): Default to warn_unused
8699         && extra_warnings.
8700         * doc/invoke.texi: Document -Wunused-but-set-variable and
8701         -Wunused-but-set-parameter.
8702
8703         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
8704         used count variable.
8705         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
8706         when operandN variables aren't used in the body of the expander
8707         or splitter.
8708         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
8709         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
8710         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
8711         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
8712         FOR_EACH_IMM_USE_ON_STMT): Likewise.
8713         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
8714         * tree.c (PROCESS_ARG): Likewise.
8715
8716 2010-04-07  Simon Baldwin  <simonb@google.com>
8717
8718         * diagnostic.h (diagnostic_override_option_index): New macro to
8719         set a diagnostic's option_index.
8720         * c-tree.h (c_cpp_error): Add warning reason argument.
8721         * opts.c (_warning_as_error_callback): New.
8722         (register_warning_as_error_callback): Store callback for
8723         warnings enabled via enable_warning_as_error.
8724         (enable_warning_as_error): Call callback, minor code tidy.
8725         * opts.h (register_warning_as_error_callback): Declare.
8726         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
8727         response to -Werror=.
8728         (c_common_init_options): Register warning_as_error_callback in opts.c.
8729         * common.opt: Add -Wno-cpp option.
8730         * c-common.c (struct reason_option_codes_t): Map cpp warning
8731         reason codes to gcc option indexes.
8732         * (c_option_controlling_cpp_error): New function, lookup the gcc
8733         option index for a cpp warning reason code.
8734         * (c_cpp_error): Add warning reason argument, call
8735         c_option_controlling_cpp_error for diagnostic_override_option_index.
8736         * doc/invoke.texi: Document -Wno-cpp.
8737
8738 2010-04-07  Richard Guenther  <rguenther@suse.de>
8739
8740         * ipa-reference.c (mark_load): Use get_base_address.
8741         (mark_store): Likewise.
8742
8743         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
8744         inserting GIMPLE_NOPs into the IL.
8745         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8746         Explicitly strip handled components and indirect references.
8747
8748         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
8749         folding address expressions.
8750         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
8751         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
8752         operand_equal_p to compare decls.
8753         (ptr_deref_may_alias_decl_p): Likewise.
8754         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
8755         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
8756         Handle reversed comparison ops.
8757         * tree-sra.c (asm_visit_addr): Use get_base_address.
8758         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
8759         * ipa-reference.c (mark_address): Use get_base_address.
8760
8761 2010-04-07  Richard Guenther  <rguenther@suse.de>
8762
8763         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
8764         Propagate constants everywhere.
8765
8766 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
8767
8768         PR debug/43516
8769         * tree.c (MAX_INT_CACHED_PREC): Define.
8770         (nonstandard_integer_type_cache): New array.
8771         (build_nonstandard_integer_type): Cache results for precision
8772         <= MAX_INT_CACHED_PREC.
8773
8774 2010-04-07  Richard Guenther  <rguenther@suse.de>
8775
8776         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
8777         -fargument-noalias-global, -fargument-noalias-anything): Remove.
8778         * common.opt: Likewise.
8779         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
8780         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
8781         (nonoverlapping_memrefs_p): Likewise.
8782         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
8783         * opts.c (common_handle_option): Handle OPT_fargument_alias,
8784         OPT_fargument_noalias, OPT_fargument_noalias_anything and
8785         OPT_fargument_noalias_global for backward compatibility.
8786
8787 2010-04-07  Richard Guenther  <rguenther@suse.de>
8788
8789         PR tree-optimization/43270
8790         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
8791         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
8792         * tree-ssa-pre.c (phi_translate_1): Adjust.
8793         (fully_constant_expression): Split out vn_reference handling to ...
8794         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
8795         Fold reads from constant strings.
8796         (vn_reference_lookup): Handle fully constant references.
8797         (vn_reference_lookup_pieces): Likewise.
8798         * Makefile.in (expmed.o-warn): Add -Wno-error.
8799
8800 2010-04-07  Martin Jambor  <mjambor@suse.cz>
8801
8802         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
8803
8804 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
8805
8806         PR driver/41594
8807         * gcc.c: Add -static-libstdc++ to list of recognized options.
8808
8809 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8810
8811         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
8812
8813 2010-04-07  Richard Guenther  <rguenther@suse.de>
8814
8815         PR middle-end/42617
8816         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
8817         bases build simple mem attributes to retain points-to information.
8818
8819 2010-04-07  Richard Guenther  <rguenther@suse.de>
8820
8821         PR middle-end/42617
8822         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
8823         preserve points-to related information.
8824
8825 2010-04-07  Richard Guenther  <rguenther@suse.de>
8826
8827         PR middle-end/42617
8828         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
8829         discard plain indirect references.
8830         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
8831         * tree.c (tree_nop_conversion): Likewise.
8832
8833 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
8834
8835         PR debug/43628
8836         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
8837
8838 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
8839
8840         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
8841         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
8842
8843 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
8844
8845         * tree-if-conv.c: Fix indentation and comments.
8846
8847 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
8848
8849         * tree-if-conv.c: Sort static functions in topological order.
8850
8851 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
8852
8853         * tree-if-conv.c: Fix indentation and comments.
8854
8855 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8856
8857         PR middle-end/43519
8858         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
8859         lang_hooks.types.type_for_size instead of
8860         build_nonstandard_integer_type.
8861         When converting an unsigned type to signed, double its precision.
8862         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
8863         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
8864         (graphite_create_new_loop_guard): When ub + 1 wraps around,
8865         use lb <= ub.
8866
8867 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8868
8869         PR middle-end/43519
8870         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
8871         POINTER_PLUS_EXPR for pointer types.
8872
8873 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8874
8875         PR middle-end/43519
8876         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
8877         * graphite-clast-to-gimple.c: Include langhooks.h.
8878         (max_signed_precision_type): New.
8879         (max_precision_type): Takes two types as arguments.
8880         (precision_for_value): New.
8881         (precision_for_interval): New.
8882         (gcc_type_for_interval): New.
8883         (gcc_type_for_value): New.
8884         (gcc_type_for_clast_term): New.
8885         (gcc_type_for_clast_red): New.
8886         (gcc_type_for_clast_bin): New.
8887         (gcc_type_for_clast_expr): Split up into several functions.
8888         (gcc_type_for_clast_eq): Rewritten.
8889         (compute_bounds_for_level): New.
8890         (compute_type_for_level_1): New.
8891         (compute_type_for_level): New.
8892         (gcc_type_for_cloog_iv): Removed.
8893         (gcc_type_for_iv_of_clast_loop): Rewritten.
8894         (graphite_create_new_loop): Compute the lower and upper bound types
8895         with gcc_type_for_clast_expr.
8896         (graphite_create_new_loop_guard): Same.
8897         (find_cloog_iv_in_expr): Removed.
8898         (compute_cloog_iv_types_1): Removed.
8899         (compute_cloog_iv_types): Removed.
8900         (gloog): Do not call compute_cloog_iv_types.
8901         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
8902         GBB_CLOOG_IV_TYPES.
8903         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
8904         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
8905         (GBB_CLOOG_IV_TYPES): Removed.
8906
8907 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8908
8909         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
8910         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
8911         (detect_commutative_reduction): Same.
8912
8913 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8914
8915         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
8916         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
8917         argument.
8918         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
8919         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
8920         (rewrite_commutative_reductions_out_of_ssa): Same.
8921         * passes.c (execute_function_todo): Call verify_ssa for every pass
8922         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
8923         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
8924         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
8925         with an extra argument.
8926         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
8927         verify_ssa only when the extra argument is true.
8928         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
8929         with an extra argument.
8930         (tree_transform_and_unroll_loop): Same.
8931
8932 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
8933
8934         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
8935         for all the passes of the LNO having LOOP_CLOSED_SSA.
8936         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
8937         * tree-loop-distribution.c (pass_loop_distribution): Same.
8938         * tree-pass.h (TODO_verify_loops): Removed.
8939         * tree-ssa-loop.c (pass_tree_loop_init): Same.
8940         (pass_lim): Same.
8941         (pass_tree_unswitch): Same.
8942         (pass_predcom): Same.
8943         (pass_vectorize): Same.
8944         (pass_linear_transform): Same.
8945         (pass_graphite_transforms): Same.
8946         (pass_iv_canon): Same.
8947         (pass_complete_unroll): Same.
8948         (pass_complete_unrolli): Same.
8949         (pass_parallelize_loops): Same.
8950         (pass_loop_prefetch): Same.
8951         (pass_iv_optimize): Same.
8952
8953 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
8954
8955         PR middle-end/32824
8956         * passes.c (init_optimization_passes): Move pass_lim before
8957         pass_copy_prop and pass_dce_loop.
8958
8959 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
8960
8961         PR target/43667
8962         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
8963         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
8964         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
8965         MULTI_* defines for 4 argument vpermil2p* builtins.
8966
8967 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
8968
8969         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
8970         * config/i386/i386.c (x86_maybe_negate_const_int): New.
8971         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
8972         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
8973         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
8974         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
8975         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
8976         Use x86_maybe_negate_const_int to output insn mnemonic.
8977         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
8978         check from instruction predicate.  Update comments.
8979         * config/i386/sync.md (sync_add<mode>): Use
8980         x86_maybe_negate_const_int to output insn mnemonic.
8981
8982 2010-04-06  Jan Hubicka  <jh@suse.cz>
8983
8984         PR tree-optimization/42906
8985         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
8986         IGNORE_SELF argument.  Set visited_control_parents for fully
8987         processed BBs.
8988         (find_obviously_necessary_stmts): Update call of
8989         mark_control_dependent_edges_necessary.
8990         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
8991
8992 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
8993
8994         * config/i386/i386.md: Remove comment about 'e' and 'E'
8995         operand modifier.
8996
8997 2010-04-06  Richard Guenther  <rguenther@suse.de>
8998
8999         PR tree-optimization/43627
9000         * tree-vrp.c (extract_range_from_unary_expr): Widenings
9001         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
9002         not varying.
9003
9004 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
9005
9006         * BASE-VER: Change to 4.6.0.
9007
9008         PR target/43638
9009         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
9010         handling.
9011
9012 2010-04-06  Richard Guenther  <rguenther@suse.de>
9013
9014         PR middle-end/43661
9015         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
9016
9017 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9018
9019         * doc/invoke.texi (Optimize Options): Document that LTO
9020         won't remove object access purely due to incompatible
9021         declarations.
9022
9023 2010-04-04  Matthias Klose  <doko@ubuntu.com>
9024
9025         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
9026         Initialize variable.
9027
9028 2010-04-03  Richard Guenther  <rguenther@suse.de>
9029
9030         PR middle-end/42509
9031         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
9032         require a non-NULL MEM_OFFSET.
9033
9034 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
9035
9036         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
9037         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
9038         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
9039         config/alpha/predicates.md, config/arm/arm.md,
9040         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
9041         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
9042         config/darwin9.h, config/darwin.c, config/darwin.h,
9043         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
9044         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
9045         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
9046         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
9047         config/mips/mips.md, config/mn10300/mn10300.c,
9048         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
9049         config/rs6000/aix.h, config/rs6000/dfp.md,
9050         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
9051         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
9052         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
9053         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
9054         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
9055         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
9056         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
9057         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
9058         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
9059         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
9060         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
9061         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
9062         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
9063         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
9064         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
9065         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
9066         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
9067         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
9068         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
9069         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
9070         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
9071         opt-functions.awk, opth-gen.awk, params.def, passes.c,
9072         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
9073         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
9074         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
9075         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
9076         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
9077         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
9078         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
9079         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
9080         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
9081         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
9082         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
9083         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
9084         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
9085         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
9086
9087 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9088
9089         PR other/43620
9090         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
9091         * aclocal.m4: Regenerate.
9092
9093 2010-04-02  Richard Guenther  <rguenther@suse.de>
9094
9095         PR tree-optimization/43629
9096         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
9097         if we have seen a constant value.
9098
9099 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
9100
9101         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
9102
9103 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
9104
9105         PR target/43469
9106         * arm.c (legitimize_tls_address): Adjust call to
9107         gen_tls_load_dot_plus_four.
9108         (arm_note_pic_base): New function.
9109         (arm_cannot_copy_insn_p): Use it.
9110         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
9111         constraint.
9112
9113 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9114
9115         PR bootstrap/43531
9116
9117         Revert:
9118         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9119
9120         * Makefile.in ($(out_object_file)): Depend on
9121         gt-$(basename $(notdir $(out_file))).h.
9122
9123 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
9124
9125         * config.gcc (lm32-*-rtems*): Add t-lm32.
9126
9127 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
9128
9129         * config.gcc: Add lm32-*-rtems*.
9130         * config/lm32/rtems.h: New file.
9131
9132 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
9133
9134         PR target/42609
9135         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
9136
9137 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
9138
9139         * dwarf2out.c (output_compilation_unit_header): For
9140         -gdwarf-4 use version 4 instead of version 3.
9141         (output_line_info): For version 4 and above emit additional
9142         maximum ops per insn header field.
9143         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
9144
9145         * dwarf2out.c (is_c_family, is_java): Remove.
9146         (lower_bound_default): New function.
9147         (add_bound_info, gen_descr_array_type_die): Use it.
9148
9149 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
9150
9151         PR debug/43325
9152         * dwarf2out.c (gen_variable_die): Allow debug info for variable
9153         re-declaration when it happens in a function.
9154
9155 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
9156
9157         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
9158         (cgraph_remove_function_insertion_hook): Same.
9159         (cgraph_call_function_insertion_hooks): Same.
9160
9161 2010-04-01  Richard Guenther  <rguenther@suse.de>
9162
9163         PR middle-end/43614
9164         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
9165         and TREE_THIS_VOLATILE.
9166         (copy_ref_info): Likewise.
9167         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
9168         * tree.c (build6_stat): Ignore side-effects of all but arg5
9169         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
9170         TARGET_MEM_REF.
9171
9172 2010-04-01  Richard Guenther  <rguenther@suse.de>
9173
9174         PR tree-optimization/43607
9175         * ipa-type-escape.c (check_call): Do not access non-existing
9176         arguments.
9177
9178 2010-04-01  Richard Guenther  <rguenther@suse.de>
9179
9180         PR middle-end/43602
9181         Revert
9182         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
9183                     Jack Howarth <howarth@bromo.med.uc.edu>
9184
9185         * tree-profile.c (tree_init_ic_make_global_vars): Make static
9186         variables TLS.
9187
9188 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9189
9190         * doc/install.texi (Prerequisites): Document libelf usability on
9191         IRIX 5/6 and Solaris 2.
9192         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
9193         Update GNU as, GNU ld requirements.
9194         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
9195         Document Sun Studio compiler download.
9196         Update and simplify as, ld recommendations.
9197         (Specific, *-*-solaris2.7): Note obsoletion, removal.
9198
9199 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9200
9201         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
9202         with_tune_32 to pentium4.
9203
9204 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
9205
9206         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
9207
9208 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9209
9210         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
9211         obsoletion, removal.
9212         Update IDO URL.
9213         Document GNU as requirement.
9214         Update configure requirements.
9215         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
9216         Recomment IRIX 6.5.18+.
9217         Document IDF/IDL requirement.
9218         Document GNU as requirement.
9219         Document GNU ld bootstrap failure.
9220         Remove freeware.sgi.com reference.
9221
9222 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9223
9224         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
9225         UNIX V4.0, V5.0 obsoletion, removal.
9226         Remove --with-gc=simple reference.
9227         Update VM requirements during bootstrap.
9228         Remove -oldas bootstrap description.
9229         Update binutils reference.
9230         Remove comparison failure note.
9231
9232 2010-03-31  Richard Guenther  <rguenther@suse.de>
9233             Zdenek Dvorak  <ook@ucw.cz>
9234             Sebastian Pop  <sebastian.pop@amd.com>
9235
9236         PR middle-end/43464
9237         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
9238         with multiple arguments.
9239         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
9240
9241 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
9242
9243         * graphite-dependences.c (print_pddr): Call print_pdr with an
9244         extra argument.
9245         * graphite-poly.c (debug_pdr): Add an extra argument for the
9246         verbosity level.
9247         (print_pdr): Same.
9248         (print_pbb_domain): Same.
9249         (print_pbb): Same.
9250         (print_scop_context): Same.
9251         (print_scop): Same.
9252         (print_cloog): Same.
9253         (debug_pbb_domain): Same.
9254         (debug_pbb): Same.
9255         (print_pdrs): Same.
9256         (debug_pdrs): Same.
9257         (debug_scop_context): Same.
9258         (debug_scop): Same.
9259         (debug_cloog): Same.
9260         (print_scop_params): Same.
9261         (debug_scop_params): Same.
9262         (print_iteration_domain): Same.
9263         (print_iteration_domains): Same.
9264         (debug_iteration_domain): Same.
9265         (debug_iteration_domains): Same.
9266         (print_scattering_function): Same.
9267         (print_scattering_functions): Same.
9268         (debug_scattering_function): Same.
9269         (debug_scattering_functions): Same.
9270         * graphite-poly.h (debug_pdr): Update declaration.
9271         (print_pdr): Same.
9272         (print_pbb_domain): Same.
9273         (print_pbb): Same.
9274         (print_scop_context): Same.
9275         (print_scop): Same.
9276         (print_cloog): Same.
9277         (debug_pbb_domain): Same.
9278         (debug_pbb): Same.
9279         (print_pdrs): Same.
9280         (debug_pdrs): Same.
9281         (debug_scop_context): Same.
9282         (debug_scop): Same.
9283         (debug_cloog): Same.
9284         (print_scop_params): Same.
9285         (debug_scop_params): Same.
9286         (print_iteration_domain): Same.
9287         (print_iteration_domains): Same.
9288         (debug_iteration_domain): Same.
9289         (debug_iteration_domains): Same.
9290         (print_scattering_function): Same.
9291         (print_scattering_functions): Same.
9292         (debug_scattering_function): Same.
9293         (debug_scattering_functions): Same.
9294
9295 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
9296
9297         * graphite-poly.c (print_scattering_function_1): New.
9298         (print_scattering_function): Call it.
9299         (print_scop_params): Remove spaces at the end of lines.
9300         (print_cloog): New.
9301         (debug_cloog): New.
9302         * graphite-poly.h (print_cloog): Declared.
9303         (debug_cloog): Declared.
9304
9305 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
9306
9307         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
9308         in loop->header.
9309         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
9310         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
9311         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
9312         to switch between adding the IV bump in loop->latch or in loop->header.
9313
9314 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
9315
9316         * graphite-poly.c (print_scattering_function): Pretty print following
9317         the scoplib format.
9318         (print_pdr): Same.
9319         (print_pbb_domain): Same.
9320         (dump_gbb_cases): Same.
9321         (dump_gbb_conditions): Same.
9322         (print_pdrs): Same.
9323         (print_pbb): Same.
9324         (print_scop_params): Same.
9325         (print_scop_context): Same.
9326         (print_scop): Same.
9327         (print_pbb_body): New.
9328         (lst_indent_to): New.
9329         (print_lst): Start new lines with a #.
9330         * graphite-poly.h (pbb_bb): New.
9331         (pbb_index): Use pbb_bb.
9332         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
9333         disjuncts.
9334         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
9335
9336 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
9337
9338         * dwarf2out.c (size_of_die): For -gdwarf-4 use
9339         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
9340         and 0 instead of 1 for dw_val_class_flag.
9341         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
9342         dw_val_class_range_list, dw_val_class_loc_list,
9343         dw_val_class_lineptr and dw_val_class_macptr, use
9344         DW_FORM_flag_present for dw_val_class_flag and
9345         DW_FORM_exprloc for dw_val_class_loc.
9346         (output_die): For -gdwarf-4 print dw_val_class_loc
9347         size as uleb128 instead of 1 or 2 bytes and don't print
9348         anything for dw_val_class_flag.
9349
9350         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
9351         instead of cselib_lookup following by tweaking locs->setting_insn.
9352
9353         PR bootstrap/43596
9354         * cselib.c (cselib_process_insn): Clear cselib_current_insn
9355         even before returning from label, setjmp call or volatile asm
9356         handling.
9357
9358 2010-03-31  Richard Guenther  <rguenther@suse.de>
9359
9360         PR middle-end/43600
9361         * cgraphunit.c (cgraph_output_in_order): Do not allocate
9362         temporary data on stack.
9363
9364 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9365
9366         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
9367         (PUSHSECTION_ASM_OP): Remove.
9368         (POPSECTION_ASM_OP): Remove.
9369         (PUSHSECTION_FORMAT): Remove.
9370         * config/sol2.h (PUSHSECTION_FORMAT): Define.
9371         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
9372         * config/sol2.c (solaris_output_init_fini): Use it.
9373
9374 2010-03-31  Jie Zhang  <jie@codesourcery.com>
9375
9376         PR 43574
9377         * opt-functions.awk (var_type_struct): Use signed char type
9378         for simple variables.
9379
9380 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9381
9382         * config/sol2.c: Include output.h.
9383         (solaris_assemble_visibility): New function.
9384         * config/t-sol2 (sol2.o): Add output.h dependency.
9385         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
9386         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
9387         Redefine.
9388
9389 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
9390
9391         PR target/43580
9392         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
9393         V2SImode or XFmode on PRE_DEC.
9394
9395         PR debug/43557
9396         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
9397         BLKmode.
9398
9399 2010-03-31  Jie Zhang  <jie@codesourcery.com>
9400
9401         PR 43562
9402         * reload.h (caller_save_initialized_p): Declare.
9403         * toplev.c (backend_init_target): Don't call
9404         init_caller_save but set caller_save_initialized_p to false.
9405         * caller-save.c (caller_save_initialized_p): Define.
9406         (init_caller_save): Check caller_save_initialized_p.
9407         * ira.c (ira): Call init_caller_save if flag_caller_saves.
9408
9409 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9410
9411         PR target/39048
9412         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
9413         and soft-fp/t-softfp to tmake_file.
9414         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
9415         (LIBGCC2_TF_CEXT): Define.
9416         (TF_SIZE): Define.
9417
9418 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
9419
9420         PR debug/42977
9421         * cselib.c (n_useless_values): Document handling of debug locs.
9422         (n_useless_debug_values, n_debug_values): New variables.
9423         (new_elt_loc_list): Don't add to debug values, keep count.
9424         (promote_debug_loc): New.
9425         (cselib_reset_table): Zero new variables.
9426         (entry_and_rtx_equal_p): Promote debug locs.
9427         (discard_useless_locs): Increment n_useless_debug_values for
9428         debug values.
9429         (remove_useless_values): Adjust n_useless_values and n_debug_values
9430         with n_useless_debug_values.
9431         (add_mem_for_addr): Promote debug locs.
9432         (cselib_lookup_mem): Likewise.
9433         (cselib_lookup_addr): Renamed to...
9434         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
9435         (cselib_log_lookup): ... this.  Turn into...
9436         (cselib_lookup_addr): ... new wrapper.
9437         (cselib_lookup_from_insn): New.
9438         (cselib_invalidate_regno): Increment n_useless_debug_values for
9439         debug values.
9440         (cselib_invalidate_mem): Likewise.
9441         (cselib_process_insn): Take n_deleted and n_debug_values into
9442         account to guard remove_useless_value call.
9443         (cselib_finish): Zero n_useless_debug_values.
9444         * cselib.h (cselib_lookup_from_insn): Declare.
9445         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
9446         (sched_analyze_2): Likewise.
9447
9448 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
9449
9450         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
9451         functions.
9452         (adjust_mems): Replace narrowing SUBREG of expression containing
9453         just PLUS, MINUS, MULT and ASHIFT of registers and constants
9454         with operations in the narrower mode.
9455
9456         PR debug/43593
9457         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
9458         regs_invalidated_by_call instead all call_used_reg_set registers.
9459
9460 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
9461
9462         PR middle-end/43430
9463         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
9464         pointer comparisons with types_compatible_p.
9465         * tree-vect-stmts.c (vectorizable_call): Same.
9466         (vectorizable_condition): Same.
9467
9468 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9469
9470         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
9471         stack check if the mask would be zero.
9472
9473 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
9474             Jack Howarth <howarth@bromo.med.uc.edu>
9475
9476         * tree-profile.c (tree_init_ic_make_global_vars): Make static
9477         variables TLS.
9478
9479 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
9480
9481         PR other/25232
9482         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
9483         and __unordtf2.
9484         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
9485         Include ___unordxf2 and ___unordtf2.
9486         * config/i386/libgcc-glibc.ver: Do not define inheritance from
9487         GCC_4.4.0 here.
9488
9489 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
9490
9491         * config/lm32/t-lm32: New file.
9492         * config.gcc: Use the above file when targetting lm32.
9493
9494 2010-03-28  Duncan Sands  <baldrick@free.fr>
9495
9496         * Makefile.in (PLUGIN_HEADERS): Add except.h.
9497
9498 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
9499
9500         PR middle-end/43431
9501         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
9502         Improve vectorization cost model diagnostic.
9503
9504 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
9505
9506         PR middle-end/43436
9507         * tree-vect-data-refs.c (vect_analyze_data_refs): When
9508         compute_data_dependences_for_loop returns false, early exit
9509         and output an extra diagnostic for the failed data reference
9510         analysis.
9511
9512 2010-03-29  Richard Guenther  <rguenther@suse.de>
9513
9514         PR tree-optimization/43560
9515         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
9516         (can_sm_ref_p): Treat stores to readonly locations as trapping.
9517
9518 2010-03-29  Jie Zhang  <jie@codesourcery.com>
9519
9520         PR 43564
9521         * toplev.c (process_options): Set optimization_default_node
9522         and optimization_current_node.
9523         * opts.c (decode_options): Don't set optimization_default_node
9524         and optimization_current_node.
9525
9526 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
9527
9528         * config/rtems.h: Abandon -qrtems_debug.
9529
9530 2010-03-28  Jan Hubicka  <jh@suse.cz>
9531
9532         PR tree-optimization/43505
9533         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
9534         map should not be copied.
9535
9536 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9537
9538         PR middle-end/41674
9539         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
9540         cdtors, set DECL_PRESERVE_P.
9541         * ipa.c (cgraph_externally_visible_p): Return true if declaration
9542         should be preseved.
9543
9544 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
9545
9546         PR tree-optimization/43528
9547         * stor-layout.c (place_field): Check that constant fits into
9548         unsigned HWI when skipping calculation of MS bitfield layout.
9549
9550 2010-03-27  Jan Hubicka  <jh@suse.cz>
9551
9552         PR middle-end/43391
9553         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
9554         notice_global_symbol work.
9555
9556 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
9557
9558         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
9559         instead of dwarf2out_decl.
9560         (struct var_loc_node): Remove section_label field.
9561         (dwarf2out_function_decl): New function.
9562         (dwarf2out_var_location): Don't set section_label field.
9563         (dwarf2out_begin_function): Don't empty decl_loc_table here.
9564
9565 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9566
9567         PR tree-optimization/43544
9568         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9569         First argument for builtin vectorized function hook is now a
9570         tree to be able to distinguish between machine specific and
9571         standard builtins.
9572         * targhooks.c (default_builtin_vectorized_function): Ditto.
9573         * targhooks.h (default_builtin_vectorized_function): Ditto.
9574         * target.h (struct gcc_target): Ditto.
9575         * tree-vect-stmts.c (vectorizable_function): Ditto.
9576         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
9577         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
9578         Ditto.
9579
9580 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
9581
9582         PR c/43381
9583         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
9584         nested binding iff it is a FUNCTION_DECL.
9585         (store_parm_decls_newstyle): Pass nested=true to bind for
9586         FUNCTION_DECLs amongst parameters.
9587
9588 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
9589
9590         * var-tracking.c (vt_expand_loc_callback): Don't run
9591         cselib_expand_value_rtx_cb in dummy mode if
9592         cselib_dummy_expand_value_rtx_cb returned false.
9593
9594         * var-tracking.c (emit_note_insn_var_location): For one part
9595         notes with offset 0, don't add EXPR_LIST around the location.
9596         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
9597         add_location_or_const_value_attribute): Adjust for that change.
9598
9599         PR debug/43540
9600         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
9601         into first operand and location into second.
9602         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
9603         dw_cfi_oprnd_loc for DW_CFA_expression.
9604         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
9605         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
9606         assume first argument is regnum and second argument is location.
9607
9608 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
9609
9610         PR target/42113
9611         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
9612         of scratch register to DImode.  Split to DImode comparison operator.
9613         Use SImode subreg of scratch register in the multiplication.
9614         (*cmp_sadd_sidi): Ditto.
9615         (*cmp_ssub_si): Ditto.
9616         (*cmp_ssub_sidi): Ditto.
9617
9618 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
9619
9620         PR target/43524
9621         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
9622         Remove invalid assert and wrong comment.
9623
9624 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
9625
9626         PR debug/43516
9627         * flags.h (final_insns_dump_p): New extern.
9628         * final.c (final_insns_dump_p): New variable.
9629         (rest_of_clean_state): Set it before -fdump-final-insns=
9630         dumping, clear afterwards.
9631         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
9632         MEM_ALIAS_SET on MEMs.
9633
9634 2010-03-26  David S. Miller  <davem@davemloft.net>
9635
9636         * configure.ac: Fix sparc GOTDATA_OP bug check.
9637         * configure: Rebuild.
9638
9639 2010-03-26  Alan Modra  <amodra@gmail.com>
9640
9641         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
9642
9643 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9644
9645         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
9646         TLS_SECTION_ASM_FLAG.
9647
9648 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
9649
9650         PR bootstrap/43511
9651         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
9652         Clear first_function_block_is_cold.
9653
9654         PR c/43385
9655         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
9656         argument if the argument is truth_value_p.
9657
9658 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
9659
9660         * config/rs6000/constraints.md: Update copyright year for my changes.
9661
9662         PR target/43484
9663         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
9664         used in reg+reg addressing, swap registers.
9665
9666 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
9667
9668         PR debug/43293
9669         * target.h (struct gcc_target): Add code_end hook.
9670         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
9671         if not yet defined.
9672         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
9673         * toplev.c (compile_file): Call targetm.asm_out.code_end
9674         hook before unwind info/debug info output.
9675         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
9676         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
9677         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
9678         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
9679         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
9680         * config/i386/i386.c (ix86_file_end): Renamed to...
9681         (ix86_code_end): ... this.  Make static.  Don't call
9682         file_end_indicate_exec_stack.  Emit unwind info using
9683         final_start_function/final_end_function.
9684         (darwin_x86_file_end): Remove.
9685         (TARGET_ASM_CODE_END): Define.
9686         * config/i386/i386.h (TARGET_ASM_FILE_END,
9687         NEED_INDICATE_EXEC_STACK): Don't define.
9688         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
9689         (TARGET_ASM_FILE_END): Define to darwin_file_end.
9690         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
9691         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
9692
9693         PR target/43498
9694         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
9695         at the beginning and final_end_function at the end.
9696         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
9697
9698 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9699
9700         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
9701         and Sun as TLS syntax.
9702         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
9703         * configure: Regenerate.
9704         * config.in: Regenerate.
9705         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
9706         (default_elf_asm_named_section): Use it.
9707         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
9708         (i386_output_dwarf_dtprel): Likewise.
9709         (output_addr_const_extra): Likewise.
9710         (output_pic_addr_const): Lowercase @GOTTPOFF.
9711         (output_addr_const_extra): Likewise.
9712         (output_pic_addr_const): Lowercase @GOTNTPOFF.
9713         (output_addr_const_extra): Likewise.
9714         (output_pic_addr_const): Lowercase @INDNTPOFF.
9715         (output_addr_const_extra): Likewise.
9716         (output_pic_addr_const): Lowercase @NTPOFF.
9717         (output_addr_const_extra): Likewise.
9718         (output_pic_addr_const): Lowercase @TPOFF.
9719         (output_addr_const_extra): Likewise.
9720         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
9721         (*tls_global_dynamic_64): Likewise.
9722         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
9723         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
9724
9725         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
9726         (ASM_OUTPUT_TLS_COMMON): Use it.
9727         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
9728
9729         PR target/38118
9730         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
9731         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
9732         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
9733         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
9734         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
9735         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
9736
9737 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9738
9739         * config/i386/i386.c (override_options): Don't accept
9740         -mtls-dialect=sun any longer.
9741         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
9742         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
9743         (*tls_local_dynamic_base_32_sun): Likewise.
9744         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
9745
9746 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
9747
9748         PR debug/43508
9749         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
9750         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
9751
9752         PR debug/43479
9753         * ira.c (adjust_cleared_regs): New function.
9754         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
9755
9756         PR debug/19192
9757         PR debug/43479
9758         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
9759         from gimple_block.
9760         * expr.c (expand_expr_real): Restore previous
9761         curr_insn_source_location and curr_insn_block after
9762         expand_expr_real_1 call.
9763         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
9764         instead of expand_expr_real_1.
9765
9766 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
9767
9768         PR rtl-optimization/43413
9769         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
9770         hard regs too.
9771
9772 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
9773
9774         PR target/43348
9775         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
9776         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
9777
9778 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
9779
9780         * config/i386/i386.c (ix86_target_string): Add -mfma.
9781         Fix a typo in comment.
9782
9783 2010-03-22  Mike Stump  <mikestump@comcast.net>
9784
9785         PR target/23071
9786         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
9787         Don't overly align based upon packed packed fields.
9788
9789 2010-03-22  Jason Merrill  <jason@redhat.com>
9790
9791         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
9792         Use () rather than [], and move before the element type.
9793
9794 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9795
9796         * doc/configfiles.texi (Configuration Files): Removed
9797         fixinc/Makefile*, intl/Makefile.*.
9798         * doc/makefile.texi: Fixed markup. Abstract from version
9799         control system used.
9800         (Makefile): Removed obsolete gcc/java/parse.y example.
9801         * doc/sourcebuild.texi: Likewise.
9802         (Top Level): Added config, gnattools, libdecnumber, libgcc,
9803         libgomp, libssp.  Removed fastjar.
9804         (Miscellaneous Docs): Clarify location.
9805         Added COPYING3, COPYING3.LIB.
9806         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
9807
9808 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9809
9810         PR target/38085
9811         * config/i386/i386.c (x86_function_profiler)
9812         [!NO_PROFILE_COUNTERS]: Fix typo.
9813         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
9814         instead of callq.
9815
9816 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
9817             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9818
9819         * doc/sourcebuild.texi (Test Directives): Split into six
9820         subsections, with most of the current text in new subsections
9821         Directives, Selectors, and Final Actions.
9822         (Directives): Split list of test directives into multiple
9823         subsubsections.
9824         (Selectors): Describe use and syntax of selectors.
9825         (Effective-Target Keywords): Describe all existing keywords.
9826         (Add Options): Describe features for dg-add-options.
9827         (Require Support): Describe variants of dg-require-support.
9828         (Final Actions): Describe commands to use in dg-final.
9829
9830 2010-03-22  Michael Matz  <matz@suse.de>
9831
9832         PR middle-end/43475
9833         * recog.c (validate_replace_rtx_group): Replace also in
9834         REG_EQUAL and REG_EQUIV notes.
9835
9836 2010-03-22  Richard Guenther  <rguenther@suse.de>
9837
9838         PR tree-optimization/43390
9839         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
9840         sure vector extracts are type correct.
9841
9842 2010-03-22  Richard Guenther  <rguenther@suse.de>
9843
9844         PR middle-end/40106
9845         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
9846         x * sqrt (x) even when optimizing for size if the target
9847         has native support for sqrt.
9848
9849 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
9850
9851         * varasm.c (make_decl_rtl_for_debug): Also clear
9852         flag_mudflap for the duration of make_decl_rtl call.
9853
9854         PR debug/43443
9855         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
9856         locs from preserved VALUEs.
9857
9858 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9859
9860         PR middle-end/42718
9861         * pa.md (movmemsi): Set align to one if zero.
9862         (movmemdi): Likewise.
9863
9864 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
9865
9866         PR target/42321
9867         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
9868         with their corresponding prologue pushes.
9869
9870 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
9871
9872         PR target/43156
9873         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
9874         at the begining or end.
9875         (spu_expand_epilogue): Likewise.
9876
9877 2010-03-20  Richard Guenther  <rguenther@suse.de>
9878
9879         PR rtl-optimization/43438
9880         * combine.c (make_extraction): Properly zero-/sign-extend an
9881         extraction of the low part of a CONST_INT.  Also handle
9882         CONST_DOUBLE.
9883
9884 2010-03-19  Mike Stump  <mikestump@comcast.net>
9885
9886         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
9887         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
9888         (override_options): Use SUBTARGET32_DEFAULT_CPU.
9889
9890 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
9891
9892         PR c/43211
9893         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
9894         an error.
9895
9896 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
9897
9898         PR rtl-optimization/42258
9899         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
9900         use that may match DEF.
9901
9902         PR target/40697
9903         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
9904         the cost of loading the constant rather than assuming
9905         COSTS_N_INSNS (1).
9906         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
9907         outer code is AND, do the same tests as the andsi3 expander and
9908         return COSTS_N_INSNS (1) if and is cheap.
9909
9910         * optabs.c (avoid_expensive_constant): Fix formatting.
9911
9912 2010-03-19  Michael Matz  <matz@suse.de>
9913
9914         PR c++/43116
9915         * attribs.c (decl_attributes): When rebuilding a function pointer
9916         type use the same qualifiers as the original pointer type.
9917
9918 2010-03-19  Martin Jambor  <mjambor@suse.cz>
9919
9920         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
9921         and is_gimple_ip_invariant_address.
9922
9923 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9924
9925         Revert
9926         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9927
9928         * config/arm/arm.c (arm_override_options): Turn off
9929         flag_dwarf2_cfi_asm for AAPCS variants.
9930
9931 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9932
9933         PR target/43399
9934         * config/arm/arm.c (emit_multi_reg_push): Update comments.
9935         Use PRE_MODIFY instead of PRE_DEC.
9936         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
9937         (vfp_emit_fstmd): Likewise.
9938
9939 2010-03-19  Michael Matz  <matz@suse.de>
9940
9941         PR target/43305
9942         * builtins.c (expand_builtin_interclass_mathfn,
9943         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
9944         if that fails.
9945
9946 2010-03-19  Richard Guenther  <rguenther@suse.de>
9947
9948         PR tree-optimization/43415
9949         * tree-ssa-pre.c (phi_translate): Split out worker to ...
9950         (phi_translate_1): ... this.
9951         (phi_translate): Move all caching here.  Cache all NARY
9952         and REFERENCE translations.
9953
9954 2010-03-19  David S. Miller  <davem@davemloft.net>
9955
9956         With help from Eric Botcazou.
9957         * config/sparc/sparc.c: Include dwarf2out.h.
9958         (emit_pic_helper): Delete.
9959         (pic_helper_symbol_name): Delete.
9960         (pic_helper_emitted_p): Delete.
9961         (pic_helper_needed): New.
9962         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
9963         (get_pc_thunk_name): New.
9964         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
9965         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
9966         Set pic_helper_needed to true.  Don't call emit_pic_helper.
9967         (sparc_expand_prologue): Update load_pic_register call.
9968         (sparc_output_mi_thunk): Likewise.
9969         (sparc_file_end): Emit a hidden comdat symbol for the PIC
9970         thunk if possible.  Output CFI information as needed.
9971
9972 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9973             Jack Howarth <howarth@bromo.med.uc.edu>
9974
9975         PR target/36399
9976         * config/i386/i386.h: Fix ABI on darwin x86-32.
9977
9978 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
9979
9980         * tree.h: Declare make_decl_rtl_for_debug.
9981         * varasm.c (make_decl_rtl_for_debug): New.
9982         * dwarf2out.c (rtl_for_decl_location): Call it.
9983         * cfgexpand.c (expand_debug_expr): Call it.
9984
9985 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
9986
9987         PR bootstrap/43399
9988         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
9989         mem_mode.
9990
9991         PR bootstrap/43403
9992         * var-tracking.c (vt_init_cfa_base): Do nothing if
9993         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
9994
9995 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
9996
9997         PR debug/42873
9998         * var-tracking.c (canonicalize_vars_star): New.
9999         (dataflow_post_merge_adjust): Use it.
10000
10001 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
10002
10003         PR debug/43058
10004         * var-tracking.c (non_suitable_const): New function.
10005         (add_uses): For DEBUG_INSNs with constants, don't record any
10006         value, instead just the constant value itself.
10007         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
10008         is not VAR_LOC_UNKNOWN_P, set var to the constant.
10009         (emit_notes_in_bb): Likewise.
10010         (emit_note_insn_var_location): For onepart variables if
10011         cur_loc is a VOIDmode constant, use DECL_MODE.
10012
10013 2010-03-18  Martin Jambor  <mjambor@suse.cz>
10014
10015         PR middle-end/42450
10016         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
10017         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
10018         all non-clones.  Moved call redirection...
10019         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
10020         (cgraph_materialize_all_clones): Dispose of all
10021         combined_args_to_skip bitmaps.
10022         (verify_cgraph_node): Do not check for edges pointing to wrong
10023         nodes in inline clones.
10024         * tree-inline.c (copy_bb): Call
10025         cgraph_redirect_edge_call_stmt_to_callee.
10026         * ipa.c (cgraph_remove_unreachable_nodes): Call
10027         cgraph_node_remove_callees even when there are used clones.
10028
10029 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
10030
10031         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
10032
10033 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
10034
10035         PR target/43383
10036         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
10037         for 32bit.
10038
10039 2010-03-18  Michael Matz  <matz@suse.de>
10040
10041         PR middle-end/43419
10042         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
10043         into sqrt(x) if we need to preserve signed zeros.
10044
10045 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
10046             Eric Botcazou  <ebotcazou@adacore.com>
10047
10048         PR rtl-optimization/43360
10049         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
10050         note if we don't know its invariant status.
10051
10052 2010-03-18  Michael Matz  <matz@suse.de>
10053
10054         PR tree-optimization/43402
10055         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
10056         PHI chains of ssa names registered for update.
10057
10058 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
10059
10060         PR target/42427
10061         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
10062         non-offsettable and pre_modify update addressing.
10063         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
10064         and "2" alternatives "#".
10065         (*movdd_softfloat32): Make all alternatives "#";
10066         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
10067         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
10068         (*movdf_softfloat32): Make all alternatives "#";
10069         (movdi): Use the new DIFD mode iterator to create a common splitter
10070         for movdi, movdf and movdd patterns.
10071
10072 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
10073
10074         * common.opt (dumpdir): Remove redundant tab.
10075
10076 2010-03-17  Martin Jambor  <mjambor@suse.cz>
10077
10078         PR tree-optimization/43347
10079         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
10080         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
10081
10082 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
10083
10084         PR rtl-optimization/42216
10085         * regrename.c (create_new_chain): New function, broken out from...
10086         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
10087         appending a use to an empty chain.
10088         (build_def_use): Remove previous changes that convert OP_INOUT to
10089         OP_OUT operands; instead detect the case where an OP_INOUT operand
10090         uses a previously untracked register and create an empty chain for it.
10091
10092 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10093
10094         * doc/extend.texi (Function Attributes): Rewrite unfinished
10095         sentence in ms_abi documentation.
10096
10097 2010-03-17  Alan Modra  <amodra@gmail.com>
10098
10099         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
10100         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
10101         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
10102         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
10103
10104 2010-03-16  Richard Henderson  <rth@redhat.com>
10105
10106         PR middle-end/43365
10107         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
10108         (lower_try_finally): Save and restore eh_seq around the expansion
10109         of the try-finally.
10110
10111 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
10112
10113         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
10114         statements before splitting block.
10115
10116 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10117
10118         * doc/sourcebuild.texi (Testsuites): Fix markup.
10119         Use pathnames relative to gcc/testsuite.
10120         (Test Directives): Move description of how timeout is determined.
10121         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
10122         (C Tests): Correct gcc.misc-tests directory.
10123         Framework tests now live in gcc.test-framework.
10124
10125 2010-03-16  Richard Guenther  <rguenther@suse.de>
10126
10127         PR middle-end/43379
10128         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
10129         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
10130
10131 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
10132             Alexandre Oliva  <aoliva@redhat.com>
10133
10134         PR tree-optimization/42917
10135         * lambda-code.c (remove_iv): Skip debug statements.
10136         (lambda_loopnest_to_gcc_loopnest): Likewise.
10137         (not_interesting_stmt): Debug statements are not interesting.
10138
10139 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
10140
10141         PR debug/43051
10142         PR debug/43092
10143         * cselib.c (cselib_preserve_constants,
10144         cfa_base_preserved_val): New static variables.
10145         (preserve_only_constants): New function.
10146         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
10147         clear its REG_VALUES.  If cselib_preserve_constants, don't
10148         empty the whole hash table, but preserve there VALUEs with constants,
10149         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
10150         (cselib_preserve_cfa_base_value): New function.
10151         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
10152         (cselib_init): Change argument to int bitfield.  Set
10153         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
10154         is in it.
10155         (cselib_finish): Clear cselib_preserve_constants and
10156         cfa_base_preserved_val.
10157         * cselib.h (enum cselib_record_what): New enum.
10158         (cselib_init): Change argument to int.
10159         (cselib_preserve_cfa_base_value): New prototype.
10160         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
10161         * dse.c (dse_step1): Likewise.
10162         * cfgcleanup.c (thread_jump): Likewise.
10163         * sched-deps.c (sched_analyze): Likewise.
10164         * gcse.c (local_cprop_pass): Likewise.
10165         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
10166         If FN is non-NULL, call the callback always and whenever it returns
10167         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
10168         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
10169         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
10170         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
10171         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
10172         * var-tracking.c: Include recog.h.
10173         (bb_stack_adjust_offset): Remove.
10174         (vt_stack_adjustments): Don't call it, instead just gather the
10175         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
10176         (adjust_stack_reference): Remove.
10177         (compute_cfa_pointer): New function.
10178         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
10179         (struct adjust_mem_data): New type.
10180         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
10181         functions.
10182         (get_address_mode): New function.
10183         (replace_expr_with_values): Use it.
10184         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
10185         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
10186         (adjust_sets): Remove.
10187         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
10188         Use get_address_mode.
10189         (get_adjusted_src): Remove.
10190         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
10191         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
10192         (add_with_sets): Don't call adjust_sets.
10193         (fp_setter, vt_init_cfa_base): New functions.
10194         (vt_initialize): Change return type to bool.  Move most of pool etc.
10195         initialization to the beginning of the function from end.  Pass
10196         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
10197         If !frame_pointer_needed, call vt_stack_adjustment before mos
10198         vector is filled, call vt_init_cfa_base if argp/framep has been
10199         eliminated to sp.  If frame_pointer_needed and argp/framep has
10200         been eliminated to hard frame pointer, set
10201         hard_frame_pointer_adjustment and call vt_init_cfa_base after
10202         encountering fp setter in the prologue.  For MO_ADJUST, call
10203         log_op_type before pusing the op into mos vector, not afterwards.
10204         Call adjust_insn before cselib_process_insn/add_with_sets,
10205         call cancel_changes (0) afterwards.
10206         (variable_tracking_main_1): Adjust for vt_initialize calling
10207         vt_stack_adjustments and returning whether it succeeded or not.
10208
10209 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
10210
10211         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
10212         debug statements.
10213
10214 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
10215
10216         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
10217         has been set.
10218         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
10219         drap_reg has not been set.
10220
10221 2010-03-15  Michael Matz  <matz@suse.de>
10222
10223         PR middle-end/43300
10224         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
10225         use it to expand block copies.
10226         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
10227         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
10228         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
10229
10230 2010-03-15  Richard Guenther  <rguenther@suse.de>
10231
10232         PR tree-optimization/43367
10233         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
10234         elimination check.
10235
10236 2010-03-15  Richard Guenther  <rguenther@suse.de>
10237
10238         PR tree-optimization/43317
10239         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
10240
10241 2010-03-15  Martin Jambor  <mjambor@suse.cz>
10242
10243         PR tree-optimization/43141
10244         * tree-sra.c (create_abstract_origin): New function.
10245         (modify_function): Call create_abstract_origin.
10246
10247 2010-03-15  Chris Demetriou  <cgd@google.com>
10248
10249         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
10250         wasn't copied.
10251
10252 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10253
10254         PR middle-end/43354
10255         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
10256         call insert_out_of_ssa_copy for default definitions.
10257
10258 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10259
10260         * graphite-clast-to-gimple.c (my_long_long): Defined.
10261         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
10262         * graphite-sese-to-poly.c (my_long_long): Defined.
10263         (scop_ivs_can_be_represented): Use it.
10264
10265 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10266
10267         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
10268         graphite-max-bbs-per-function, and loop-block-tile-size.
10269         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
10270         with "maximum".
10271         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
10272
10273 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10274
10275         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
10276         forward declaration.
10277         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
10278         (add_upper_bounds_from_estimated_nit): New.
10279         (build_loop_iteration_domains): Use it.
10280
10281 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10282
10283         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
10284
10285 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10286
10287         PR middle-end/43306
10288         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
10289         should be an INTEGER_CST.  Also handle CASE_CONVERT.
10290
10291 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10292
10293         * graphite.c (graphite_initialize): To bound the number of bbs per
10294         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
10295         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
10296         * doc/invoke.texi: Document it.
10297
10298 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10299
10300         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
10301         * graphite-sese-to-poly.h (build_poly_scop): Same.
10302
10303 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
10304
10305         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
10306         the number of parameters in the scop.  Use as an upper bound
10307         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
10308         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
10309         * doc/invoke.texi: Document it.
10310
10311 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
10312
10313         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
10314         * doc/c-tree.texi: Remove.
10315         * doc/generic.texi: Merge c-tree.texi here.
10316         * doc/gccint.texi (Trees): Remove menu entry.
10317         (c-tree.texi): Remove @include.
10318         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
10319         * doc/languages.texi (Reading RTL): Ditto.
10320
10321 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
10322
10323         PR target/42869
10324         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
10325
10326 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
10327
10328         PR middle-end/42431
10329         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
10330         code added to work around reload clobbering CONST insns.
10331
10332 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
10333
10334         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
10335         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
10336         (cselib_preserve_only_values): Remove retain argument, don't
10337         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
10338         * cselib.h (cselib_preserve_only_values): Remove retain argument.
10339         * var-tracking.c (micro_operation): Move insn field before union.
10340         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
10341         (struct variable_tracking_info_def): Remove n_mos field, change
10342         mos into a vector of micro_operations.
10343         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
10344         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
10345         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
10346         changing into a vector.
10347         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
10348         come before all other uops generated by add_stores.
10349         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
10350         argument removal.
10351         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
10352         a vector.  Run just one pass over the bbs instead of separate counting
10353         and computation phase.
10354         (vt_finalize): Free VTI (bb)->mos vector instead of array.
10355
10356         PR debug/43329
10357         * tree-inline.c (remap_decls): Put old_var rather than origin_var
10358         into *nonlocalized_list vector.
10359         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
10360         even if origin is non-NULL.
10361         (gen_variable_die): Likewise.
10362         (process_scope_var): Don't change origin.
10363         (gen_decl_die): Likewise.
10364         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
10365         before adding new edges instead of after it, fix moving over
10366         debug stmts.
10367
10368 2010-03-11  David S. Miller  <davem@davemloft.net>
10369
10370         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
10371         of four.
10372         * configure: Rebuild.
10373
10374 2010-03-11  Martin Jambor  <mjambor@suse.cz>
10375
10376         PR tree-optimization/43257
10377         * tree.c (assign_assembler_name_if_neeeded): New function.
10378         (free_lang_data_in_cgraph): Assembler name assignment moved to the
10379         above new function.
10380         * tree.h (assign_assembler_name_if_neeeded): Declare.
10381         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
10382         the function if needed.
10383
10384 2010-03-11  Chris Demetriou  <cgd@google.com>
10385
10386         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
10387         include/stdint-gcc.h, and include/stdint.h world-readable.
10388
10389 2010-03-11  Richard Guenther  <rguenther@suse.de>
10390
10391         PR tree-optimization/43255
10392         * tree-vrp.c (process_assert_insertions_for): Do not insert
10393         asserts for trivial conditions.
10394
10395 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10396
10397         PR tree-optimization/43280
10398         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
10399         generation.  Move calculation of size out of the if branch.
10400         (find_bswap): Modify compare number generation.
10401
10402 2010-03-11  Richard Guenther  <rguenther@suse.de>
10403
10404         PR lto/43200
10405         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
10406         (input_gimple_stmt): Fixup handled component types during
10407         operand read.  Also fix up decls in ADDR_EXPRs.
10408
10409 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
10410
10411         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
10412         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
10413
10414 2010-03-10  Jan Hubicka  <jh@suse.cz>
10415
10416         PR c/43288
10417         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
10418         * varasm.c (get_variable_section): Don't do that here...
10419         (make_decl_rtl): ... and here.
10420         (do_assemble_alias): Produce decl RTL.
10421         (assemble_alias): Likewise.
10422
10423 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
10424
10425         PR debug/43290
10426         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
10427         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
10428         of fde->vdrap_reg.
10429         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
10430         (based_loc_descr): Only express drap or vdrap regno based expressions
10431         using DW_OP_fbreg when not optimizing.
10432         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
10433         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
10434         REG_CFA_SET_VDRAP note.
10435
10436 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
10437
10438         PR tree-optimization/43236
10439         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
10440         error in calculation of base address in reverse iteration case.
10441         (generate_builtin): Take number of latch executions if the statement
10442         is in the latch.
10443
10444 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
10445
10446         PR middle-end/42859
10447         * tree-eh.c: Include pointer-set.h.
10448         (lower_eh_dispatch): Filter out duplicate case labels and
10449         remove the unneeded edge when the label is unused.  Return
10450         true when some edges are removed.
10451         (execute_lower_eh_dispatch): When any lowering resulted in
10452         removing an edge, also delete unreachable blocks.
10453
10454 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
10455
10456         PR bootstrap/43287
10457         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
10458         UNSPEC_MACHOPIC_OFFSET.
10459
10460 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
10461
10462         PR target/43294
10463         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
10464         (m68k_delegitimize_address): New function.
10465
10466 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
10467
10468         PR debug/43299
10469         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
10470
10471         PR debug/43299
10472         * var-tracking.c (adjust_sets): New function.
10473         (count_with_sets, add_with_sets): Use it.
10474         (get_adjusted_src): New inline function.
10475         (add_stores): Use it.
10476
10477         PR debug/43304
10478         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
10479         call cselib_dummy_expand_value_rtx_cb instead of
10480         cselib_expand_value_rtx_cb.
10481
10482         PR debug/43293
10483         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
10484         * config/i386/i386.c: Include debug.h and dwarf2out.h.
10485         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
10486         and .cfi_endproc around the pic thunks.
10487         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
10488         all queued unwind info register saves are saved before the call.
10489         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
10490         considered as sp-=4 for unwind info and the pop as sp+=4 which
10491         also clobbers dest, but doesn't actually restore it.
10492
10493         PR debug/43290
10494         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
10495         RTX_FRAME_RELATED_P.
10496
10497 2010-03-09  Jie Zhang  <jie@codesourcery.com>
10498
10499         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
10500         whitespaces in output template.
10501
10502 2010-03-09  Jie Zhang  <jie@codesourcery.com>
10503
10504         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
10505         out array boundary.
10506
10507 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
10508
10509         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
10510         builtins.exp in a separate job.
10511
10512 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10513
10514         * graphite-sese-to-poly.c (add_param_constraints): Use
10515         lower_bound_in_type and upper_bound_in_type.
10516
10517 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10518
10519         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
10520         instead of unsigned_type_node.
10521
10522 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10523             Reza Yazdani  <reza.yazdani@amd.com>
10524
10525         PR middle-end/43065
10526         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
10527         on pointer type parameters.
10528
10529 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
10530
10531         PR middle-end/42644
10532         PR middle-end/42130
10533         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
10534         handle conversions from pointer to integers.
10535         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
10536         induction variable, to be able to work with code generated by CLooG.
10537         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
10538         (build_poly_scop): Bail out if we cannot codegen a loop.
10539
10540 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
10541
10542         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
10543         code generation with gloog_error.
10544
10545 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10546
10547         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
10548         Call fold_convert on all the returned values.
10549         (expand_scalar_variables_expr): Pass to
10550         expand_scalar_variables_ssa_name the type of the resulting expression.
10551
10552 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10553
10554         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
10555         ppl_min_for_le_pointset.
10556         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
10557         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
10558
10559 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10560
10561         * graphite-dependences.c (map_into_dep_poly): Removed.
10562         (dependence_polyhedron_1): Use combine_context_id_scat.
10563
10564 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10565
10566         * graphite-poly.h (struct poly_scattering): Add layout documentation.
10567         (struct poly_bb): Same.
10568         (combine_context_id_scat): New.
10569
10570 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10571
10572         PR middle-end/42326
10573         * sese.c (name_defined_in_loop_p): Return false for default
10574         definitions.
10575
10576 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10577
10578         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
10579         and clean up the logic.
10580
10581 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
10582
10583         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
10584         early return.
10585
10586 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
10587
10588         * var-tracking.c (remove_cselib_value_chains): Define only for
10589         ENABLE_CHECKING.
10590         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
10591         delete_slot_part, emit_notes_for_differences_1): Don't call
10592         remove_cselib_value_chains here.
10593         (set_slot_part, emit_notes_for_differences_2): Don't call
10594         add_cselib_value_chains here.
10595         (preserved_values): New vector.
10596         (preserve_value): New function.
10597         (add_uses, add_stores, vt_add_function_parameters): Use it
10598         instead of cselib_preserve_value.
10599         (changed_values_stack): New vector.
10600         (check_changed_vars_0): New function.
10601         (check_changed_vars_1, check_changed_vars_2): Use it.
10602         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
10603         changed_values_stack VALUEs.
10604         (vt_emit_notes): For all preserved_values call
10605         add_cselib_value_chains.  If ENABLE_CHECKING call
10606         remove_cselib_value_chains before verifying value_chains is empty.
10607         Initialize and free changed_values_stack.
10608         (vt_initialize): Initialize preserved_values.
10609         (vt_finalize): Free preserved_values.
10610
10611 2010-03-08  Richard Guenther  <rguenther@suse.de>
10612
10613         PR tree-optimization/43269
10614         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
10615         region detection.
10616
10617 2010-03-08  Martin Jambor  <mjambor@suse.cz>
10618
10619         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
10620         (ipa_is_param_called): Removed.
10621         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
10622         (ipa_print_node_params): Do not print the called flag.
10623         (ipa_write_node_info): Do not stream the called flag.
10624         (ipa_read_node_info): Likewise.
10625
10626 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
10627
10628         PR debug/43176
10629         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
10630         * cselib.c (struct expand_value_data): Add dummy field.
10631         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
10632         dummy to false.
10633         (cselib_dummy_expand_value_rtx_cb): New function.
10634         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
10635         any rtl.
10636         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
10637         * var-tracking.c: Include pointer-set.h.
10638         (variable): Change n_var_parts to char from int.  Add
10639         cur_loc_changed and in_changed_variables fields.
10640         (variable_canonicalize): Remove.
10641         (shared_var_p): New inline function.
10642         (unshare_variable): Maintain cur_loc_changed and
10643         in_changed_variables fields.  If var was in changed_variables,
10644         replace it there with new_var.  Just copy cur_loc instead of
10645         resetting it to something else.
10646         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
10647         (dataflow_set_union): Don't call variable_canonicalize.
10648         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
10649         of their DEBUG_EXPR_TREE_DECLs.
10650         (canonicalize_loc_order_check): Verify that cur_loc is NULL
10651         and in_changed_variables and cur_loc_changed is false.
10652         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
10653         and cur_loc_changed.  Don't update cur_loc here.
10654         (variable_merge_over_src): Don't call variable_canonicalize.
10655         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
10656         removing loc that is equal to cur_loc, clear cur_loc,
10657         set cur_loc_changed and ensure variable_was_changed is called.
10658         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
10659         compare pointers in cur_loc check, if it is equal to loc,
10660         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
10661         (variable_different_p): Remove compare_current_location argument,
10662         don't compare cur_loc.
10663         (dataflow_set_different_1): Adjust variable_different_p caller.
10664         (variable_was_changed): If dv had some var in changed_variables
10665         already, reset in_changed_variables flag for it and propagate
10666         cur_loc_changed over to the new variable.  On empty var
10667         always set cur_loc_changed.  Set in_changed_variables on whatever
10668         var is added to changed_variables.
10669         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
10670         Use shared_var_p.  When removing loc that is equal to cur_loc,
10671         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
10672         end, don't set it to something else, just call variable_was_changed.
10673         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
10674         loc being removed, clear cur_loc and set cur_loc_changed.
10675         Set cur_loc_changed if all locations have been removed.
10676         (struct expand_loc_callback_data): New type.
10677         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
10678         allocated.  Always create SUBREGs if simplify_subreg failed.
10679         Prefer to use cur_loc, when that fails and still in
10680         changed_variables (and seen first time) recompute it.  Set
10681         cur_loc_changed of variables which had to change cur_loc and
10682         compute elcd->cur_loc_changed if any of the subexpressions used
10683         had to change cur_loc.
10684         (vt_expand_loc): Adjust to pass arguments in
10685         expand_loc_callback_data structure.
10686         (vt_expand_loc_dummy): New function.
10687         (emitted_notes): New variable.
10688         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
10689         that weren't used for any other decl in current
10690         emit_notes_for_changes call call vt_expand_loc_dummy to update
10691         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
10692         first loc_chain location if NULL before.  Always use just
10693         cur_loc instead of first loc_chain location.  When cur_loc_changed
10694         is false, when not --enable-checking=rtl just don't emit any note.
10695         When rtl checking, compute the note and assert it is the same
10696         as previous note.  Clear cur_loc_changed and in_changed_variables
10697         at the end before removing from changed_variables.
10698         (check_changed_vars_3): New function.
10699         (emit_notes_for_changes): Traverse changed_vars to call
10700         check_changed_vars_3 on each changed var.
10701         (emit_notes_for_differences_1): Clear cur_loc_changed and
10702         in_changed_variables.  Recompute cur_loc of new_var.
10703         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
10704         (vt_emit_notes): Initialize and destroy emitted_notes.
10705
10706 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
10707
10708         PR rtl-optimization/42220
10709         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
10710         Use verify_reg_tracked to determine if we should use OP_OUT rather
10711         than OP_INOUT.
10712         (build_def_use): If we see an in-out operand for a register that we
10713         know nothing about, treat is an output if possible, fail the block if
10714         not.
10715
10716 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
10717
10718         PR debug/42897
10719         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
10720         permanently.
10721
10722 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
10723
10724         PR debug/42897
10725         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
10726         uses of relevant DEFs that are dead outside the loop too.
10727
10728 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
10729
10730         * var-tracking.c (dataflow_set_merge): Swap src and src2.
10731         Reverted:
10732         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
10733         PR debug/41371
10734         * var-tracking.c (values_to_unmark): New variable.
10735         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10736         values_to_unmark vector.  Moved body to...
10737         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
10738         instead queue it into values_to_unmark vector.
10739         (vt_find_locations): Free values_to_unmark vector.
10740
10741 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
10742
10743         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
10744         (site.exp): Export them when plugins are enabled.
10745
10746 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
10747
10748         PR middle-end/42326
10749         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
10750         that contain scevs.
10751         (chrec_fold_multiply): Same.
10752
10753 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
10754
10755         PR c/43248
10756         * c-decl.c (build_compound_literal): Return early if init is
10757         an error_mark_node.
10758
10759 2010-03-04  Martin Jambor  <mjambor@suse.cz>
10760
10761         PR tree-optimization/43164
10762         PR tree-optimization/43191
10763         * tree-sra.c (type_consists_of_records_p): Reject records with
10764         zero-size bit-fields at the end.
10765
10766 2010-03-04  Mike Stump  <mikestump@comcast.net>
10767
10768         * Makefile.in (TAGS): Remove *.y.
10769
10770 2010-03-04  Richard Guenther  <rguenther@suse.de>
10771
10772         PR tree-optimization/40761
10773         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
10774         in reverse order.
10775         (my_rev_post_order_compute): New function.
10776         (init_pre): Call it.
10777
10778 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
10779
10780         PR middle-end/43209
10781         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
10782         decrease the cost of an IV candidate when the cost is infinite.
10783
10784 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10785
10786         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
10787         Use '3DNow!' for the extension of that name, ensure normal space
10788         after the string.
10789         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
10790
10791 2010-03-03  Jeff Law  <law@redhat.com>
10792
10793         * PR middle-end/32693
10794         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
10795         than gen_rtx_SUBREG.
10796         (extract_bit_field_1): Likewise.
10797
10798 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
10799
10800         * doc/sourcebuild.texi (Test directives): Document that arguments
10801         include-opts and exclude-opts are now optional for dg-skip-if,
10802         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
10803
10804 2010-03-03  Jason Merrill  <jason@redhat.com>
10805
10806         PR c++/12909
10807         * cgraph.h (varpool_node): Add extra_name field.
10808         * varpool.c (varpool_extra_name_alias): New.
10809         (varpool_assemble_decl): Emit extra name aliases.
10810         (varpool_mark_needed_node): Look past an extra name alias.
10811         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
10812         * lto-streamer-in.c (lto_input_tree): Read it.
10813         * lto-streamer-out.c (output_unreferenced_globals): Write it.
10814
10815 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
10816
10817         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
10818         (sparc*-*-solaris2*): ...this.
10819
10820 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
10821
10822         PR debug/43229
10823         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
10824         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
10825         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
10826         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
10827
10828         PR debug/43237
10829         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
10830         fallthrough to default handling, just with want_address 0 instead of 2.
10831         For single element lists, add_AT_loc directly, otherwise create an
10832         artificial variable DIE and stick location list to it.
10833
10834         PR debug/43177
10835         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
10836         (VAL_EXPR_HAS_REVERSE): Define.
10837         (reverse_op): New function.
10838         (add_stores): For reversible operations add an extra MO_VAL_USE.
10839
10840 2010-03-02  Jason Merrill  <jason@redhat.com>
10841
10842         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
10843
10844 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
10845
10846         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
10847         (sparc64-*-linux*): Likewise.
10848         (sparc64-*-solaris2*): Include assembler files before linker ones.
10849         (sparc-*-solaris2*): Simplify and reorder to match previous case.
10850         * config/sparc/gas.h: Delete.
10851         * config/sparc/sol2-64.h: Add copyright notice.
10852         * config/sparc/sol2-gas-bi.h: Likewise.
10853         * config/sparc/sol2-gld.h: Likewise.
10854         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
10855         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
10856         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
10857         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
10858         (sparc_elf_asm_named_section): Rename into...
10859         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
10860
10861 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
10862
10863         * config/alpha/alpha.c (override_options): Fix -mtune error message.
10864
10865 2010-03-02  Jeff Law  <law@redhat.com>
10866
10867         PR middle-end/42431
10868         * reload1.c (rtx_p, substitute_stack): Declare.
10869         (substitute): Record addresses of changed rtxs.
10870         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
10871         Restore the original rtx when complete.
10872         (reload): Free subsitute_stack when complete.
10873
10874 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
10875
10876         * doc/gccint.texi (menu): Add Testsuites as a chapter.
10877         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
10878         new chapter.
10879         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
10880         LTO Testing, gcov Testing, profopt Testing, compat Testing,
10881         Torture Tests): Change from subsection to section.
10882
10883 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
10884             Steven Bosscher  <steven@gcc.gnu.org>
10885
10886         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
10887         instead of bb.
10888
10889 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
10890
10891         PR middle-end/42640
10892         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
10893         the assignment from the new induction variable to the assignment
10894         of the value from the original loop PHI function.
10895
10896 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
10897             Daniel Jacobowitz  <dan@codesourcery.com>
10898
10899         * doc/sourcebuild.texi (Test directives): Clarify options to
10900         dg-skip-if.
10901
10902 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10903
10904         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
10905         Disable cfi directives unless GCC and gas agree on using read-only
10906         .eh_frame sections for 64-bit.
10907         * configure: Regenerate.
10908
10909 2010-03-01  Richard Guenther  <rguenther@suse.de>
10910
10911         PR tree-optimization/43220
10912         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
10913         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
10914
10915 2010-03-01  Richard Guenther  <rguenther@suse.de>
10916             Martin Jambor  <mjambor@suse.cz>
10917
10918         PR middle-end/41250
10919         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
10920         gimplified parameters.
10921
10922 2010-03-01  Christian Bruel  <christian.bruel@st.com>
10923
10924         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
10925
10926 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
10927
10928         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
10929
10930 2010-03-01  Richard Guenther  <rguenther@suse.de>
10931
10932         PR middle-end/43213
10933         * expr.c (expand_assignment): Use the alias-oracle to tell
10934         if the rhs aliases the result decl.
10935
10936 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10937
10938         PR pch/14940
10939         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
10940         to sol_gt_pch_get_address.
10941         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
10942         64-bit, SPARC and x86.
10943         (sol_gt_pch_get_address): New function.
10944
10945 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
10946
10947         * toplev.h (inform_n, error_n): Declare.
10948         * diagnostic.c (inform_n, error_n): New function.
10949
10950 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
10951
10952         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
10953         has no rtl yet when processing local_decls, queue it and recheck
10954         if deferred stack allocation hasn't assigned it rtl.
10955
10956 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
10957
10958         * config/sh/sh.c (unspec_bbr_uid): New.
10959         (gen_block_redirect): Use it instead of INSN_UID.
10960         (gen_far_branch): Likewise.
10961
10962 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
10963
10964         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
10965         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
10966
10967 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10968
10969         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
10970         (Warning Options): -Wno-conversion-null is valid for
10971         Objective-C++ as well.
10972         * doc/tm.texi (Named Address Spaces): Likewise.
10973         * doc/plugins.texi (Plugins): Replace TABs with spaces.
10974         * doc/tree-ssa.texi (Tree SSA): Likewise.
10975
10976 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
10977
10978         PR bootstrap/43202
10979         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
10980         by default.  Don't set the default arch for
10981         i[34567]86-*-darwin*|x86_64-*-darwin*.
10982
10983 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
10984
10985         PR bootstrap/43202
10986         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
10987         default.  Set the default 32bit/64bit archs with $with_arch
10988         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
10989
10990 2010-02-27  Richard Guenther  <rguenther@suse.de>
10991
10992         PR tree-optimization/43186
10993         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
10994         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
10995         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
10996         unroller iterations.
10997
10998 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
10999
11000         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
11001         required and i[34567]86-*-* targets don't support 64bit ISA.
11002
11003 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
11004
11005         PR ada/43096
11006         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
11007         the same alias set.
11008
11009 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
11010
11011         * config.gcc: Set the default arch at least to Prescott for
11012         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
11013         if SSE math is enabled.
11014
11015 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11016
11017         * diagnostic.c (diagnostic_initialize): Update.
11018         (diagnostic_report_diagnostic): Test inhibit_notes_p for
11019         informative notes.
11020         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
11021         (diagnostic_inhibit_notes): New.
11022         * toplev.c (process_options): inhibit notes with -fcompare-debug.
11023
11024 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11025
11026         PR c/20631
11027         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
11028         * doc/standards.texi: Likewise.
11029         * doc/extend.texi: Likewise.
11030         * doc/trouble.texi: Likewise.
11031         * doc/cppopts.texi: Likewise.
11032         * doc/install.texi: Likewise.
11033         * c.opt (std=c90,std=gnu90): New options.
11034         * c-opts.c (c_common_handle_option): Handle them.
11035
11036 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11037
11038         PR c/24577
11039         * c-decl.c (undeclared_variable): Use an informative note.
11040
11041 2010-02-26  Richard Guenther  <rguenther@suse.de>
11042
11043         PR tree-optimization/43186
11044         * gimple.h (gimple_fold): Remove.
11045         * gimple.c (gimple_fold): Remove.  Inline into single user ...
11046         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
11047         Try harder for conditions.
11048
11049 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
11050
11051         PR debug/43190
11052         * function.c (used_types_insert): Don't skip through named pointer
11053         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
11054         and it is different from the main variant's type.
11055
11056 2010-02-26  Nick Clifton  <nickc@redhat.com>
11057
11058         * config/rx/rx.md (sminsi3): Remove bogus alternative.
11059
11060 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
11061
11062         * config.gcc: Support --with-fpmath=sse for x86.
11063
11064         * config/i386/ssemath.h: New.
11065
11066         * doc/install.texi (--with-fpmath=sse): Documented.
11067
11068 2010-02-26  Richard Guenther  <rguenther@suse.de>
11069
11070         PR tree-optimization/43188
11071         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
11072         vector types of over-aligned element type.
11073
11074 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
11075
11076         PR target/43175
11077         * config/i386/i386.c (expand_vec_perm_blend): Use correct
11078         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
11079
11080 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
11081
11082         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
11083
11084 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
11085
11086         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
11087         * var-tracking.c: Include diagnostic.h.
11088         (debug_dv): New function.
11089         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
11090
11091         PR debug/43160
11092         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
11093         (add_value_chain, add_value_chains, remove_value_chain,
11094         remove_value_chains): Handle DEBUG_EXPRs.
11095         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
11096
11097         PR debug/43161
11098         * regcprop.c (struct queued_debug_insn_change): New type.
11099         (struct value_data_entry): Add debug_insn_changes field.
11100         (struct value_data): Add n_debug_insn_changes field.
11101         (debug_insn_changes_pool): New variable.
11102         (free_debug_insn_changes, apply_debug_insn_changes,
11103         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
11104         (kill_value_one_regno): Call free_debug_insn_changes if needed.
11105         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
11106         fields.
11107         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
11108         changes for them.
11109         (copyprop_hardreg_forward_1): Don't call apply_change_group for
11110         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
11111         changes, call cprop_find_used_regs via note_stores.
11112         (copyprop_hardreg_forward): When copying vd from predecessor
11113         which has any queued DEBUG_INSN changes, make sure the pointers are
11114         cleared.  At the end call df_analyze and then if there are any
11115         DEBUG_INSN changes queued at the end of some basic block for still
11116         live registers, apply them.
11117         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
11118
11119 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
11120
11121         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
11122         (arm*-*-*): Ditto.
11123
11124 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
11125
11126         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
11127         targets.  Set the default with_cpu/with_arch from arch/cpu.
11128         Allow x86-64 and native for with_cpu/with_arch.
11129
11130 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
11131
11132         * ebitmap.c: Change calls to verify_popcount with calls to
11133         sbitmap_verify_popcount.
11134         (ebitmap_clear_bit): Fixed map->cacheindex test and
11135         map>cache update when bit clearing results in an empty
11136         element.
11137
11138 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
11139
11140         PR target/43154
11141         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
11142         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
11143         and support both V2DF and V2DI modes.
11144         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
11145         support both V2DF and V2DI modes.
11146         (general): Delete trailing whitespace from a few patterns.
11147
11148         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11149         V2DF/V2DI interleave high/low builtins.
11150
11151         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
11152         new VSX builtins.
11153
11154         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
11155         interleave high/low functions.
11156
11157 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
11158
11159         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
11160         #pragma extern_prefix.
11161
11162 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
11163
11164         PR debug/43166
11165         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
11166         BLKmode, assert op0 is a MEM and just adjust its mode.
11167
11168         PR debug/43165
11169         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
11170         if bitpos isn't multiple of mode's bitsize.
11171
11172 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11173
11174         * c.opt (-ftemplate-depth=): New.
11175         (-ftemplate-depth-): Deprecate.
11176         * optc-gen.awk: Handle -ftemplate-depth=.
11177         * opth-gen.awk: Likewise.
11178         * c-opts.c (c_common_handle_option): Likewise.
11179         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
11180
11181 2010-02-24  Jason Merrill  <jason@redhat.com>
11182
11183         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
11184
11185 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11186
11187         * cfg.c (alloc_aux_for_block): Remove inline.
11188         (alloc_aux_for_edge): Likewise.
11189
11190 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11191
11192         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
11193
11194 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11195
11196         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
11197         * config/i386/sol2-gas.h: New file.
11198         * config.gcc (i[34567]86-*-solaris2*): Use it.
11199
11200 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11201
11202         PR c/43128
11203         * c-typeck.c (ep_convert_and_check): New.
11204         (build_conditional_expr): Use it.
11205         (build_binary_op): Likewise.
11206
11207 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
11208
11209         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
11210
11211         PR debug/43150
11212         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
11213         bounds even for -O+.
11214         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
11215         expr needs to have DECL_NAME set.
11216
11217 2010-02-24  Nick Clifton  <nickc@redhat.com>
11218
11219         * config/mep/mep.c: Include gimple.h.
11220         (mep_function_uses_sp): Delete unused function.
11221         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
11222         parameters.  Use unsigned integers to count args.  Return a
11223         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
11224
11225 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
11226
11227         PR target/43107
11228         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
11229         greater or equal to nelt instead of 2 * nelt.
11230         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
11231         with nelt - 1.
11232
11233 2010-02-23  Jason Merrill  <jason@redhat.com>
11234
11235         PR debug/42800
11236         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
11237         in cfun->local_decls even if they have register types.
11238
11239         PR c++/42837
11240         * stor-layout.c (place_field): Don't warn about unnecessary
11241         DECL_PACKED if the type is packed.
11242
11243 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
11244
11245         PR target/43139
11246         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
11247         GOTOFF relocs, even when the base reg isn't pic pointer.
11248
11249 2010-02-23  Michael Matz  <matz@suse.de>
11250
11251         PR debug/43077
11252         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
11253         (expand_gimple_basic_block): Generate and use debug temps if there
11254         are debug uses left after the last real use of TERed ssa names.
11255         Unlink debug immediate uses when they are expanded.
11256
11257 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11258
11259         PR 43123
11260         * config/i386/i386.c (override_options): Reorganise to provide
11261         better error messages.
11262
11263 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11264
11265         PR middle-end/43083
11266         * graphite-scop-detection.c (create_single_exit_edge): Move
11267         the call to find_single_exit_edge to....
11268         (create_sese_edges): ...here.  Don't handle multiple edges
11269         exiting the function.
11270         (build_graphite_scops): Don't handle multiple edges
11271         exiting the function.
11272
11273 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11274
11275         PR middle-end/43097
11276         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
11277         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
11278
11279 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
11280
11281         PR middle-end/43026
11282         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
11283
11284 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11285
11286         PR c++/43126
11287         * c-typeck.c (convert_arguments): Print declaration location.
11288         * c-common.c (validate_nargs): Rename as
11289         builtin_function_validate_nargs.
11290         (check_builtin_function_arguments): Update.
11291
11292 2010-02-22  Richard Guenther  <rguenther@suse.de>
11293
11294         PR lto/43045
11295         * tree-inline.c (declare_return_variable): Use the type of
11296         the call stmt lhs if available.
11297
11298 2010-02-22  Duncan Sands  <baldrick@free.fr>
11299
11300         * passes.c (register_pass): Always consider all pass lists when
11301         ref_pass_instance_number is zero.
11302
11303 2010-02-22  Richard Guenther  <rguenther@suse.de>
11304
11305         PR tree-optimization/42749
11306         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
11307         parameter.  Do arithmetic in the original type.
11308         (update_accumulator_with_ops): Likewise.
11309         (adjust_accumulator_values): Adjust.
11310
11311 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11312
11313         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
11314         (QI to BLKmode splitter): New splitter.
11315
11316 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
11317
11318         * config/i386/i386.c (initial_ix86_tune_features): Turn on
11319         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
11320
11321 2010-02-22  Richard Guenther  <rguenther@suse.de>
11322
11323         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
11324
11325 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
11326
11327         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
11328         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
11329         ($(T)crti.o, $(T)crtn.o): Remove rules.
11330
11331 2010-02-21  Tobias Burnus  <burnus@net-b.de>
11332
11333         PR fortran/35259
11334         * doc/invoke.texi (-fassociative-math): Document that this
11335         option is automatically enabled for Fortran.
11336
11337 2010-02-20  David S. Miller  <davem@davemloft.net>
11338
11339         * configure.ac: Test if linker and assembler properly support
11340         GOTDATA_OP relocations.
11341         * configure: Rebuild.
11342         * config.in: Likewise.
11343         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
11344         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
11345         (movsi_high_pic): Likewise.
11346         (movdi_lo_sum_pic): Likewise.
11347         (movdi_high_pic): Likewise.
11348         (movsi_pic_gotdata_op): New pattern.
11349         (movdi_pic_gotdata_op): Likewise.
11350         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
11351         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
11352
11353 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
11354
11355         PR target/43067
11356         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
11357         attribute to ssemul.
11358         (xop_mulv2div2di3_high): Ditto.
11359
11360 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11361
11362         PR c++/35669
11363         * c.opt (Wconversion-null): New option.
11364         * doc/invoke.texi (Wconversion-null): Document.
11365
11366 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11367
11368         * common.opt (Wlarger-than-): Add Undocumented.
11369
11370 2010-02-19  Mike Stump  <mikestump@comcast.net>
11371
11372         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
11373
11374 2010-02-19  Jason Merrill  <jason@redhat.com>
11375
11376         PR target/40332
11377         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
11378         * configure: Likewise.
11379
11380 2010-02-20  Alan Modra  <amodra@gmail.com>
11381
11382         PR middle-end/42344
11383         * cgraph.h (cgraph_make_decl_local): Declare.
11384         * cgraph.c (cgraph_make_decl_local): New function.
11385         (cgraph_make_node_local): Use it.
11386         * cgraphunit.c (cgraph_function_versioning): Likewise.
11387         * ipa.c (function_and_variable_visibility): Likewise.
11388
11389 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
11390
11391         PR bootstrap/43121
11392         * except.c (sjlj_emit_function_enter): Don't call
11393         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
11394         directly.
11395         * rtl.h (add_reg_br_prob_note): Remove prototype.
11396
11397 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11398
11399         PR 41779
11400         * c-common.c (conversion_warning): Remove widening conversions
11401         before checking the conversion of integers to reals.
11402
11403 2010-02-19  Mike Stump  <mikestump@comcast.net>
11404
11405         PR middle-end/43125
11406         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
11407
11408         PR objc/43061
11409         * cgraphunit.c (process_function_and_variable_attributes): Check
11410         DECL_PRESERVE_P instead of looking up attribute "used".
11411         * ipa-pure-const.c (check_decl): Likewise.
11412         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
11413         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
11414         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
11415         instead of attribute "used".
11416         * config/sol2-c.c (solaris_pragma_init): Likewise.
11417         (solaris_pragma_fini): Likewise.
11418
11419 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
11420
11421         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
11422         Use XCNEW instead of xcalloc.
11423         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
11424         XNEW instead of xmalloc.
11425         (get_fields): Use XNEWVEC instead of xmalloc.
11426
11427         PR debug/43084
11428         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
11429         populate vars array.
11430         (create_new_general_access): For debug stmts just reset value.
11431         (get_stmt_accesses): For accesses within debug stmts just record them
11432         using add_access_to_acc_sites instead of preventing the peeling or
11433         counting them as accesses.
11434
11435         PR middle-end/42233
11436         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
11437
11438 2010-02-19  Richard Guenther  <rguenther@suse.de>
11439
11440         PR tree-optimization/42916
11441         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
11442         instructions.
11443
11444 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
11445
11446         * configure.ac: Replace all uses of changequote in macro arguments
11447         with proper quoting.
11448
11449 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
11450
11451         PR middle-end/42233
11452         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
11453
11454 2010-02-19  Richard Guenther  <rguenther@suse.de>
11455
11456         PR tree-optimization/42944
11457         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
11458         test for aliasing with errno.
11459
11460 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
11461
11462         PR middle-end/42233
11463         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
11464         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
11465         * dojump.c: Include output.h.
11466         (inv): New inline function.
11467         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
11468         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
11469         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
11470         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
11471         argument, pass it down to other calls.
11472         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
11473         add REG_BR_PROB note to the conditional jump.
11474         * cfgexpand.c (add_reg_br_prob_note): Removed.
11475         (expand_gimple_cond): Don't call it, add the probability
11476         as last argument to jumpif_1/jumpifnot_1.
11477         * Makefile.in (dojump.o): Depend on output.h.
11478         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
11479         callers.
11480         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
11481         * stmt.c (do_jump_if_equal): Likewise.
11482         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
11483         * loop-unswitch.c (compare_and_jump_seq): Likewise.
11484         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
11485         Likewise.
11486         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
11487         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
11488         jumpifnot_1 callers.
11489         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
11490         callers.
11491         (store_expr): Adjust jumpifnot caller.
11492         (store_constructor): Adjust jumpif caller.
11493
11494         PR middle-end/42233
11495         * gimplify.c (gimple_boolify): For __builtin_expect call
11496         gimple_boolify also on its first argument.
11497
11498 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
11499
11500         * configure.ac (gnu-unique-object): Wrap regexps using [] in
11501         changequote block.
11502         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
11503         * configure: Regenerated.
11504
11505 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11506
11507         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
11508         lang_hooks.types_compatible_p instead of comptypes.
11509
11510 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
11511
11512         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
11513         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
11514         if __prefer_thumb__ is defined.
11515
11516 2010-02-18  Martin Jambor  <mjambor@suse.cz>
11517
11518         PR tree-optimization/43066
11519         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
11520         array with zero-sized element type.
11521
11522 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
11523
11524         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
11525         rtx, allocate struct var_loc_node here and return it to the
11526         caller, and only if it is actually needed.
11527         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
11528         move it earlier and return immediately if it returns NULL.
11529
11530 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
11531
11532         * config/sparc/gas.h: New file.  Restore
11533         TARGET_ASM_NAMED_SECTION to its ELF default.
11534         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
11535         check !HAVE_GNU_AS.
11536         * config/sparc/sparc.c (sparc_elf_asm_named_section):
11537         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
11538         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
11539         after sparc/sysv4.h.
11540
11541 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
11542
11543         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
11544
11545 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
11546
11547         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
11548         patterns from predicated pattern.
11549
11550 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
11551
11552         PR target/43103
11553         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
11554         for insn mnemonic suffix.
11555
11556 2010-02-17  Richard Guenther  <rguenther@suse.de>
11557
11558         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
11559         to loop PHI nodes.
11560
11561 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
11562
11563         PR debug/42918
11564         * caller-save.c (save_call_clobbered_regs): If BB ends with
11565         a DEBUG_INSN, move any notes in between last real insn and the last
11566         DEBUG_INSN after the last DEBUG_INSN.
11567
11568 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
11569
11570         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
11571         Fix return type.  Fix argument type.  Explain meaning of return value.
11572
11573 2010-02-16  Richard Guenther  <rguenther@suse.de>
11574
11575         PR tree-optimization/41043
11576         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
11577         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
11578         statements ...
11579         (vrp_visit_phi_node): ... but only for loop PHI nodes.
11580
11581 2010-02-16  Ira Rosen  <irar@il.ibm.com>
11582
11583         PR tree-optimization/43074
11584         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
11585         * tree-vect-loop.c (vect_analyze_loop_operations): Add
11586         vectorizable cycles in hybrid SLP check.
11587         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
11588
11589 2010-02-16  Richard Guenther  <rguenther@suse.de>
11590
11591         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
11592         (true_dependence): If memrefs_conflict_p computes must-alias
11593         trust it.  Move TBAA check after offset-based disambiguation.
11594         (canon_true_dependence): Likewise.
11595
11596 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
11597
11598         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
11599         * doc/invoke.texi: Document it.
11600         * var-tracking.c: Include toplev.h and params.h.
11601         (vt_find_locations): Return bool indicating success.  Compute
11602         hash sizes unconditionally.  Check new parameter, report.
11603         (variable_tracking_main_1): Check vt_find_locations results and
11604         retry.  Renamed from...
11605         (variable_tracking_main): ... this.  New wrapper to preserve
11606         flag_var_tracking_assignments.
11607         * Makefile.in (var-tracking.o): Adjust dependencies.
11608
11609 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
11610             Jakub Jelinek <jakub@redhat.com>
11611
11612         PR target/42854
11613         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
11614         if weak_import attribute is present.
11615         * config/darwin.c (machopic_select_section): Likewise.
11616
11617 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
11618
11619         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
11620         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
11621         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
11622         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
11623
11624         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
11625         types.
11626
11627         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
11628         Fix argument types.
11629
11630         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
11631         Rewrite text to refer to the names.
11632
11633 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
11634
11635         * config/i386/i386-builtin-types.def
11636         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
11637         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
11638         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
11639         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
11640         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
11641         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
11642         IX86_BUILTIN_VPERMIL2PS256.
11643         (MULTI_ARG_4_DF2_DI_I): Defined.
11644         (MULTI_ARG_4_DF2_DI_I1): Defined.
11645         (MULTI_ARG_4_SF2_SI_I): Defined.
11646         (MULTI_ARG_4_SF2_SI_I1): Defined.
11647         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
11648         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
11649         __builtin_ia32_vpermil2ps256.
11650         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
11651         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
11652         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
11653         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
11654         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
11655         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
11656         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
11657         CODE_FOR_xop_vpermil2v8sf3.
11658         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
11659         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
11660         * config/i386/xopintrin.h (_mm_permute2_pd): New.
11661         (_mm256_permute2_pd): New.
11662         (_mm_permute2_ps): New.
11663         (_mm256_permute2_ps): New.
11664
11665 2010-02-15  Nick Clifton  <nickc@redhat.com>
11666
11667         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
11668         boolean parameters.  Use emit_jump_insn when emitting a pop
11669         instruction containing a return insn.
11670         (push): Use 'true' rather than '1' as second parameter to F.
11671         (h8300_expand_prologue): Likewise.
11672         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
11673         (h8300_expand_epilogue): Likewise.
11674
11675 2010-02-15  Richard Guenther  <rguenther@suse.de>
11676
11677         PR middle-end/43068
11678         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
11679         if that is zero.
11680
11681 2010-02-15  Nick Clifton  <nickc@redhat.com>
11682
11683         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
11684         delta.
11685
11686 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
11687
11688         * intl.c (fake_ngettext): New function.
11689         * intl.h (fake_ngettext): Declare.
11690         (ngettext): Define macro.
11691         * collect2.c (notice_translated): New function.
11692         (main): Use notice_translated and ngettext.
11693         * collect2.h (notice_translated): Declare.
11694
11695 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
11696
11697         * reorg.c (delete_computation): Comment fixes.
11698         * caller-save.c (setup_save_areas): Idem.
11699         * sel-sched-dump.c (dump_lv_set): Idem.
11700         * rtl.def: Idem.
11701
11702 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11703
11704         * config/s390/s390.c (s390_sched_init): New function.
11705         (TARGET_SCHED_INIT): Target hook defined.
11706
11707 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
11708             Jack Howarth  <howarth@bromo.med.uc.edu>
11709             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
11710
11711         PR target/42982
11712         Partial revert of unintended change in fix for PR41605.
11713         * config/darwin.h: Fix typo.
11714         * config/darwin9.h: Same.
11715
11716 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
11717
11718         * c-pch.c (pch_init): Clear v.
11719
11720 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
11721
11722         PR middle-end/42930
11723         * graphite-scop-detection.c (graphite_can_represent_scev): Call
11724         graphite_can_represent_init for MULT_EXPR.
11725
11726 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
11727
11728         PR middle-end/42914
11729         PR middle-end/42530
11730         * graphite-sese-to-poly.c (remove_phi): New.
11731         (translate_scalar_reduction_to_array): Call remove_phi.
11732
11733 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
11734
11735         PR middle-end/42771
11736         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
11737         * graphite-clast-to-gimple.h (gloog): Update declaration.
11738         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
11739         * graphite-poly.h (struct poly_bb): Add missing comments.
11740         (struct scop): Add poly_scop_p field.
11741         (POLY_SCOP_P): New.
11742         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
11743         * graphite.c (graphite_transform_loops): Build the polyhedral
11744         representation for each scop before code generation.
11745         * sese.c (rename_variables_in_operand): Removed.
11746         (rename_variables_in_expr): Return the renamed expression.
11747         (rename_sese_parameters): New.
11748         * sese.h (rename_sese_parameters): Declared.
11749
11750 2010-02-11  Richard Guenther  <rguenther@suse.de>
11751
11752         PR tree-optimization/42998
11753         * tree-ssa-pre.c (create_expression_by_pieces): Treat
11754         POINTER_PLUS_EXPR properly.
11755
11756 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
11757             Changpeng Fang  <changpeng.fang@amd.com>
11758
11759         PR middle-end/40886
11760         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
11761         the cost of an IV candidate when the IV is used in a test against zero.
11762
11763         * gcc.dg/tree-ssa/ivopts-3.c: New.
11764
11765 2010-02-11  Richard Guenther  <rguenther@suse.de>
11766
11767         PR lto/41664
11768         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
11769         pointer-vs-decl case by swapping refs.  Handle some cases
11770         of pointer-vs-decl disambiguations more conservatively.
11771         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
11772         to false after expanding.
11773
11774 2010-02-11  Richard Guenther  <rguenther@suse.de>
11775
11776         PR driver/43021
11777         * gcc.c (process_command): Handle LTO file@offset case more
11778         appropriately.
11779
11780 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
11781
11782         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
11783         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
11784         of DEBUG_INSNs.
11785         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
11786
11787         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
11788         if MEM's mode size isn't DWARF2_ADDR_SIZE.
11789         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
11790         Optimize eq/ne comparisons when both arguments are known to be
11791         zero-extended.
11792         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
11793         Don't mask operands unnecessarily if they are known to be already
11794         zero-extended.
11795
11796 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
11797
11798         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
11799         instead of loop.
11800
11801 2010-02-10  Richard Guenther  <rguenther@suse.de>
11802
11803         PR tree-optimization/43017
11804         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
11805         for wrapping signed arithmetic.
11806
11807 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
11808
11809         PR debug/43010
11810         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
11811         if no debug info should be emitted for it.
11812
11813 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
11814
11815         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
11816         note when flag_exceptions is set.
11817
11818 2010-02-10  Duncan Sands  <baldrick@free.fr>
11819
11820         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
11821
11822 2010-02-10  Richard Guenther  <rguenther@suse.de>
11823
11824         PR c/43007
11825         * tree.c (get_unwidened): Handle constants.
11826         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
11827
11828 2010-02-10  Martin Jambor  <mjambor@suse.cz>
11829
11830         PR lto/42985
11831         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
11832         check for variable argument counts independently.
11833
11834 2010-02-10  Christian Bruel  <christian.bruel@st.com>
11835
11836         PR target/42841
11837         * config/sh/sh.c (find_barrier): Increase length for non delayed
11838         conditional branches.
11839
11840 2010-02-10  Christian Bruel  <christian.bruel@st.com>
11841
11842         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
11843
11844 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
11845
11846         * builtins.c (set_builtin_user_assembler_name): Also handle
11847         ffs if int is smaller than word.
11848
11849 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
11850
11851         PR middle-end/42973
11852         * ira-conflicts.c (get_dup): Remove.
11853         (process_reg_shuffles): Add new parameter.  Use it as an
11854         additional guard for copy generation.
11855         (add_insn_allocno_copies): Rewrite.
11856
11857 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
11858
11859         * common.opt (fsched2-use-traces): Preserved for backward
11860         compatibility.
11861         * doc/invoke.texi: Remove the documentation about option
11862         -fsched2-use-traces.
11863         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
11864         flag_sched2_use_traces.
11865         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
11866         the backward compatibility flag section.
11867
11868 2010-02-09  Richard Guenther  <rguenther@suse.de>
11869
11870         PR tree-optimization/43008
11871         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
11872         make HEAP variables initialized from global memory if they
11873         are not known builtin functions.
11874         (find_func_aliases): Adjust.
11875
11876 2010-02-09  Richard Guenther  <rguenther@suse.de>
11877
11878         PR tree-optimization/43000
11879         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
11880         arithmetic manually.
11881
11882 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
11883
11884         PR tree-optimization/42931
11885         * tree-loop-linear.c (try_interchange_loops): Don't call
11886         double_int_mul if estimated_loop_iterations failed.
11887
11888 2010-02-08  Martin Jambor  <mjambor@suse.cz>
11889
11890         PR middle-end/42898
11891         * tree-sra.c (build_accesses_from_assign): Do not mark in
11892         should_scalarize_away_bitmap if stmt has volatile ops.
11893         (sra_modify_assign): Do not process assigns piecemeal if if stmt
11894         has volatile ops.
11895
11896 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
11897
11898         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
11899
11900 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
11901
11902         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
11903         before the pattern.
11904
11905 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
11906
11907         PR middle-end/42946
11908         * df-core.c (df_finish_pass): Change type of saved_flags to int.
11909
11910 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
11911
11912         PR middle-end/42988
11913         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
11914         to unknown_dependence.
11915         (graphite_legal_transform_dr): Handle the unknown_dependence.
11916         (graphite_carried_dependence_level_k): Same.
11917
11918 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
11919
11920         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
11921
11922 2010-02-07  Richard Guenther  <rguenther@suse.de>
11923
11924         PR middle-end/42991
11925         * expr.c (get_inner_reference): Always initialize *pbitsize.
11926
11927 2010-02-07  Richard Guenther  <rguenther@suse.de>
11928
11929         PR middle-end/42956
11930         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
11931         new ARRAY_REFs on variable size element or minimal index arrays.
11932         Complete.
11933         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
11934         gimple_fold_indirect_ref.
11935
11936 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
11937
11938         PR target/42957
11939         * arm.c (arm_override_options): Just return if the user has specified
11940         an invalid fpu name.
11941
11942 2010-02-03  Jason Merrill  <jason@redhat.com>
11943
11944         PR c++/42870
11945         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
11946         i386_pe_maybe_record_exported_symbol.
11947
11948 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
11949
11950         PR target/42924
11951         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
11952         (pa_delegitimize_address): New function.
11953
11954 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
11955
11956         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
11957         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
11958
11959 2010-02-05  Richard Guenther  <rguenther@suse.de>
11960
11961         PR lto/42762
11962         * lto-streamer-in.c (get_resolution): Deal with references
11963         to undefined functions.
11964
11965 2010-02-05  Richard Guenther  <rguenther@suse.de>
11966
11967         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
11968         (fold_const_aggregate_ref): Likewise.
11969         (ccp_fold_stmt): Substitute loads.
11970         (maybe_fold_reference): Verify types before substituting.
11971         Unshare properly.
11972         (fold_gimple_assign): Unshare properly.
11973         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
11974
11975 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
11976
11977         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
11978         for rs6000_gen_cell_microcode.
11979
11980 2010-02-04  Richard Guenther  <rguenther@suse.de>
11981
11982         PR rtl-optimization/42952
11983         * dse.c (const_or_frame_p): Remove MEM handling.
11984
11985 2010-02-04  Nick Clifton  <nickc@redhat.com>
11986
11987         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
11988         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
11989         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
11990         (mn10300_asm_output_mi_thunk): New function.
11991         (mn10300_can_output_mu_thunk): New function.
11992         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
11993         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
11994         (FUNCTION_ARG): Delete incorrect comment.
11995
11996 2010-02-03  Jason Merrill  <jason@redhat.com>
11997
11998         PR c++/40138
11999         * fold-const.c (operand_equal_p): Handle erroneous types.
12000
12001 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
12002
12003         * config/h8300/h8300.md (can_delay): Fix attibute condition.
12004
12005 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
12006
12007         PR rtl-optimization/42941
12008         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
12009         of xmalloc.
12010
12011 2010-02-03  Jason Merrill  <jason@redhat.com>
12012
12013         PR c++/35652
12014         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
12015
12016 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
12017
12018         PR debug/42896
12019         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
12020         (cselib_reset_table): Renamed from...
12021         (cselib_reset_table_with_next_value): ... this.
12022         (cselib_get_next_uid): Renamed from...
12023         (cselib_get_next_unknown_value): ... this.
12024         * cselib.c (next_uid): Renamed from...
12025         (next_unknown_value): ... this.
12026         (cselib_clear_table): Adjust.
12027         (cselib_reset_table): Adjust.  Renamed from...
12028         (cselib_reset_table_with_next_value): ... this.
12029         (cselib_get_next_uid): Adjust.  Renamed from...
12030         (cselib_get_next_unknown_value): ... this.
12031         (get_value_hash): Use hash.
12032         (cselib_hash_rtx): Likewise.
12033         (new_cselib_val): Adjust.  Set and dump uid.
12034         (cselib_lookup_mem): Pass next_uid as hash.
12035         (cselib_subst_to_values): Likewise.
12036         (cselib_log_lookup): Dump uid.
12037         (cselib_lookup): Pass next_uid as hash.  Adjust.
12038         (cselib_process_insn): Adjust.
12039         (cselib_init): Initialize next_uid.
12040         (cselib_finish): Adjust.
12041         (dump_cselib_table): Likewise.
12042         * dse.c (canon_address): Dump value uid.
12043         * print-rtl.c (print_rtx): Print value uid.
12044         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
12045         (dvuid): New type.
12046         (dv_uid): New function, sort of renamed from...
12047         (dv_htab_hash): ... this, reimplemented in terms of it and...
12048         (dv_uid2hash): ... this.  New.
12049         (variable_htab_eq): Drop excess assertions.
12050         (tie_break_pointers): Removed.
12051         (canon_value_cmp): Compare uids.
12052         (variable_post_merge_New_vals): Print uids.
12053         (vt_add_function_parameters): Adjust.
12054         (vt_initialize): Reset table.  Adjust.
12055
12056 2010-02-03  Richard Guenther  <rguenther@suse.de>
12057
12058         PR tree-optimization/42944
12059         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
12060         (call_may_clobber_ref_p_1): Likewise.  Properly handle
12061         malloc and calloc clobbering errno.
12062
12063 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
12064
12065         * doc/invoke.texi: Fix name of sched1 dump.
12066
12067         * opts.c (decode_options): Set flag_tree_switch_conversion
12068         only conditionally on optimize >= 2.
12069
12070         * gcse.c: Assorted comment fixes in pass description.
12071
12072 2010-02-03  Anthony Green  <green@moxielogic.com>
12073
12074         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
12075         nop padding in order to maintain alignment of storage location of
12076         target function address.
12077         (moxie_trampoline_init): Store target function address at newly
12078         aligned location.
12079         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
12080         to 32.
12081         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
12082
12083 2010-02-03  Richard Guenther  <rguenther@suse.de>
12084
12085         PR middle-end/42927
12086         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
12087
12088 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12089
12090         * config.gcc: Reenable check for obsolete targets.
12091         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
12092         mips-sgi-irix6.[0-4]*.
12093
12094 2010-02-02  Nick Clifton  <nickc@redhat.com>
12095
12096         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
12097         constant size of 4 as being the same as 0.
12098         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
12099         can take values in the range 0..4.
12100
12101 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
12102
12103         PR java/41991
12104         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
12105         as _darwin10_Unwind_FindEnclosingFunction().
12106         * libgcc-libsystem.ver: New.
12107
12108 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
12109
12110         PR target/41399
12111         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
12112         implicitly set registers.
12113
12114 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
12115
12116         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
12117         (arm_override_options): Allow automatic selection of the thread
12118         pointer register if thumb2.
12119         (legitimize_pic_address): Improve code sequences for Thumb2.
12120         (arm_call_tls_get_addr): Likewise.
12121         (legitimize_tls_address): Likewise.
12122         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
12123         (pic_load_addr_32bit): ... this.  New named pattern.
12124         * thumb2.md (pic_load_addr_thumb2): Delete.
12125         (pic_load_dot_plus_four): Delete.
12126         (tls_load_dot_plus_four): New named pattern.
12127
12128 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12129
12130         PR libgomp/29986
12131         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
12132         Document fix for TLS bug.
12133
12134 2010-01-31  Richard Guenther  <rguenther@suse.de>
12135
12136         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
12137         conservatively correct.
12138
12139 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12140
12141         PR target/42850
12142         Revert:
12143         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12144
12145         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
12146
12147 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12148
12149         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
12150
12151 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
12152
12153         * config.gcc: Adjust order of makefile fragments for mingw targets.
12154
12155 2010-01-31  Richard Guenther  <rguenther@suse.de>
12156
12157         PR middle-end/42898
12158         * gimplify.c (gimplify_init_constructor): For volatile LHS
12159         initialize a temporary.
12160
12161 2010-01-31  Matthias Klose  <doko@ubuntu.com>
12162
12163         * configure.ac: Fix __stack_chk_fail check for cross builds configured
12164         --with-headers
12165         * configure: Regenerate.
12166
12167 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
12168
12169         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
12170         the same alias set and their sizes different constantness.
12171         (aliasing_component_refs_p): Revert 2009-10-24 change.
12172
12173 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12174
12175         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
12176         unused.
12177
12178 2010-01-29  Richard Guenther  <rguenther@suse.de>
12179
12180         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
12181         Assert we successfully updated the call.
12182
12183 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
12184
12185         PR rtl-optimization/42889
12186         * df.h (df_set_bb_dirty_nonlr): New prototype.
12187         * df-core.c (df_set_bb_dirty_nonlr): New function.
12188         * df-scan.c (df_insn_rescan): Call it instead of
12189         df_set_bb_dirty for DEBUG_INSNs.
12190
12191 2010-01-29  Richard Guenther  <rguenther@suse.de>
12192
12193         PR middle-end/37448
12194         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
12195         quadratic behavior in most cases.
12196
12197 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
12198
12199         PR target/42891
12200         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
12201         in the call to gen_x86_movsicc_0_m1.
12202
12203 2010-01-28  Richard Guenther  <rguenther@suse.de>
12204
12205         PR tree-optimization/42871
12206         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
12207
12208 2010-01-28  Richard Guenther  <rguenther@suse.de>
12209
12210         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
12211         into call arguments.
12212
12213 2010-01-28  Richard Guenther  <rguenther@suse.de>
12214
12215         PR middle-end/42883
12216         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
12217         the forwarder if the destination is an EH landing pad.
12218
12219 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
12220
12221         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
12222         block list passed to gimple_duplicate_sese_tail.
12223         (parallelize_loops): Avoid parallelization when the function
12224         has_nonlocal_label.
12225         Avoid parallelization when the preheader is IRREDUCIBLE.
12226         Try to optimize when estimated_loop_iterations_int is unresolved.
12227         Add the loop's location to the dump file.
12228         * tree-cfg.c (add_phi_args_after_redirect): Remove.
12229         (gimple_duplicate_sese_tail): Remove the check for the latch.
12230         Redirect nexits to the exit block.
12231         Remove handling of the incoming edges to the latch.
12232         Redirect the backedge from the copied latch to the exit bb.
12233
12234 2010-01-28  Michael Matz  <matz@suse.de>
12235
12236         PR target/42881
12237         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
12238         Wrap force_reg into a sequence, emit it before user.
12239
12240 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
12241
12242         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
12243         (arm_rev): New.
12244         (arm_legacy_rev): Likewise.
12245         (thumb_legacy_rev): Likewise.
12246
12247 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
12248
12249         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
12250         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
12251         on MEM's address failed, try avoid_constant_pool_reference and
12252         recurse if it returned something different.
12253         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
12254         address, try avoid_constant_pool_reference and recurse if it
12255         returned something different.
12256         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
12257         address and avoid_constant_pool_reference returned something
12258         different, don't set have_address.
12259
12260 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
12261
12262         PR debug/42861
12263         * var-tracking.c (val_store): Add modified argument, obey it.
12264         Adjust callers.
12265         (count_uses): Move down logging of main.
12266         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
12267         don't need resolution.
12268         (emit_notes_in_bb): Likewise.
12269
12270 2010-01-27  Richard Guenther  <rguenther@suse.de>
12271
12272         PR middle-end/42878
12273         * tree-inline.c (remap_decl): Delay remapping of SSA name
12274         default definitions until we need them.
12275
12276 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
12277
12278         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
12279         (rs6000_delegitimize_address): New function.
12280
12281         * config/s390/s390.c (s390_delegitimize_address): Call
12282         delegitimize_mem_from_attrs.
12283
12284         PR middle-end/42874
12285         * tree-inline.c (cannot_copy_type_1): Removed.
12286         (copy_forbidden): Don't forbid copying of functions containing
12287         records/unions with variable length fields.
12288
12289 2010-01-27  Christian Bruel  <christian.bruel@st.com>
12290
12291         Revert:
12292         PR target/42841
12293         * config/sh/sh.c (find_barrier): Increase length for non delayed
12294         conditional branches.
12295
12296 2010-01-27  Matthias Klose  <doko@ubuntu.com>
12297
12298         * configure.ac (gnu-unique-object): Fix ldd version check.
12299         * configure: Regenerate.
12300
12301 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12302
12303         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
12304         HAVE_GNU_AS value.
12305         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
12306         Test for HAVE_GNU_AS value.
12307
12308 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12309
12310         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
12311         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
12312         INT64_TYPE): Define.
12313         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
12314         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12315         INT_LEAST64_TYPE): Define.
12316         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
12317         UINT_LEAST64_TYPE): Define.
12318         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
12319         INT_FAST64_TYPE): Define.
12320         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12321         UINT_FAST64_TYPE): Define.
12322         (INTMAX_TYPE, UINTMAX_TYPE): Define.
12323         (INTPTR_TYPE, UINTPTR_TYPE): Define.
12324         (SIG_ATOMIC_TYPE): Define.
12325
12326 2010-01-26  Richard Guenther  <rguenther@suse.de>
12327
12328         * df-scan.c (df_scan_set_bb_info): Remove assert.
12329         (df_insn_rescan_debug_internal): Merge asserts.
12330         (df_install_ref): Likewise.
12331         (df_mark_reg): Use bitmap_set_range.
12332         (df_hard_reg_used_p): Remove assert.
12333         (df_hard_reg_used_count): Likewise.
12334
12335 2010-01-26  Richard Guenther  <rguenther@suse.de>
12336
12337         PR rtl-optimization/42685
12338         * web.c (web_main): Ignore DEBUG_INSNs.
12339
12340 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
12341
12342         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
12343
12344         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
12345         Fix types of fndecl and arglist parameters.
12346
12347 2010-01-26  Richard Guenther  <rguenther@suse.de>
12348
12349         PR middle-end/42806
12350         * tree-eh.c (unsplit_eh): Skip debug insns.
12351
12352 2010-01-26  Richard Guenther  <rguenther@suse.de>
12353
12354         PR tree-optimization/42250
12355         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
12356
12357 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
12358
12359         PR fortran/42866
12360         * omp-low.c (expand_omp_sections): Only use single_pred if
12361         l2_bb is single_pred_p.
12362
12363 2010-01-25  Christian Bruel  <christian.bruel@st.com>
12364
12365         PR target/42841
12366         * config/sh/sh.c (find_barrier): Increase length for non delayed
12367         conditional branches.
12368         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
12369
12370 2010-01-24  David S. Miller  <davem@davemloft.net>
12371
12372         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
12373         define if not using GAS.
12374         * config/sparc/sparc.c (sparc_elf_asm_named_section):
12375         Likewise.  Delete SECTION_MERGE code, which is only applicable
12376         when using GAS.
12377
12378 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
12379
12380         PR c++/42748
12381         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
12382         mangling of va_list in system headers.
12383
12384 2010-01-23  Toon Moene  <toon@moene.org>
12385
12386         * tree-predcom.c (combine_chains): Return NULL, not false.
12387
12388 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
12389
12390         * tree-loop-distribution.c (distribute_loop): Fix declaration and
12391         initialization of variable res to agree with return type.
12392
12393 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
12394
12395         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
12396         * tree-sra.c: Add include of expr.h.
12397
12398 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
12399
12400         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
12401         insert the debug stmt on the single non-EH edge from the stmt.
12402
12403 2010-01-22  Richard Henderson  <rth@redhat.com>
12404
12405         PR tree-opt/42833
12406         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
12407         the RHS until after generate_subtree_copies has insertted its
12408         code before the current statement.
12409
12410 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
12411
12412         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
12413
12414         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
12415
12416 2010-01-21  Martin Jambor  <mjambor@suse.cz>
12417
12418         PR tree-optimization/42585
12419         * tree-sra.c (struct access): New field grp_total_scalarization.
12420         (dump_access): Dump the new field.
12421         (should_scalarize_away_bitmap): New variable.
12422         (cannot_scalarize_away_bitmap): Likewise.
12423         (sra_initialize): Allocate new bitmaps.
12424         (sra_deinitialize): Free new bitmaps.
12425         (create_access_1): New function.
12426         (create_access): Parts moved to create_access_1.
12427         (type_consists_of_records_p): New function.
12428         (completely_scalarize_record): Likewise.
12429         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
12430         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
12431         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
12432         access.
12433         (analyze_all_variable_accesses): Completely scalarize small eligible
12434         records.
12435
12436 2010-01-21  Martin Jambor  <mjambor@suse.cz>
12437
12438         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
12439
12440 2010-01-21  Andrew Haley  <aph@redhat.com>
12441
12442         * gcc.c (process_command): Move lang_specific_driver before
12443         setting cc_libexec_prefix.
12444
12445 2010-01-21  Richard Guenther  <rguenther@suse.de>
12446
12447         PR middle-end/19988
12448         * fold-const.c (negate_expr_p): Pretend only negative
12449         real constants are easily negatable.
12450
12451 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
12452             Jason Merrill  <jason@redhat.com>
12453
12454         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
12455         (TYPE_TRANSPARENT_AGGR): this, for union and record.
12456         * calls.c (initialize argument_information): Handle it.
12457         * c-common.c (handle_transparent_union_attribute): Use new name.
12458         * c-decl.c (finish_struct): Ditto.
12459         * c-typeck.c (type_lists_compatible_p): Ditto.
12460         (convert_for_assignment): Use new name and also handle record.
12461         * function.c (aggregate_value_p): Handle it.
12462         (pass_by_reference): Ditto.
12463         (assign_parm_data_types): Ditto.
12464         * print-tree.c (print_node): Ditto.
12465         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
12466         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
12467         * tree.c (first_field): New fn.
12468
12469 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
12470
12471         PR target/42818
12472         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
12473         even when linking statically, for now.
12474
12475 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
12476
12477         PR debug/42715
12478         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
12479         without a cselib val.
12480         (count_uses): Accept MO_VAL_SET with no val on stores.
12481         (add_stores): Likewise.
12482
12483 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
12484
12485         * var-tracking.c (check_value_val): Add a compile time assertion.
12486         (dv_is_decl_p): Simplify.
12487         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
12488         gcc_assert if ENABLE_CHECKING.
12489
12490 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
12491
12492         PR debug/42782
12493         * var-tracking.c: Include tree-flow.h.
12494         (mem_dies_at_call): New.
12495         (dataflow_set_preserve_mem_locs): Use it.
12496         (dataflow_set_remove_mem_locs): Likewise.
12497         (dump_var): Renamed from dump_variable.  Adjust all callers.
12498         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
12499         * Makefile.in (var-tracking.o): Adjust deps.
12500
12501 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
12502
12503         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
12504
12505 2010-01-20  Richard Guenther  <rguenther@suse.de>
12506
12507         PR tree-optimization/42717
12508         * tree-ssa-dce.c (get_live_post_dom): Remove.
12509         (forward_edge_to_pdom): Take an arbitrary edge to copy
12510         degenerate PHI args from.
12511         (remove_dead_stmt): Use the first post-dominator even if it
12512         does not contain live statements as redirection destination.
12513
12514 2010-01-20  Richard Guenther  <rguenther@suse.de>
12515
12516         * tree-inline.c (estimate_num_insns): Handle EH builtins.
12517
12518 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
12519
12520         * sel-sched.c (create_speculation_check): Remove set but not used
12521         variable twin.
12522         (try_transformation_cache): Remove set but not used variable ds.
12523         (calculate_privileged_insns): Remove set but not used variables
12524         cur_insn and min_spec_insn.
12525         (find_best_expr): Remove set but not used variable avail_n.
12526         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
12527         variable e.
12528         * cgraphunit.c (assemble_thunk): Remove set but not used variable
12529         false_label.
12530         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
12531         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
12532         new_scop_exit_edge.
12533
12534 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
12535
12536         PR bootstrap/42786
12537         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
12538         cpu types.  Add support for *-sse3 cpu types.
12539         (x86_64-*-*): Ditto.
12540
12541 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
12542
12543         PR middle-end/42803
12544         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
12545         argument, call initializer_constant_valid_p_1 instead of
12546         initializer_constant_valid_p, pass CACHE to it, return NULL
12547         immediately if first call returns NULL.
12548         (initializer_constant_valid_p_1): New function.
12549         (initializer_constant_valid_p): Use it.
12550
12551 2010-01-20  Thomas Quinot  <quinot@adacore.com>
12552
12553         * tree.def (PLACEHOLDER_EXPR): Fix comment.
12554
12555 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
12556
12557         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
12558         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
12559         (loc_list_from_tree): Don't handle unsigned division.  Handle
12560         signed modulo using DW_OP_{over,over,div,mul,minus}.
12561         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
12562         modulo instead of signed.
12563
12564 2010-01-20  DJ Delorie  <dj@redhat.com>
12565
12566         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
12567         (Fpa): Pass it
12568         (h8300_emit_stack_adjustment): Propogate it.
12569         (push): Pass it.
12570         (h8300_expand_prologue): Likewise.
12571         (h8300_expand_epilogue): Likewise.
12572
12573 2010-01-19  Michael Matz  <matz@suse.de>
12574
12575         PR tree-optimization/41783
12576         * tree-data-ref.c (toplevel): Include flags.h.
12577         (dump_data_dependence_relation):  Also dump the inputs if the
12578         result will be unknown.
12579         (split_constant_offset_1): Look through some conversions.
12580         * tree-predcom.c (determine_roots_comp): Restart a new chain if
12581         the offset from last element is too large.
12582         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
12583         (reassociate_to_the_same_stmt): Handle vector registers.
12584         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
12585         (e.g. conversions).
12586         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
12587         wide_prolog_niters argument, emit widening instructions.
12588         (vect_do_peeling_for_alignment): Adjust caller, use widened
12589         variant of the iteration cound.
12590         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
12591
12592 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12593
12594         PR target/38697
12595         * config/arm/neon-testgen.m (emit_automatics): New parameter
12596         features. Adjust for Fixed_return_reg feature.
12597         (test_intrinsic): Call emit_automatics with new feature.
12598         * config/arm/neon.ml: Update copyright years.
12599         (features): New Fixed_return_reg feature.
12600         (ops): Update feature for Vget_low.
12601
12602 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
12603
12604         PR tree-optimization/42719
12605         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
12606         stmt uses.
12607
12608         PR debug/42728
12609         * fwprop.c (all_uses_available_at): Return false if def_set dest
12610         is a REG that is used in def_insn.
12611
12612 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
12613
12614         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
12615
12616         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
12617         Add argument names.
12618
12619         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
12620
12621         * target.h (struct gcc_target) <secondary_reload>: Change type
12622         of last argument to secondary_reload_info *.
12623
12624 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
12625
12626         PR target/42774
12627         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
12628         memory references with unaligned offsets.  Remove CQImode handling.
12629         (unaligned_memory_operand): Return 1 for memory references with
12630         unaligned offsets.  Remove CQImode handling.
12631
12632 2010-01-18  Richard Guenther  <rguenther@suse.de>
12633
12634         PR middle-end/39954
12635         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
12636         builtin calls.
12637
12638 2010-01-18  Richard Guenther  <rguenther@suse.de>
12639
12640         PR tree-optimization/42781
12641         * tree-ssa-structalias.c (find_what_var_points_to): Skip
12642         restrict processing only if the original variable was artificial.
12643
12644 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
12645
12646         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
12647         find number of popped argument bytes.
12648
12649         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
12650         Fix the text that describes the return value for invalid insns.
12651
12652         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
12653
12654         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
12655         Clarify what 'cost of the -dependence' is.  Fix quoting.
12656
12657         * toplev.c (default_get_pch_validity): Rename argument to "sz".
12658         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
12659
12660 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
12661
12662         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
12663         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
12664
12665 2010-01-17  Richard Guenther  <rguenther@suse.de>
12666
12667         PR middle-end/42248
12668         * function.c (split_complex_args): Take a VEC to modify.
12669         (assign_parms_augmented_arg_list): Build a VEC instead of
12670         a chain of PARM_DECLs.
12671         (assign_parms_unsplit_complex): Take a VEC of arguments.
12672         Do not fixup unmodified parms.
12673         (assign_parms): Deal with the VEC.
12674         (gimplify_parameters): Likewise.
12675
12676 2010-01-17  Richard Guenther  <rguenther@suse.de>
12677
12678         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
12679         node existence check.
12680         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
12681         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
12682         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
12683         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
12684         (gimple_execute_on_growing_pred): Likewise.
12685
12686 2010-01-17  Richard Guenther  <rguenther@suse.de>
12687
12688         PR tree-optimization/42773
12689         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
12690         (compute_antic_aux): Likewise.
12691         (compute_partial_antic_aux): Likewise.
12692
12693 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
12694
12695         PR debug/42767
12696         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
12697         and US_TRUNCATE.
12698
12699 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
12700
12701         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
12702         appearance.
12703
12704         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
12705         Fix markup for strict argument.
12706
12707         (TARGET_SCHED_REORDER2): Fix argument types.
12708
12709         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
12710         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
12711
12712         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
12713         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
12714
12715         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
12716         Add argument name.
12717
12718         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
12719         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
12720         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
12721         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
12722         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
12723
12724         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
12725
12726         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
12727
12728         (TARGET_ASM_RELOC_RW_MASK): Add return type.
12729         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
12730
12731         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
12732
12733         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
12734         Use prototype.
12735
12736         (TARGET_ASM_NAMED_SECTION): Fix argument list.
12737
12738         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
12739         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
12740
12741         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
12742
12743         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
12744
12745         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
12746         referring to it.  Fix language.
12747
12748         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
12749
12750         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
12751
12752         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
12753
12754         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
12755
12756         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
12757         '@var{stream}.  Remove stray 'and'.
12758
12759         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
12760
12761         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
12762
12763         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
12764
12765         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
12766         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
12767
12768         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
12769         Fix description of return value.
12770         Rename argument "sz" to "len."
12771
12772         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
12773         Clarify meaning of 'true' return value.
12774
12775         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
12776
12777         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
12778         rep_mode versus mode_rep.
12779
12780         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
12781
12782         (TARGET_BUILTIN_DECL): Fix name.
12783
12784         (TARGET_COMMUTATIVE_P): Fix type of first argument.
12785
12786         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
12787
12788         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
12789
12790         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
12791
12792         (TARGET_RELAXED_ORDERING): Use @deftypevr.
12793
12794         (TARGET_GET_DRAP_RTX): Note that this is a hook.
12795         Clarify language.
12796
12797         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
12798         Rename argument tm_fn to md_fn.
12799
12800         (TARGET_OPTION_PRINT): Fix argument list.
12801
12802 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
12803
12804         PR target/42664
12805         * config/i386/i386.c (ix86_fixup_binary_operands):
12806         Revert FMA4 fixup of operands.
12807
12808 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12809
12810         PR gcc/42525
12811         * Makefile.in (write_entries_to_file, install-plugin):
12812         Use \012 instead of \n with tr.
12813
12814 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
12815
12816         * configure.ac (HAVE_AS_REF): New C macro.
12817         * configure: Regenerate.
12818         * config.in: Likewise.
12819         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
12820         if HAVE_AS_REF.
12821         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
12822         if HAVE_AS_REF.
12823
12824 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
12825
12826         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
12827
12828         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
12829
12830         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
12831
12832         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
12833
12834         (TARGET_IN_SMALL_DATA_P): Fix argument type.
12835
12836         (TARGET_BINDS_LOCAL_P): Fix argument type.
12837
12838         (TARGET_ASM_FILE_END): Use prototype.
12839
12840         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
12841
12842         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
12843
12844         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
12845
12846         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
12847
12848         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
12849         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
12850
12851         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
12852         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
12853
12854         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
12855         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
12856         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
12857         (TARGET_ADDR_SPACE_CONVERT): Likewise.
12858
12859         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
12860
12861         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
12862
12863         (TARGET_INIT_BUILTINS): Use prototype.
12864
12865         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
12866         Put 'const char *' in braces.  Fix parameter types.
12867         (TARGET_INVALID_CONVERSION): Fix parameter types.
12868         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
12869         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
12870
12871         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
12872         Fix argument type.
12873
12874         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
12875
12876         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
12877
12878 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
12879
12880         * doc/tm.texi (TARGET_HELP): Fix return type.
12881
12882         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
12883         in braces.  Fix argument types.
12884
12885         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
12886
12887         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
12888
12889         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
12890
12891         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
12892         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
12893
12894         (TARGET_MANGLE_TYPE): Fix argument types.
12895
12896         (TARGET_IRA_COVER_CLASSES): Use prototype.
12897
12898         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
12899
12900         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
12901
12902         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
12903
12904         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
12905
12906         (TARGET_CALLEE_COPIES): Fix argument types.
12907
12908         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
12909
12910         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
12911
12912         (TARGET_FUNCTION_VALUE): Fix argument types.
12913
12914         (TARGET_RETURN_IN_MSB): Fix argument type.
12915
12916         (TARGET_RETURN_IN_MEMORY): Fix argument types.
12917
12918         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
12919
12920         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
12921
12922         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
12923         agree with return type.
12924
12925         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
12926
12927 2010-01-15  Jing Yu  <jingyu@google.com>
12928
12929         PR rtl-optimization/42691
12930         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
12931         a pseudo to a constant and are merged, and adjust comments.
12932
12933 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
12934
12935         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
12936
12937 2010-01-15  Richard Guenther  <rguenther@suse.de>
12938
12939         PR middle-end/42739
12940         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
12941         labels of computed or non-local gotos to the destination.
12942         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
12943         landing pad label is the first label.
12944
12945 2010-01-15  Richard Guenther  <rguenther@suse.de>
12946
12947         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
12948
12949 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12950
12951         PR target/42747
12952         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
12953         to allow generation of the xssqrtdp instruction on power7.
12954         (sqrtdf2_fpr): Ditto.
12955
12956 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
12957
12958         PR middle-end/42674
12959         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
12960         functions with noreturn attribute.
12961
12962         PR c++/42608
12963         * varasm.c (declare_weak): Add weak attribute to decl if it
12964         doesn't have one already.
12965         (assemble_external): Only add decls to weak_decls if they also
12966         have weak attribute.
12967
12968 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
12969
12970         * var-tracking.c (var_reg_delete): Don't delete the association
12971         between REGs and values or one-part variables if the register
12972         isn't clobbered.
12973
12974 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
12975
12976         PR debug/42657
12977         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
12978         because its first operand is a non-localized variable.
12979
12980 2010-01-14  Martin Jambor  <mjambor@suse.cz>
12981
12982         PR tree-optimization/42706
12983         * tree-sra.c (encountered_recursive_call): New variable.
12984         (encountered_unchangable_recursive_call): Likewise.
12985         (sra_initialize): Initialize both new variables.
12986         (callsite_has_enough_arguments_p): New function.
12987         (scan_function): Call decl and flags check only for IPA-SRA, check
12988         whether there is a recursive call and whether it has enough arguments.
12989         (all_callers_have_enough_arguments_p): New function.
12990         (convert_callers): Look for recursive calls only when
12991         encountered_recursive_call is set.
12992         (ipa_early_sra): Bail out either if
12993         !all_callers_have_enough_arguments_p or
12994         encountered_unchangable_recursive_call.
12995
12996 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
12997
12998         * sel-sched.c: Add 2010 to copyright years.
12999         * sel-sched-ir.c: Likewise.
13000         * sel-sched-ir.h: Likewise.
13001
13002 2010-01-14  Martin Jambor  <mjambor@suse.cz>
13003
13004         PR tree-optimization/42714
13005         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
13006         constructors specially.
13007
13008 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13009
13010         * config/i386/drivers-i386.c (detect_caches_intel):
13011         Add l2sizekb parameter and fill in.
13012         (host_detect_local_cpu): Add l2sizekb, fill in.
13013         Add Atom small cache heuristic.
13014
13015 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13016
13017         * config/i386/drivers-i386.c (detect_caches_cpuid4):
13018         Add level3 parameter and fill in.
13019         (detect_caches_intel): Handle level3 cache.
13020
13021 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13022
13023         * config/i386/drivers-i386.c (host_detect_local_cpu):
13024         Fix core duo detection.
13025
13026 2010-01-14  Andi Kleen  <ak@linux.intel.com>
13027
13028         * config/i386/drivers-i386.c (host_detect_local_cpu):
13029         Fix Atom detection.
13030
13031 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13032
13033         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
13034         (rs6000_variable_issue_1): this.  Use...
13035         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
13036
13037 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13038
13039         * sel-sched-ir.c (sel_restore_other_notes): Rename to
13040         sel_restore_notes.  Update all callers.  Call reemit_notes
13041         for all insns.
13042
13043 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13044
13045         PR rtl-optimization/42246
13046         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
13047         loops.
13048
13049 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13050
13051         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
13052         all successors is the same as number of successors in current region.
13053
13054 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13055
13056         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
13057         to rename is not separable.  Otherwise check that its LHS is not NULL.
13058
13059 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13060
13061         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
13062
13063 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13064
13065         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
13066         available registers when failed to discover LHS register class.
13067         Fix indentation.  Update comment.
13068
13069 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13070             Alexander Monakov  <amonakov@ispras.ru>
13071
13072         PR rtl-optimization/42389
13073         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
13074         to can_issue_more.
13075         (advance_state_on_fence): Likewise.
13076         (sel_target_adjust_priority): Print debug output only when
13077         sched_verbose >= 4, not 2.
13078         (get_expr_cost): Do not issue all unique insns on the next cycle.
13079         (fill_insns): Initialize can_issue_more from the value saved
13080         with the fence.
13081         * sel-sched-ir.c (flist_add): New parameter issue_more.
13082         Init FENCE_ISSUE_MORE with it.
13083         (merge_fences): Likewise.
13084         (init_fences): Update call to flist_add.
13085         (add_to_fences, add_clean_fence_to_fences)
13086         (add_dirty_fence_to_fences): Likewise.
13087         (move_fence_to_fences): Update call to merge_fences.
13088         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
13089         sched groups.
13090         * sel-sched-ir.h (struct _fence): New field issue_more.
13091         (FENCE_ISSUE_MORE): New accessor macro.
13092
13093 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13094
13095         PR rtl-optimization/42388
13096         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
13097         that have no predecessors nor successors.  Do not call move_bb_info
13098         for empty blocks outside of current region.
13099
13100 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13101
13102         PR rtl-optimization/42294
13103         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
13104         * sel-sched.c (move_exprs_to_boundary): Transitively add all
13105         originators' originators.
13106
13107 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
13108
13109         PR rtl-optimization/39453
13110         PR rtl-optimization/42246
13111         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
13112         for pipelining_p.
13113         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
13114
13115 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
13116             Alexander Monakov  <amonakov@ispras.ru>
13117
13118         PR middle-end/42245
13119         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
13120         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
13121         argument.  Update all callers.
13122         (tidy_control_flow): ... and here.  Recompute topological order
13123         of basic blocks in region if necessary.
13124         (sel_redirect_edge_and_branch): Change return type.  Return true
13125         if topological order might have been invalidated.
13126         (purge_empty_blocks): Export and move from...
13127         * sel-sched.c (purge_empty_blocks): ... here.
13128         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
13129         (maybe_tidy_empty_bb): Delete prototype.
13130         (purge_empty_blocks): Declare.
13131
13132 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
13133
13134         PR rtl-optimization/42249
13135         * sel-sched.c (try_replace_dest_reg): When chosen register
13136         and original register is the same, do not bail out early, but
13137         still check all original insns for validity of replacing destination
13138         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
13139         in this case.
13140
13141 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
13142
13143         PR c/42721
13144         Port from no-undefined-overflow branch:
13145         2009-03-09  Richard Guenther  <rguenther@suse.de>
13146
13147         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
13148
13149 2010-01-14  Richard Guenther  <rguenther@suse.de>
13150
13151         PR lto/42665
13152         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
13153
13154 2010-01-14  Ira Rosen  <irar@il.ibm.com>
13155
13156         PR tree-optimization/42709
13157         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
13158         as scalar type in creation of constant vector operand.
13159
13160 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13161
13162         PR testsuite/42414
13163         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
13164         (check-parallel-%): Match `testsuite' directory component only
13165         at the end.
13166
13167 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
13168
13169         PR translation/39521
13170         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
13171         strings with _().
13172
13173 2010-01-13  Richard Guenther  <rguenther@suse.de>
13174
13175         PR tree-optimization/42730
13176         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
13177         offset zero.
13178
13179 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
13180
13181         PR target/pr42542
13182         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
13183         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
13184         them signed.
13185
13186 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
13187
13188         * config/bfin/libgcc-bfin.ver: Regenerate based on current
13189         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
13190         ___umulsi3_highpart.
13191
13192         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
13193         rather than schedule_insns if the pass is enabled.
13194
13195 2010-01-13  Martin Jambor  <mjambor@suse.cz>
13196
13197         PR tree-optimization/42704
13198         * tree-sra.c (sra_modify_assign): Do not delete assignments to
13199         SSA_NAMEs.
13200
13201 2010-01-13  Martin Jambor  <mjambor@suse.cz>
13202
13203         PR tree-optimization/42703
13204         * tree-sra.c (analyze_access_subtree): Check that we can build a
13205         reference to the original data within the aggregate.
13206
13207 2010-01-13  Richard Guenther  <rguenther@suse.de>
13208
13209         PR tree-optimization/42705
13210         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
13211
13212 2010-01-13  Richard Guenther  <rguenther@suse.de>
13213
13214         PR middle-end/42716
13215         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
13216
13217 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
13218
13219         PR debug/41371
13220         * var-tracking.c (values_to_unmark): New variable.
13221         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
13222         values_to_unmark vector.  Moved body to...
13223         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
13224         instead queue it into values_to_unmark vector.
13225         (vt_find_locations): Free values_to_unmark vector.
13226
13227 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
13228
13229         * config/s390/s390.c (override_options): Set
13230         default of max-pending-list-length to 256
13231
13232 2010-01-13  Richard Guenther  <rguenther@suse.de>
13233
13234         PR lto/42678
13235         * tree-pass.h (PROP_gimple_lcx): New.
13236         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
13237         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
13238         before the final cleanup_eh.
13239         (dump_properties): Dump PROP_gimple_lcx.
13240         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
13241         (tree_lower_complex_O0): Remove.
13242         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
13243         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
13244         tree_lower_complex, schedule TODO_update_ssa.
13245         * lto-streamer-out.c (output_function): Stream the functions
13246         properties.
13247         * lto-streamer-in.c (input_function): Likewise.
13248         (lto_read_body): Do not override them here.
13249
13250 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
13251
13252         PR c/42708
13253         * c-typeck.c (build_c_cast): Fold value cast to union type before
13254         wrapping it in a CONSTRUCTOR.
13255
13256 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
13257
13258         PR rtl-optimization/42699
13259         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
13260         involved.
13261
13262 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13263
13264         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
13265         SUBTARGET_WARN_UNUSED_SPEC): Move ...
13266         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
13267         SUBTARGET_WARN_UNUSED_SPEC): ... here
13268         * config/mips/iris5.h (LIBGCC_SPEC): Define.
13269
13270 2010-01-12  Julian Brown  <julian@codesourcery.com>
13271
13272         * config/arm/neon-schedgen.ml (Utils): Don't try to
13273         open missing module.
13274         (find_with_result): New.
13275
13276 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
13277
13278         PR debug/42662
13279         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
13280         sharing when canonicalizing ({lt,ge}u (plus a b) b).
13281
13282         PR tree-optimization/42645
13283         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
13284         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
13285         decl_map, set processing_debug_stmt to -1 and return name without
13286         any remapping.
13287
13288 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
13289
13290         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
13291         binutils version, and reword target configuration description.
13292
13293 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
13294
13295         * config/avr/avr.h (LINKER_NAME): Remove.
13296
13297 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
13298
13299         PR target/42416
13300         * config/rs6000/rs6000.c (rs6000_override_options): On targets
13301         that support VSX, warn for -mno-altivec if vsx is not disabled,
13302         and disable vsx.
13303
13304 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
13305             Shujing Zhao  <pearly.zhao@oracle.com>
13306
13307         PR translation/42469
13308         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
13309         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
13310         character between option name and help text.
13311         * c.opt (imultilib): Likewise.
13312
13313 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
13314
13315         * lto-streamer-out.c (output_unreferenced_globals): Output static
13316         variables.
13317
13318 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
13319
13320         PR rtl-optimization/42621
13321         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
13322         optimizing for size.
13323         (duplicate_computed_gotos): Remove now-redundant check.
13324
13325 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
13326
13327         PR target/37454
13328         * configure.ac: Save and restore LDFLAGS and LIBS
13329         * configure: Regenerate.
13330
13331 2010-01-10  Richard Guenther  <rguenther@suse.de>
13332
13333         PR middle-end/42667
13334         * builtins.c (fold_builtin_strlen): Add type argument and
13335         convert the resulting length to it.
13336         (fold_builtin_1): Adjust.
13337
13338 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
13339
13340         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
13341         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
13342         1 insn.
13343         (num_insns_constant_wide): Adjust for that change.
13344
13345 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
13346
13347         PR debug/42631
13348         * web.c (union_defs): Add used argument, to combine uses of
13349         uninitialized regs.
13350         (entry_register): Adjust type and tests of used argument.
13351         (web_main): Widen used for new use.  Pass it to union_defs.
13352         * df.h (union_defs): Adjust prototype.
13353
13354 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
13355
13356         PR debug/42630
13357         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
13358         uses in new incoming argument.  Free body.
13359         (reset_debug_uses_in_loop): New.
13360         (analyze_insn_to_expand_var): Call the latter if the former found
13361         anything.  Fix whitespace.  Reject invalid dest overlaps before
13362         going through all insns in the loop.
13363
13364 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
13365
13366         PR debug/42629
13367         * haifa-sched.c (dying_use_p): Debug insns don't count.
13368
13369 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
13370
13371         PR middle-end/42363
13372         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
13373         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
13374         (verify_gimple_call): Reject LHS in noreturn calls.
13375
13376 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
13377
13378         PR debug/42604
13379         PR debug/42395
13380         * tree-vect-loop-manip.c (adjust_info): New type.
13381         (adjust_vec): New pointer to vector.
13382         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
13383         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
13384         (slpeel_update_phis_for_duplicate_loop): Use them.
13385         (slpeel_update_phi_nodes_for_guard1): Likewise.
13386         (slpeel_update_phi_nodes_for_guard2): Likewise.
13387         (slpeel_tree_peel_loop_to_edge): Likewise.
13388         (vect_update_ivs_after_vectorizer): Likewise.
13389
13390 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
13391
13392         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
13393         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
13394
13395 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
13396
13397         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
13398         bogus uninitialized warning.
13399
13400 2010-01-09  Richard Guenther  <rguenther@suse.de>
13401
13402         PR middle-end/42512
13403         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
13404         the evolution is compatible with the initial condition.
13405
13406 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
13407
13408         * gcc.c (process_command): Update copyright notice dates.
13409         * gcov.c (print_version): Likewise.
13410         * gcov-dump.c (print_version): Likewise.
13411         * mips-tfile.c (main): Likewise.
13412         * mips-tdump.c (main): Likewise.
13413
13414 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
13415
13416         PR target/41885
13417         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
13418         (rotlhi3): Delete.
13419         (rotlhi3_8): Delete.
13420         (rotlsi3): Delete.
13421         (rotlsi3_8): Delete.
13422         (rotlsi3_16): Delete.
13423         (rotlsi3_24): Delete.
13424         (rotl<mode>3): New.
13425         (*rotw<mode>3): New.
13426         (*rotb<mode>3): New.
13427         * config/avr/avr.c (avr_rotate_bytes): New function.
13428         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
13429
13430 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
13431
13432         PR target/37454
13433         * configure.ac: Modify -rdynamic check.
13434         * configure: Regenerate.
13435
13436 2010-01-08  DJ Delorie  <dj@redhat.com>
13437
13438         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
13439         register popping order.
13440
13441 2010-01-08  Richard Guenther  <rguenther@suse.de>
13442
13443         PR lto/42528
13444         * c.opt (fsigned-char): Also let LTO handle this option.
13445         (funsigned-char): Likewise.
13446
13447 2010-01-07  Richard Guenther  <rguenther@suse.de>
13448
13449         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
13450         (gimple_op): Likewise.
13451         (gimple_op_ptr): Likewise.
13452         (gimple_assign_set_lhs): Remove gcc_assert.
13453         (gimple_assign_set_rhs1): Likewise.
13454         (gimple_assign_set_rhs2): Likewise.
13455         (gimple_call_set_lhs): Likewise.
13456         (gimple_call_set_fn): Likewise.
13457         (gimple_call_set_fndecl): Likewise.
13458         (gimple_call_fndecl): Likewise.
13459         (gimple_call_return_type): Likewise.
13460         (gimple_call_set_chain): Likewise.
13461         (gimple_call_num_args): Likewise.
13462         (gimple_call_set_arg): Likewise.
13463         (gimple_cond_set_code): Likewise.
13464         (gimple_cond_set_lhs): Likewise.
13465         (gimple_cond_set_rhs): Likewise.
13466         (gimple_cond_set_true_label): Likewise.
13467         (gimple_cond_set_false_label): Likewise.
13468         (gimple_label_set_label): Likewise.
13469         (gimple_goto_set_dest): Likewise.
13470         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
13471         (gimple_debug_bind_get_value): Likewise.
13472         (gimple_debug_bind_get_value_ptr): Likewise.
13473         (gimple_debug_bind_set_var): Likewise.
13474         (gimple_debug_bind_set_value): Likewise.
13475         (gimple_debug_bind_reset_value): Likewise.
13476         (gimple_debug_bind_has_value_p): Likewise.
13477         (gimple_return_retval_ptr): Remove gcc_assert.
13478         (gimple_return_retval): Likewise.
13479         (gimple_return_set_retval): Likewise.
13480         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
13481         (safe_referenced_var_iterator): Remove.
13482         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
13483         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
13484         (fill_referenced_var_vec): Remove.
13485         (first_readonly_imm_use): Remove redundant gcc_assert.
13486         (phi_arg_index_from_use): Combine gcc_asserts.
13487         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
13488         (first_imm_use_stmt): Remove redundant gcc_assert.
13489         * tree-cfg.c (verify_gimple_call): Verify function and chain
13490         operands.  Verify arguments.
13491         (verify_types_in_gimple_stmt): Verify condition code and labels.
13492
13493 2010-01-07  Richard Guenther  <rguenther@suse.de>
13494
13495         PR tree-optimization/42641
13496         * sese.c (rename_map_elt_info): Use the SSA name version, do
13497         not hash pointers.
13498
13499 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
13500
13501         PR tree-optimization/42625
13502         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
13503         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
13504
13505 2010-01-07  Duncan Sands  <baldrick@free.fr>
13506
13507         * Makefile.in (PLUGIN_HEADERS): Add version.h.
13508
13509 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
13510
13511         PR target/42511
13512         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
13513         note itself is not function_invariant_p.
13514
13515 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
13516
13517         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
13518         Do not add the DF_NOTE problem.
13519         * store-motion.c (execute_rtl_store_motion): Likewise.
13520
13521 2010-01-07  Martin Jambor  <mjambor@suse.cz>
13522
13523         PR tree-optimization/42157
13524         * tree-sra.c (compare_access_positions): Stabilize sort if both
13525         accesses have integer types, return zero immediately if they are the
13526         same.
13527
13528 2010-01-06  Richard Henderson  <rth@redhat.com>
13529
13530         PR middle-end/41883
13531         * haifa-sched.c (add_to_note_list): Merge into ...
13532         (concat_note_lists): ... here, and ...
13533         (unlink_other_notes, rm_other_notes): Merge into...
13534         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
13535         NOTE_INSN_EPILOGUE_BEG.
13536
13537 2010-01-06  Richard Guenther  <rguenther@suse.de>
13538
13539         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
13540         not inline regular functions into always-inline functions.
13541
13542 2010-01-06  Nick Clifton  <nickc@redhat.com>
13543
13544         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
13545         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
13546         used together.
13547         (OVERRIDE_OPTIONS): Delete.
13548         (OPTIMIZATION_OPTIONS): Define.
13549         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
13550         * config/rx/rx.c (rx_handle_option): Issue an error message if
13551         -mcpu=rx200 and -fpu are used together.
13552         (rx_set_optimization_options): New function.  Issue an error
13553         message if an optimization attribute attempts to reset the FPU/
13554         math optimization pairing.
13555         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
13556         * config/rx/rx.opt: Set the default to 32-bit doubles.
13557         * config/rx/t-rx: Add multilibs for -nofpu option.
13558         * doc/invoke.texi: Update documentation of RX options.
13559
13560 2010-01-06  Richard Guenther  <rguenther@suse.de>
13561
13562         * tree-ssa-pre.c (name_to_id): New global.
13563         (alloc_expression_id): Simplify SSA name handling.
13564         (lookup_expression_id): Likewise.
13565         (init_pre): Zero name_to_id.
13566         (fini_pre): Free it.
13567
13568 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
13569
13570         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
13571
13572 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
13573
13574         PR target/42542
13575         * config/i386/sse.md (smaxv2di3): New.
13576         (umaxv2di3): Likewise.
13577         (sminv2di3): Likewise.
13578         (uminv2di3): Likewise.
13579
13580 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
13581
13582         PR target/42564
13583         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
13584         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
13585         (legitimize_tls_address): Likewise.
13586         (sparc_tls_referenced_p): Likewise.
13587         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
13588         and adjust calls to legitimize_pic_address.
13589         (legitimate_constant_p) Use sparc_tls_referenced_p.
13590         (legitimate_pic_operand_p): Likewise.
13591         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
13592         (sparc_tls_symbol_ref_1): Delete.
13593         (sparc_tls_referenced_p): Make static, recognize specific patterns.
13594         (legitimize_tls_address): Make static, handle CONST patterns.
13595         (legitimize_pic_address): Make static, remove unused parameter and
13596         adjust recursive calls.
13597         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
13598         and adjust call to legitimize_pic_address.
13599         (sparc_output_mi_thunk): Likewise.
13600
13601 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
13602             H.J. Lu  <hongjiu.lu@intel.com>
13603
13604         PR target/42542
13605         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
13606         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
13607         operands to make them signed.
13608
13609         Revert:
13610         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
13611
13612         PR target/42542
13613         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
13614         GTU to GT for V4SI and V2DI.
13615
13616         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
13617         (umin<mode>3): Removed.
13618         (uminv8hi3): New.
13619         (uminv4si3): Likewise.
13620
13621 2010-01-05  Martin Jambor  <mjambor@suse.cz>
13622
13623         PR tree-optimization/42462
13624         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
13625         current_function_decl to helper functions and macros.
13626
13627 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13628
13629         PR bootstrap/41771
13630         * flags.h: Don't include real.h.
13631         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
13632         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
13633         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
13634         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
13635         * dominance.c: Update copyright.
13636         * gimple.c (walk_gimple_op): Remove inline.
13637         * tree-ssa-reassoc.c: Include real.h.
13638         * Makefile.in (FLAGS_H): Remove $(REAL_H).
13639         (tree-ssa-reassoc.o): Depend on $(REAL_H).
13640
13641 2010-01-05  Nick Clifton  <nickc@redhat.com>
13642
13643         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
13644         register to push into the stack frame when the accumulator has to
13645         be saved during interrupts.
13646
13647 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
13648
13649         * doc/invoke.texi: Remove the documentation about option
13650         -Wunreachable-code.
13651         * common.opt (Wunreachable-code):  Preserved for backward
13652         compatibility.
13653         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
13654         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
13655         the backward compatibility flag section.
13656
13657 2010-01-05  Richard Guenther  <rguenther@suse.de>
13658
13659         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
13660
13661 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
13662
13663         PR other/42611
13664         * cfgexpand.c (expand_one_var): Diagnose too large variables.
13665
13666         PR tree-optimization/42508
13667         * tree-sra.c (convert_callers): Check for recursive call
13668         by comparing cgraph nodes instead of decls.
13669         (modify_function): Call ipa_modify_formal_parameters also
13670         on all same_body aliases.
13671
13672         * cgraphunit.c (cgraph_materialize_all_clones): Compare
13673         cgraph nodes when checking for same_body aliases.
13674
13675 2010-01-05  Richard Guenther  <rguenther@suse.de>
13676
13677         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
13678         allocation and lookup.
13679         (get_or_alloc_expr_for_constant): Likewise.
13680         (phi_translate): Sink allocation.
13681
13682 2010-01-04  Richard Guenther  <rguenther@suse.de>
13683
13684         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
13685         a new entry only if needed.
13686         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
13687         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
13688         hashtable lookup.
13689         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
13690         the result array.
13691         (phi_translate): Handle CONSTANTs early.
13692
13693 2010-01-04  Martin Jambor  <mjambor@suse.cz>
13694
13695         PR tree-optimization/42398
13696         * tree-sra.c (struct access): Removed flag grp_different_types.
13697         (dump_access): Do not dump the removed flag.
13698         (sort_and_splice_var_accesses): Do not set the removed flag.
13699         (sra_modify_expr): Check for type compatibility directly.
13700
13701 2010-01-04  Martin Jambor  <mjambor@suse.cz>
13702
13703         PR tree-optimization/42366
13704         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
13705         edges with variable number of parameters.
13706         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
13707         flag instead of asserting it.
13708         (ipa_read_node_info): Read uses_analysis_done flag.
13709
13710 2010-01-04  Richard Guenther  <rguenther@suse.de>
13711
13712         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
13713         iterative_hash_* as intended.
13714         (vn_reference_compute_hash): Likewise.  Simplify hashing
13715         SSA names.
13716         (vn_reference_lookup_2): Likewise.
13717         (vn_nary_op_compute_hash): Likewise.
13718         (vn_phi_compute_hash): Likewise.
13719         (expressions_equal_p): Remove strange code.
13720         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
13721         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
13722         (bitmap_insert_into_set_1): Take value-id as parameter.
13723         (add_to_value): Pass it.
13724         (bitmap_insert_into_set): Likewise.
13725         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
13726
13727 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
13728
13729         PR driver/42442
13730         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
13731         (do_self_spec): For switches with SWITCH_IGNORE set set also
13732         SWITCH_IGNORE_PERMANENTLY.
13733         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
13734         of SWITCH_IGNORE.
13735
13736 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
13737
13738         * lto-streamer-out.c (output_unreferenced_globals): Output the full
13739         tree of an unreferenced global var.
13740
13741 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
13742
13743         PR target/42542
13744         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
13745         GTU to GT for V4SI and V2DI.
13746
13747         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
13748         (umin<mode>3): Removed.
13749         (uminv8hi3): New.
13750         (uminv4si3): Likewise.
13751
13752 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
13753
13754         PR lto/42581
13755         * collect2.c (main): Turn on trace in collect2 if -v is passed
13756         to gcc with LTO.
13757
13758 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
13759
13760         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
13761         description of expression operand.
13762
13763 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
13764
13765         * configure.ac: Add install-html to target_list for Make-hooks.
13766         * configure: Regenerate.
13767         * fortran/Make-lang.in (F95_HTMLFILES): New.
13768         (fortran.html): Use it.
13769         (fortran.install-html): New.
13770         * Makefile.in (install-html): Add lang.install-html.
13771         * java/Make-lang.in (JAVA_HTMLFILES): New.
13772         (java.html): Use it.
13773         (java.install-html): New.
13774         * objc/Make-lang.in (objc.install-html): New.
13775         * objcp/Make-lang.in (obj-c++.install-html): New.
13776         * cp/Make-lang.in (c++.install-html): New.
13777         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
13778         * lto/Make-lang.in (lto.install-html): New.
13779
13780 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
13781
13782         PR lto/42520
13783         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
13784
13785 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
13786
13787         PR rtl-optimization/41862
13788         * store-motion.c (store_killed_in_insn, compute_store_table,
13789         remove_reachable_equiv_notes, replace_store_insn,
13790         build_store_vectors): Ignore all DEBUG_INSNs.
13791
13792 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
13793
13794         PR lto/41564
13795         * common.opt: Add dumpdir.
13796
13797         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
13798         isn't specified.
13799         (option_map): Add --dumpdir.
13800
13801         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
13802
13803         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
13804
13805         * opts.c (decode_options): Try dump_dir_name first if
13806         dump_base_name isn't an absolute path.
13807         (common_handle_option): Handle OPT_dumpdir.
13808
13809         * toplev.c (dump_dir_name): New.
13810         (print_switch_values): Also ignore -dumpdir.
13811
13812         * toplev.h (dump_dir_name): New.
13813
13814 2010-01-03  Richard Guenther  <rguenther@suse.de>
13815
13816         PR tree-optimization/42589
13817         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
13818         double-word expansion of bswap32.
13819
13820 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
13821
13822         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
13823         with BLOCK_FOR_INSN.
13824         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
13825         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
13826         noce_process_if_block): Likewise.
13827         * gcse.c (compute_local_properties, insert_expr_in_table,
13828         insert_set_in_table, canon_list_insert, find_avail_set,
13829         pre_insert_copy_insn): Likewise.
13830
13831         * basic-block.h (BLOCK_NUM): Move from here...
13832         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
13833
13834 2010-01-03  Richard Guenther  <rguenther@suse.de>
13835
13836         PR tree-optimization/42438
13837         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
13838         contains_may_not_return_call flag.
13839         (BB_MAY_NOTRETURN): New.
13840         (valid_in_sets): Trapping nary operations are not valid
13841         in blocks that may not return.
13842         (insert_into_preds_of_block): Remove check for trapping expressions.
13843         (compute_avail): Compute also BB_MAY_NOTRETURN.
13844
13845 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
13846
13847         * doc/invoke.texi: Add 2010 to copyright years.
13848
13849 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
13850
13851         * config/sparc/sparc.c: Fix formatting nits.
13852
13853 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
13854             Alexander Monakov  <amonakov@ispras.ru>
13855
13856         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
13857
13858 2010-01-02  Richard Guenther  <rguenther@suse.de>
13859
13860         PR middle-end/42577
13861         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
13862         (simplify_switch_using_ranges): Mark to be removed edges
13863         as non-executable.
13864
13865 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13866
13867         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
13868
13869         * collect2.c (scan_libraries): Add missing argument in call to
13870         scan_prog_file.
13871
13872 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
13873
13874         PR target/42448
13875         * config/alpha/predicates.md (aligned_memory_operand): Return false
13876         for CQImode.
13877         (unaligned_memory_operand): Return true for CQImode.
13878         * config/alpha/alpha.c (get_aligned_mem): Assert that location
13879         doesn not cross aligned SImode word boundary.
13880
13881 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
13882
13883         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
13884         Remove.
13885         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
13886         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
13887
13888 2010-01-02  Richard Guenther  <rguenther@suse.de>
13889
13890         PR lto/41597
13891         * toplev.c (compile_file): Emit LTO marker properly.  Change
13892         it to __gnu_lto_v1.
13893         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
13894
13895 2010-01-01  Richard Guenther  <rguenther@suse.de>
13896
13897         PR debug/42455
13898         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
13899
13900 2010-01-01  Richard Guenther  <rguenther@suse.de>
13901
13902         PR c/42570
13903         * c-decl.c (grokdeclarator): For zero-size arrays force
13904         structural equality checks as layout_type does.
13905
13906 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
13907
13908         * builtins.c: Update copyright to 2010.
13909
13910 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
13911
13912         PR lto/42531
13913         * lto-streamer-out.c (produce_asm): Revert the last change.
13914         (copy_function): Likewise.
13915
13916         * lto-streamer.c (lto_get_section_name): Skip any leading
13917         asterisk in name.
13918
13919 2010-01-01  Richard Guenther  <rguenther@suse.de>
13920
13921         PR middle-end/42559
13922         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
13923         for LABEL_DECLs.
13924
13925 \f
13926 Copyright (C) 2010 Free Software Foundation, Inc.
13927
13928 Copying and distribution of this file, with or without modification,
13929 are permitted in any medium without royalty provided the copyright
13930 notice and this notice are preserved.