OSDN Git Service

cb5ec8ca0fdafc32092fd6a0755a6c82295576dd
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
2
3         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
4
5 2010-06-09  Martin Jambor  <mjambor@suse.cz>
6
7         PR tree-optimization/44423
8         * tree-sra.c (dump_access): Dump also grp_assignment_read.
9         (analyze_access_subtree): Pass negative allow_replacements to children
10         if the current type is scalar.
11
12 2010-06-09  Joern Rennecke  <amylaar@spamcop.net>
13
14         PR testsuite/42843
15         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
16         * doc/plugins.texi (Plugin license check): Update information
17         on type of plugin_is_GPL_compatible.
18         * Makefile.in (PLUGINCC): Define as $(COMPILER).
19         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
20
21 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
22
23         * config/arm/arm.c (thumb2_reorg): New function.
24         (arm_reorg): Call it.
25         * config/arm/thumb2.md (define_peephole2 for flag clobbering
26         arithmetic operations): Delete.
27
28 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
29
30         PR target/44067
31         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
32         e500v2 target.
33
34 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
35
36         PR plugins/44459
37         * gcc-plugin.h: Encapsulate all declarations in extern "C".
38
39 2010-06-08  Jan Hubicka  <jh@suse.cz>
40
41         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
42         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
43
44 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
45
46         PR tree-optimization/39874
47         PR middle-end/28685
48         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
49         Declare.
50         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
51         same_bool_result_p): New.
52         (and_var_with_comparison, and_var_with_comparison_1,
53         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
54         (or_var_with_comparison, or_var_with_comparison_1,
55         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
56         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
57         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
58         of combine_comparisons.
59         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
60
61 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
62
63         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
64         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
65         * config/pdp11/pdp11.c (moxie_function_value, moxie_libcall_value,
66         moxie_function_value_regno_p): New functions.
67         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
68         TARGET_FUNCTION_VALUE_REGNO_P): Define.
69
70 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
71
72         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
73         Thumb-2 in the MINUS case.
74
75 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
76
77         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
78
79         * doc/gty.texi (GTY Options): Document typed GC allocation and
80         variable_size GTY option.
81
82         * ggc-internal.h: New.
83
84         * ggc.h: Update copyright year.
85         (digit_string): Move to stringpool.c.
86         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
87         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
88         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
89         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
90         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
91         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
92         (ggc_force_collect, ggc_get_size, ggc_statistics)
93         (ggc_print_common_statistics): Move to ggc-internal.h.
94         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
95         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
96         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
97         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
98         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
99         (ggc_alloc_zone_pass_stat): Remove.
100         (ggc_internal_alloc_stat, ggc_internal_alloc)
101         (ggc_internal_cleared_alloc_stat): New.
102         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
103         (ggc_internal_vec_alloc_stat)
104         (ggc_internal_cleared_vec_alloc_stat)
105         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
106         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
107         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
108         (ggc_cleared_alloc_ptr_array_two_args): New.
109         (htab_create_ggc, splay_tree_new_ggc): Redefine.
110         (ggc_splay_alloc): Change the type of the first argument to
111         enum gt_types_enum.
112         (ggc_alloc_string): Make macro.
113         (ggc_alloc_string_stat): New.
114         (ggc_strdup): Redefine.
115         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
116         (ggc_alloc_rtvec_sized): New.
117         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
118         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
119         (ggc_internal_cleared_alloc_zone_stat)
120         (ggc_internal_zone_alloc_stat)
121         (ggc_internal_zone_cleared_alloc_stat)
122         (ggc_internal_zone_vec_alloc_stat)
123         (ggc_alloc_zone_rtx_def_stat)
124         (ggc_alloc_zone_tree_node_stat)
125         (ggc_alloc_zone_cleared_tree_node_stat)
126         (ggc_alloc_cleared_gimple_statement_d_stat): New.
127
128         * ggc-common.c: Include ggc-internal.h.
129         (ggc_internal_cleared_alloc_stat): Rename from
130         ggc_alloc_cleared_stat.
131         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
132         (ggc_calloc): Remove.
133         (ggc_cleared_alloc_htab_ignore_args): New.
134         (ggc_cleared_alloc_ptr_array_two_args): New.
135         (ggc_splay_alloc): Add obj_type parameter.
136         (init_ggc_heuristics): Formatting fixes.
137
138         * ggc-none.c: Update copyright year.
139         (ggc_alloc_stat): Rename to ggc_alloc_stat.
140         (ggc_alloc_cleared_stat): Rename to
141         ggc_internal_cleared_alloc_stat.
142         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
143
144         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
145         Remove references to ggc_alloc in comments.
146         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
147         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
148         (new_ggc_zone, destroy_ggc_zone): Remove.
149         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
150
151         * ggc-zone.c: Include ggc-internal.h.  Remove references to
152         ggc_alloc in comments.
153         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
154         (ggc_internal_alloc_zone_pass_stat): New.
155         (ggc_internal_cleared_alloc_zone_stat): New.
156         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
157         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
158         (new_ggc_zone, destroy_ggc_zone): Remove.
159
160         * stringpool.c: Update copyright year.  Include ggc-internal.h
161         (digit_vector): Make static.
162         (digit_string): Moved from ggc.h.
163         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
164         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
165
166         * Makefile.in (GGC_INTERNAL_H): New.
167         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
168         $(GGC_INTERNAL_H) to dependencies.
169
170         * gentype.c: Update copyright year.
171         (walk_type): Accept variable_size GTY option.
172         (USED_BY_TYPED_GC_P): New macro.
173         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
174         whitespace at the end of strings.
175         (get_type_specifier, variable_size_p): New functions.
176         (alloc_quantity, alloc_zone): New enums.
177         (write_typed_alloc_def): New function.
178         (write_typed_struct_alloc_def): Likewise.
179         (write_typed_typed_typedef_alloc_def): Likewise.
180         (write_typed_alloc_defns): Likewise.
181         (output_typename, write_splay_tree_allocator_def): Likewise.
182         (write_splay_tree_allocators): Likewise.
183         (main): Call write_typed_alloc_defns and
184         write_splay_tree_allocators.
185
186         * lto-streamer.h (lto_file_decl_data_ptr): New.
187
188         * passes.c (order): Define using cgraph_node_ptr.
189
190         * strinpool.c (struct string_pool_data): Declare nested_ptr using
191         ht_identifier_ptr.
192
193         * gimple.h (union gimple_statement_d): Likewise.
194
195         * rtl.h (struct rtx_def): Likewise.
196         (struct rtvec_def): Likewise.
197
198         * tree.h (union tree_node): Likewise.
199
200         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
201
202         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
203
204         * tree-scalar-evolution.c (scev_initialize): Likewise.
205
206         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
207
208         * dwarf2asm.c (dw2_force_const_mem): Likewise.
209
210         * omp-low.c (lower_omp_critical): Likewise.
211
212         * bitmap.h (struct bitmap_head_def): Update comment to not
213         reference ggc_alloc.
214
215         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
216
217         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
218
219         * ipa-prop.c (duplicate_ggc_array): Rename to
220         duplicate_ipa_jump_func_array.  Use typed GC allocation.
221         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
222
223         * gimple.c (gimple_alloc_stat): Use
224         ggc_alloc_cleared_gimple_statement_d_stat.
225
226         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
227
228         * tree.c (make_node_stat): Use
229         ggc_alloc_zone_cleared_tree_node_stat.
230         (make_tree_vec_stat): Likewise.
231         (build_vl_exp_stat): Likewise.
232         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
233         (make_tree_binfo_stat): Likewise.
234         (tree_cons_stat): Likewise.
235
236         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
237         (shallow_copy_rtx_stat): Likewise.
238         (make_node_stat): Likewise.
239
240         * lto-symtab.c: Fix comment.
241
242         * tree-cfg.c (create_bb): Update comment to not reference
243         ggc_alloc_cleared.
244         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
245         value.
246
247         * varpool.c (varpool_node): Use typed GC allocation.
248         (varpool_extra_name_alias): Likewise.
249
250         * varasm.c (emutls_decl): Likewise.
251         (get_unnamed_section): Likewise.
252         (get_noswitch_section): Likewise.
253         (get_section): Likewise.
254         (get_block_for_section): Likewise.
255         (build_constant_desc): Likewise.
256         (create_constant_pool): Likewise.
257         (force_const_mem): Likewise.
258
259         * tree.c (build_vl_exp_stat): Likewise.
260         (build_real): Likewise.
261         (build_string): Likewise.
262         (decl_debug_expr_insert): Likewise.
263         (decl_value_expr_insert): Likewise.
264         (type_hash_add): Likewise.
265         (build_omp_clause): Likewise.
266
267         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
268
269         * tree-ssa.c (init_tree_ssa): Likewise.
270
271         * tree-ssa-structalias.c (heapvar_insert): Likewise.
272
273         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
274
275         * tree-ssa-loop-niter.c (record_estimate): Likewise.
276
277         * tree-ssa-alias.c (get_ptr_info): Likewise.
278
279         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
280
281         * tree-phinodes.c (allocate_phi_node): Likewise.
282
283         * tree-iterator.c (tsi_link_before): Likewise.
284         (tsi_link_after): Likewise.
285
286         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
287
288         * tree-dfa.c (create_var_ann): Likewise.
289
290         * tree-cfg.c (create_bb): Likewise.
291
292         * toplev.c (alloc_for_identifier_to_locale): Likewise.
293         (general_init): Likewise.
294
295         * stringpool.c (stringpool_ggc_alloc): Likewise.
296         (gt_pch_save_stringpool): Likewise.
297
298         * sese.c (if_region_set_false_region): Likewise.
299
300         * passes.c (do_per_function_toporder): Likewise.
301
302         * optabs.c (set_optab_libfunc): Likewise.
303         (set_conv_libfunc): Likewise.
304
305         * lto-symtab.c (lto_symtab_register_decl): Likewise.
306
307         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
308         (input_eh_region): Likewise.
309         (input_eh_lp): Likewise.
310         (make_new_block): Likewise.
311         (unpack_ts_real_cst_value_fields): Likewise.
312
313         * lto-section-in.c (lto_new_in_decl_state): Likewise.
314
315         * lto-cgraph.c (input_node_opt_summary): Likewise.
316
317         * loop-init.c (loop_optimizer_init): Likewise.
318
319         * lambda.h (lambda_vector_new): Likewise.
320
321         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
322
323         * ira.c (update_equiv_regs): Likewise.
324
325         * ipa.c (cgraph_node_set_new): Likewise.
326         (cgraph_node_set_add): Likewise.
327         (varpool_node_set_new): Likewise.
328         (varpool_node_set_add): Likewise.
329
330         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
331         (duplicate_ipa_jump_func_array): Likewise.
332         (ipa_read_node_info): Likewise.
333
334         * ipa-cp.c (ipcp_create_replace_map): Likewise.
335
336         * integrate.c (get_hard_reg_initial_val): Likewise.
337
338         * gimple.c (gimple_alloc_stat): Likewise.
339         (gimple_build_omp_for): Likewise.
340         (gimple_seq_alloc): Likewise.
341         (gimple_copy): Likewise.
342
343         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
344         (gsi_insert_after_without_update): Likewise.
345
346         * function.c (add_frame_space): Likewise.
347         (insert_temp_slot_address): Likewise.
348         (assign_stack_temp_for_type): Likewise.
349         (allocate_struct_function): Likewise.
350         (types_used_by_var_decl_insert): Likewise.
351
352         * except.c (init_eh_for_function): Likewise.
353         (gen_eh_region): Likewise.
354         (gen_eh_region_catch): Likewise.
355         (gen_eh_landing_pad): Likewise.
356         (add_call_site): Likewise.
357
358         * emit-rtl.c (get_mem_attrs): Likewise.
359         (get_reg_attrs): Likewise.
360         (start_sequence): Likewise.
361         (init_emit): Likewise.
362
363         * dwarf2out.c (new_cfi): Likewise.
364         (queue_reg_save): Likewise.
365         (dwarf2out_frame_init): Likewise.
366         (new_loc_descr): Likewise.
367         (find_AT_string): Likewise.
368         (new_die): Likewise.
369         (add_var_loc_to_decl): Likewise.
370         (clone_die): Likewise.
371         (clone_as_declaration): Likewise.
372         (break_out_comdat_types): Likewise.
373         (new_loc_list): Likewise.
374         (loc_descriptor): Likewise.
375         (add_loc_descr_to_each): Likewise.
376         (add_const_value_attribute): Likewise.
377         (tree_add_const_value_attribute): Likewise.
378         (add_comp_dir_attribute): Likewise.
379         (add_name_and_src_coords_attributes): Likewise.
380         (lookup_filename): Likewise.
381         (store_vcall_insn): Likewise.
382         (dwarf2out_init): Likewise.
383
384         * dbxout.c (dbxout_init): Likewise.
385
386         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
387
388         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
389
390         * config/score/score7.c (score7_output_external): Likewise.
391
392         * config/score/score3.c (score3_output_external): Likewise.
393
394         * config/s390/s390.c (s390_init_machine_status): Likewise.
395
396         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
397         (rs6000_init_machine_status): Likewise.
398         (output_toc): Likewise.
399
400         * config/pa/pa.c (pa_init_machine_status): Likewise.
401         (get_deferred_plabel): Likewise.
402
403         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
404
405         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
406
407         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
408
409         * config/mep/mep.c (mep_init_machine_status): Likewise.
410         (mep_note_pragma_flag): Likewise.
411
412         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
413
414         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
415
416         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
417
418         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
419         (i386_pe_maybe_record_exported_symbol): Likewise.
420
421         * config/i386/i386.c (get_dllimport_decl): Likewise.
422         (ix86_init_machine_status): Likewise.
423         (assign_386_stack_local): Likewise.
424
425         * config/frv/frv.c (frv_init_machine_status): Likewise.
426
427         * config/darwin.c (machopic_indirection_name): Likewise.
428
429         * config/cris/cris.c (cris_init_machine_status): Likewise.
430
431         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
432
433         * config/avr/avr.c (avr_init_machine_status): Likewise.
434
435         * config/arm/arm.c (arm_init_machine_status): Likewise.
436
437         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
438         (alpha_need_linkage): Likewise.
439         (alpha_use_linkage): Likewise.
440
441         * cgraph.c (cgraph_allocate_node): Likewise.
442         (cgraph_create_edge_1): Likewise.
443         (cgraph_create_indirect_edge): Likewise.
444         (cgraph_add_asm_node): Likewise.
445
446         * cfgrtl.c (init_rtl_bb_info): Likewise.
447
448         * cfgloop.c (alloc_loop): Likewise.
449         (rescan_loop_exit): Likewise.
450
451         * cfg.c (init_flow): Likewise.
452         (alloc_block): Likewise.
453         (unchecked_make_edge): Likewise.
454
455         * c-parser.c (c_parse_init): Likewise.
456         (c_parse_file): Likewise.
457
458         * c-decl.c (bind): Likewise.
459         (record_inline_static): Likewise.
460         (push_scope): Likewise.
461         (make_label): Likewise.
462         (lookup_label_for_goto): Likewise.
463         (finish_struct): Likewise.
464         (finish_enum): Likewise.
465         (c_push_function_context): Likewise.
466
467         * bitmap.c (bitmap_element_allocate): Likewise.
468         (bitmap_gc_alloc_stat): Likewise.
469
470         * alias.c (record_alias_subset): Likewise.
471         (init_alias_analysis): Likewise.
472
473 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
474         
475         * fold-const.c (fold_comparison): Remove redundant parenthesis.
476         * tree-inline.c (expand_call_inline): Pass translated return value of
477         cgraph_inline_failed_string to diagnostic function.
478
479 2010-06-08  Andrew Pinski <pinskia@gmail.com>
480             Shujing Zhao  <pearly.zhao@oracle.com>
481
482         PR c/37724
483         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
484         implicit bad conversions is initialization.
485         (error_init): Use gmsgid instead of msgid for argument name and change
486         the call for error.
487         (pedwarn_init): Use gmsgid instead of msgid for argument name and
488         change the call for pedwarn.
489         (warning_init): Use gmsgid instead of msgid for argument name and
490         change the call for warning.
491
492 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
493
494         * config/mips/mips-protos.h (mips_print_operand): Delete.
495         (mips_print_operand_address): Delete.
496         * config/mips/mips.h (mips_print_operand_punct): Delete.
497         (PRINT_OPERAND): Delete.
498         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
499         (PRINT_OPERAND_ADDRESS): Delete.
500         * config/mips/mips.c (mips_print_operand_punct): Make static.
501         (mips_print_operand_address): Make static.
502         (mips_print_operand): Make static.  Call
503         mips_print_operand_punct_valid_p.
504         (mips_print_operand_punct_valid_p): New function.
505         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
506         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
507
508 2010-06-07  Jan Hubicka  <jh@suse.cz>
509
510         PR middle-end/44454
511         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
512         are allocated.
513
514 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
515
516         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
517         name of RECORD.
518
519 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
520
521         * doc/sourcebuild.texi (Effective-Target Keywords, Other
522         attributes): Document gas.
523
524 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
525
526         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
527         <TYPE_LEA>: Split instruction.
528         <default>: Remove alternative 2 handling.
529         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
530         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
531         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
532
533         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
534         (ashift_zext lea splitter): Use DImode for multiplication.
535
536         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
537         to generate addition.
538
539 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
540
541         * common.opt (fira-verbose): Use Var.
542         (fpcc-struct-return): Use Init instead of VarExists.
543         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
544         toplev.c.
545         * flags.h (flag_signed_char, flag_short_enums,
546         flag_pcc_struct_return, flag_ira_verbose,
547         flag_detailed_statistics, flag_remove_unreachable_functions):
548         Remove.
549         * toplev.c (flag_detailed_statistics, flag_signed_char,
550         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
551         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
552         * toplev.h (flag_crossjumping, flag_if_conversion,
553         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
554         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
555         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
556         flag_cprop_registers, time_report, flag_ira_loop_pressure,
557         flag_ira_coalesce, flag_ira_move_spills,
558         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
559
560 2010-06-07  Jan Hubicka  <jh@suse.cz>
561
562         * df-core.c (df_analyze_problem): Do verification after allocation.
563
564         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
565         (df_lr_alloc): Initialize problem data; move bitmaps to
566         lr_bitmaps obstack.
567         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
568         (df_lr_verify_solution_start): Do not initialize problem data;
569         allocate bitmaps in lr_bitmaps.
570         (df_lr_verify_solution_end): Do not free problem data.
571
572 2010-06-07  Jan Hubicka  <jh@suse.cz>
573
574         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
575         if caller is noreturn.
576         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
577         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
578         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
579         * ipa-pure-const.c (check_decl): Add IPA parameter.
580         (state_from_flags): New function.
581         (better_state, worse_state): New functions.
582         (check_call): When in IPA mode, do not care about callees.
583         (check_load, check_store): Update.
584         (check_ipa_load, check_ipa_store): New.
585         (check_stmt): When in IPA mode, use IPA checkers.
586         (analyze_function): Use state_from_flags.
587         (propagate): Check indirect edges and references.
588
589 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
590
591         PR rtl-optimization/44404
592         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
593         of count_occurrences to see if it's safe to modify mem_insn.insn.
594
595 2010-06-07  Richard Guenther  <rguenther@suse.de>
596
597         * gimplify.c (gimplify_cleanup_point_expr): For empty body
598         and EH-only cleanup drop the cleanup instead of inserting it
599         unconditionally.
600
601 2010-06-07  Ira Rosen  <irar@il.ibm.com>
602
603         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
604         documentation.
605         * targhooks.c (default_builtin_vectorization_cost): New function.
606         * targhooks.h (default_builtin_vectorization_cost): Declare.
607         * target.h (enum vect_cost_for_stmt): Define.
608         (builtin_vectorization_cost): Change argument and comment.
609         * tree-vectorizer.h: Remove cost model macros.
610         * tree-vect-loop.c: Include target.h.
611         (vect_get_cost): New function.
612         (vect_estimate_min_profitable_iters): Replace cost model macros with
613         calls to vect_get_cost.
614         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
615         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
616         default implementation.
617         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
618         calls to target hook builtin_vectorization_cost.
619         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
620         Likewise.
621         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
622         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
623         implementation to return costs.
624         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
625         * config/spu/spu.h: Remove vectorizer cost model macros.
626         * config/i386/i386.h: Likewise.
627         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
628         a call to target hook builtin_vectorization_cost.
629
630 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
631
632         PR target/44319
633         * config/i386/i386.c (override_options): Turn zee pass on for level 2
634         and above and defer till target is known.
635         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
636         turn off otherwise.
637
638 2010-05-25  Jan Hubicka  <jh@suse.cz>
639
640         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
641         (df_compact_blocks): Likewise.
642         * df.h (struct df): Turn hardware_regs_used,
643         regular_block_artificial_uses, eh_block_artificial_uses,
644         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
645         bitmap_head.
646         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
647         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
648         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
649         df_scan_blocks, df_insn_delete, df_insn_rescan,
650         df_insn_rescan_debug_internal, df_insn_rescan_all,
651         df_process_deferred_rescans, df_process_deferred_rescans,
652         df_notes_rescan, df_get_call_refs, df_get_call_refs,
653         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
654         df_record_entry_block_defs, df_record_exit_block_uses,
655         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
656         df_scan_verify): Update.
657
658 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
659
660         PR c++/44188
661         * c-common.c (is_typedef_decl): Move this definition ...
662         * tree.c (is_typedef_decl): ... here.
663         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
664         * c-common.h (is_typedef_decl): Move this declaration ...
665         * tree.h (is_typedef_decl): ... here.
666         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
667         * dwarf2out.c (is_naming_typedef_decl): New function.
668         (gen_tagged_type_die): Split out of ...
669         (gen_type_die_with_usage): ... this function. When an anonymous
670         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
671         is emitted for the typedef.
672         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
673         anonymous tagged types.
674
675 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
676
677         PR c/20000
678         * c-decl.c (grokdeclarator): Delete warning.
679
680 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
681
682         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
683         newly built CALL_EXPR.
684         * tree-profile.c (tree_profiling): Don't profile functions produced
685         for built-in stuff.
686
687 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
688
689         PR bootstrap/44427
690         PR bootstrap/44428
691         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
692         endianness-independent.
693
694 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
695
696         * c-common.c: Move to c-family/.
697         * c-common.def: Likewise.
698         * c-common.h: Likewise.
699         * c-cppbuiltin.c: Likewise.
700         * c-dump.c: Likewise.
701         * c-format.c: Likewise.
702         * c-format.h : Likewise.
703         * c-gimplify.c: Likewise.
704         * c-lex.c: Likewise.
705         * c-omp.c: Likewise.
706         * c.opt: Likewise.
707         * c-opts.c: Likewise.
708         * c-pch.c: Likewise.
709         * c-ppoutput.c: Likewise.
710         * c-pragma.c: Likewise.
711         * c-pragma.h: Likewise.
712         * c-pretty-print.c: Likewise.
713         * c-pretty-print.h: Likewise.
714         * c-semantics.c: Likewise.
715         * stub-objc.c: Likewise.
716
717         * gengtype.c (get_file_langdir): Special-case files in c-family/.
718         (get_output_file_with_visibility): Fix name for c-common.h.
719         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
720
721         * c-tree.h: Update include path for moved files.
722         * c-lang.c: Likewise.
723         * c-lang.h: Likewise.
724         * c-parser.c: Likewise.
725         * c-convert.c: Likewise.
726         * c-decl.c: Likewise.
727         * c-objc-common.c: Likewise.
728         * configure.ac: Make sure c-family/ exists in the build directory.
729         * configure: Regenerate.
730         * Makefile.in: Update paths for moved files.  Regroup files per
731         location and update dependencies.  Move generated_files down after
732         ALL_GTFILES_H.
733
734         * config/spu/spu-c.c: Update paths for moved files.
735         * config/mep/mep-pragma.c: Likewise.
736         * config/darwin-c.c: Likewise.
737         * config/i386/msformat-c.c: Likewise.
738         * config/i386/i386-c.c: Likewise.
739         * config/avr/avr-c.c: Likewise.
740         * config/sol2-c.c: Likewise.
741         * config/ia64/ia64-c.c: Likewise.
742         * config/rs6000/rs6000-c.c: Likewise.
743         * config/arm/arm.c: Likewise.
744         * config/arm/arm-c.c: Likewise.
745         * config/h8300/h8300.c: Likewise.
746         * config/v850/v850-c.c: Likewise.
747
748         * config/t-darwin: Fix dependencies for moved files.
749         * config/t-sol2: Fix dependencies for moved files.
750         * config/mep/t-mep: Fix dependencies for moved files.
751         * config/ia64/t-ia64: Fix dependencies for moved files.
752         * config/rs6000/t-rs6000: Fix dependencies for moved files.
753         * config/v850/t-v850: Fix dependencies for moved files.
754         * config/v850/t-v850e: Fix dependencies for moved files.
755
756         * config/m32c/m32c-pragma.c
757
758         * po/exgettext: Look in c-family/ also.
759
760 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
761
762         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
763         (mark_control_dependent_edges_necessary): Call it instead of marking
764         the last statement manually.
765         (propagate_necessity): Likewise.
766
767 2010-06-05  Jan Hubicka  <jh@suse.cz>
768
769         * basic-block.h (compute_dominance_frontiers): Updated.
770         (compute_idf): Likewise.
771
772         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
773         for dominance frontiers.
774         (rewrite_into_ssa): Update for bitmap heads in dominance
775         frontiers.
776         (insert_updated_phi_nodes_for): Likewise.
777         (update_ssa): Likewise.
778         * cfganal.c (compute_dominance_frontiers_1): Likewise.
779         (compute_dominance_frontiers): Likewise.
780         (compute_idf): Likewise.
781         * df-problems.c (df_md_local_compute): Likewise.
782
783 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
784
785         * target.h (struct gcc_target): Add memory_move_cost field.
786         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
787         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
788         * targhooks.c (default_memory_move_cost): New function.
789         * targhooks.h (default_memory_move_cost): Declare function.
790         * reload.h (memory_move_cost): Declare.
791         (memory_move_secondary_cost): Change type of 'in' argument to bool.
792         * reginfo.c (memory_move_cost): New function.
793         (memory_move_secondary_cost): Change type of 'in' argument to bool.
794         * ira.h (ira_memory_move_cost): Update comment.
795         * ira.c: (ira_memory_move_cost): Update comment.
796         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
797         with memory_move_cost.
798         * postreload.c (reload_cse_simplify_set): (Ditto.).
799         * reload1.c (choose_reload_regs): (Ditto.).
800         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
801         (MEMORY_MOVE_COST):  Revise documentation.
802
803         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
804         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
805         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
806         type of 'in' argument to bool.
807         (TARGET_MEMORY_MOVE_COST): Define.
808
809 2010-06-05  Jan Hubicka  <jh@suse.cz>
810
811         * ipa-pure-const.c (propagate): Fix typo in handling of functions
812         that cannot return.  Be more careful when merging the results with
813         previously known ones.
814
815 2010-06-05  Matthias Klose  <doko@ubuntu.com>
816
817         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
818         function to add the -iplugindir option.
819         (find_plugindir_spec_function): Add new declaration and function.
820         (static_spec_func): Use it for "find-plugindir".
821
822 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
823
824         PR c++/44361
825         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
826         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
827         statement expression.
828
829 2010-06-05  Jan Hubicka  <jh@suse.cz>
830
831         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
832         (df_rd_problem_data): Convert sparse_invalidated_by_call,
833         dense_invalidated_by_call to bitmap head.
834         (df_rd_alloc, df_rd_bb_local_compute_process_def,
835         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
836         df_rd_start_dump, df_lr_verify_transfer_functions,
837         df_live_verify_transfer_functions, df_chain_create_bb,
838         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
839         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
840         df_simulate_one_insn_forwards, df_md_alloc,
841         df_md_bb_local_compute_process_def,
842         df_md_bb_local_compute_process_def, df_md_local_compute,
843         df_md_transfer_function df_md_free): Update.
844
845 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
846
847         PR c/44322
848         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
849         target type for ADDR_EXPR; require no changes to qualifiers except
850         for function types.
851         * c-tree.h (c_build_type_variant): Remove.
852
853 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
854
855         * genautomata.c (get_excl_set): Do work per element, not per char.
856         (check_presence_pattern_sets): Similar.
857         (check_absence_pattern_sets): Similar.
858
859 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
860
861         * genautomata.c (curr_state_pass_num): Delete.
862         (min_issue_delay_pass_states): Delete.
863         (min_issue_delay): Delete.
864         (initiate_min_issue_delay_pass_states): Delete.
865         (output_min_issue_delay_table): Compute min_issue_delay_vect
866         using a breadth-first search variant.
867         (output_tables): Don't call initiate_min_issue_delay_pass_states.
868
869 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
870
871         PR boostrap/44421
872         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
873         (df_byte_lr_bb_local_compute): Likewise.
874
875 2010-06-03  Jason Merrill  <jason@redhat.com>
876
877         Implement noexcept operator (5.3.7)
878         * c-common.c (c_common_reswords): Add noexcept.
879         * c-common.h (enum rid): Add RID_NOEXCEPT.
880
881 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
882
883         * config/darwin-driver.c (darwin_default_min_version): Use
884         GCC-specific formats in diagnostics.
885         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
886         diagnostics.
887         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
888         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
889         eval_spec_function, handle_braces, process_brace_body, main,
890         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
891         getenv_spec_function, compare_version_strings,
892         version_compare_spec_function): Use GCC-specific formats in
893         diagnostics.
894
895 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
896
897         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
898         that operand 0 and operand 1 are equal.
899         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
900         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
901         and operand 1 are equal.
902         <default>: Ditto.  Remove ??? comment.
903         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
904         and operand 1 are equal.
905         <default>: Ditto.  Remove ??? comment.
906         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
907         are equal.
908         (*add<mode>_4) <default>: Ditto.
909         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
910
911 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
912
913         * config/i386/i386-protos.h (ix86_print_operand): Declare.
914         * config/i386/i386.c (ix86_print_operand): Make non-static.
915         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
916         * output.h (output_operand): Declare.
917         * final.c (output_operand): Make non-static.
918
919 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
920
921         PR rtl-optimization/44013
922         * sched-deps.c (add_dependence_list_and_free): Don't free lists
923         when processing debug insns.
924
925         PR debug/41371
926         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
927         recursing.  Check that recursion is bounded.  Rename inner var
928         to avoid hiding incoming argument.
929
930 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
931
932         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
933         operands[2] == 255.
934         (*addqi_3): Ditto.
935         (*addqi_4): Ditto.
936         (*addqi_5): Ditto.
937         (*addqi_ext_1_rex64): Ditto.
938         (*addqi_ext_1): Ditto.
939
940         (*addqi_4): Check for incdec_operand in QImode.
941
942         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
943         using SWI mode iterator.
944         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
945         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
946         mode iterator.
947         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
948         using SWI mode iterator.
949
950 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
951
952         PR c/25880
953         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
954         * c-format.c (gcc_diag_flag_specs): Add hash.
955         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
956         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
957         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
958         pp_c_cv_qualifiers. Handle qualifiers spelling here.
959         (pp_c_type_qualifier_list): Call the function above.
960         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
961         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
962         (WARN_FOR_QUALIFIERS): New macro.
963         (convert_for_assignment): Use it.
964
965 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
966
967         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
968
969 2010-06-04  Jan Hubicka  <jh@suse.cz>
970
971         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
972         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
973         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
974         DF_BYTE_LR_OUT): Update for embedded bitmaps.
975         * fwprop.c (single_def_use_enter_block): Likewise.
976         * ddg.c (create_ddg_dep_from_intra_loop_link,
977         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
978         * loop-iv.c (latch_dominating_def): Likewise.
979         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
980         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
981         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
982         df_rd_transfer_function, df_rd_top_dump,
983         df_rd_bottom_dump): Update.
984         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
985         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
986         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
987         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
988         df_lr_verify_solution_start, df_lr_verify_solution_end,
989         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
990         df_live_free_bb_info, df_live_alloc, df_live_reset,
991         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
992         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
993         df_live_verify_solution_start, df_live_verify_solution_end,
994         df_live_verify_transfer_functions, df_chain_create_bb,
995         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
996         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
997         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
998         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
999         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
1000         df_byte_lr_transfer_function, df_byte_lr_top_dump,
1001         df_byte_lr_bottom_dump, df_create_unused_note,
1002         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
1003         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
1004         df_md_transfer_function, df_md_init, df_md_confluence_0,
1005         df_md_confluence_n,
1006         df_md_top_dump, df_md_bottom_dump): Update.
1007         (struct df_lr_problem_data): Embedd bitmap headers.
1008
1009 2010-06-04  Jan Hubicka  <jh@suse.cz>
1010
1011         * dce.c (dce_process_block): Do not re-scan already marked
1012         instructions.
1013
1014 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
1015
1016         PR rtl-optimization/39871
1017         PR rtl-optimization/40615
1018         PR rtl-optimization/42500
1019         PR rtl-optimization/42502
1020         * ira.c (init_reg_equiv_memory_loc: New function.
1021         (ira): Call it twice.
1022         * reload.h (calculate_elim_costs_all_insns): Declare.
1023         * ira-costs.c: Include "reload.h".
1024         (regno_equiv_gains): New static variable.
1025         (init_costs): Allocate it.
1026         (finish_costs): Free it.
1027         (ira_costs): Call calculate_elim_costs_all_insns.
1028         (find_costs_and_classes): Take estimated elimination costs
1029         into account.
1030         (ira_adjust_equiv_reg_cost): New function.
1031         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
1032         * reload1.c (init_eliminable_invariants, free_reg_equiv,
1033         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
1034         (elim_bb): New static variable.
1035         (reload): Move code out of here into init_eliminable_invariants and
1036         free_reg_equiv.  Call them.
1037         (calculate_elim_costs_all_insns): New function.
1038         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
1039         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
1040         but call note_reg_elim_costly if we turned a valid memory address
1041         into an invalid one.
1042         * Makefile.in (ira-costs.o): Depend on reload.h.
1043
1044 2010-06-04  Julian Brown  <julian@codesourcery.com>
1045
1046         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
1047         for pool ranges.
1048
1049 2010-06-04  Richard Guenther  <rguenther@suse.de>
1050
1051         PR lto/41584
1052         * cgraph.h (struct varpool_node): Add lto_file_data field.
1053         * lto-cgraph.c (input_varpool_node): Initialize it.
1054
1055 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1056
1057         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
1058         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
1059         predicate in "type" attribute calculation.
1060         (*addsi_1_zext): Ditto.
1061         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
1062         (*addsi_2_zext): Ditto.
1063         (*add<mode>_3): Ditto.
1064         (*addsi_3_zext): Ditto.
1065         (*add<mode>_5): Ditto.
1066
1067 2010-06-03  Jan Hubicka  <jh@suse.cz>
1068
1069         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
1070         of bitmap_bit_p.
1071         * cfganal.c (compute_dominance_frontiers_1): Likewise.
1072
1073 2010-06-03  Jan Hubicka  <jh@suse.cz>
1074
1075         * df-problems.c (df_create_unused_note, df_note_bb_compute):
1076         micro-optimize the checks when to add new note.
1077
1078 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
1079
1080         * final.c (output_asm_insn): Call
1081         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
1082         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
1083         (output_address): Call targetm.asm_out.print_operand_address.
1084         Update comments.
1085         * target.h (struct gcc_target): Add print_operand,
1086         print_operand_address, and print_operand_punct_valid_p fields.
1087         * targhooks.h (default_print_operand): Declare.
1088         (default_print_operand_address): Declare.
1089         (default_print_operand_punct_valid_p): Declare.
1090         * targhooks.c (default_print_operand): Define.
1091         (default_print_operand_address): Define.
1092         (default_print_operand_punct_valid_p): Define.
1093         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
1094         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
1095         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
1096         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
1097         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
1098         * vmsdbgout.c (addr_const_to_string): Update comment.
1099         * config/i386/i386.c (print_operand): Rename to...
1100         (ix86_print_operand): ...this.  Make static.
1101         (print_operand_address): Rename to...
1102         (ix86_print_operand_address): ...this.  Make static.  Call
1103         ix86_print_operand instead of PRINT_OPERAND.
1104         (ix86_print_operand_punct_valid_p): New function.
1105         (TARGET_PRINT_OPERAND): Define.
1106         (TARGET_PRINT_OPERAND_ADDRESS): Define.
1107         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1108         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
1109         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1110         (PRINT_OPERAND): Delete.
1111         (PRINT_OPERAND_ADDRESS): Delete.
1112         * config/i386/i386-protos.h (print_operand): Delete prototype.
1113         (print_operand_address): Delete prototype.
1114
1115 2010-06-03  Richard Guenther  <rguenther@suse.de>
1116
1117         PR tree-optimization/44403
1118         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1119         Preserve pointer qualifiers.
1120         (vect_create_data_ref_ptr): Likewise.
1121
1122 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1123
1124         PR c++/44294
1125         * defaults.h (MAX_FIXED_MODE_SIZE): New.
1126
1127         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
1128
1129 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
1130
1131         PR debug/44375
1132         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
1133         return false if merging the bbs would lead to goto_locus
1134         location being lost from the IL.
1135
1136 2010-06-03  Jan Hubicka  <jh@suse.cz>
1137             Jakub Jelinek  <jakub@redhat.com>
1138
1139         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
1140         set->regs[i] is NULL or has just one entry.
1141
1142 2010-06-03  Jan Hubicka  <jh@suse.cz>
1143
1144         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
1145         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
1146
1147 2010-06-03  Paul Brook  <paul@codesourcery.com>
1148
1149         * config/arm/arm.c (FL_TUNE): Define.
1150         (arm_default_cpu, arm_cpu_select): Remove.
1151         (all_cores): Populate core field.
1152         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
1153         (arm_find_cpu): New function.
1154         (arm_handle_option): Lookup cpu/architecture names.
1155         (arm_override_options): Cleanup mcpu/march/mtune handling.
1156         (arm_file_start): Ditto.
1157
1158 2010-06-03  Alan Modra  <amodra@gmail.com>
1159
1160         PR target/44169
1161         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
1162         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
1163         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
1164         (rs6000_emit_load_toc_table): Likewise.
1165
1166 2010-06-02  Jan Hubicka  <jh@suse.cz>
1167
1168         * passes.c (init_optimization_passes): Put ipa reference
1169         after ipa pure-const.
1170
1171 2010-06-02  Jan Hubicka  <jh@suse.cz>
1172
1173         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
1174         calls_read_all and calls_write_all.
1175         (get_reference_optimization_summary): Fix formatting.
1176         (is_proper_for_analysis): Check that decl is not readonly.
1177         (propagate_bits): Check CONST/PURE/noreturn flags.
1178         (ipa_init): Move all_module_statics to optimization_summary_obstack.
1179         (analyze_function): Ignore indirect edges.
1180         (copy_global_bitmap): For all module statics, do nothing.
1181         (generate_summary): Do not print calls_read_all/calls_write_all.
1182         (read_write_all_from_decl): Take node as argument; check
1183         cgraph_node_cannot_return.
1184         (propagate): Reorganize read_all/write_all computation;
1185         check indirect edges; check ecf flags; use all_module_statics
1186         in the results; do not free all_module_statics.
1187         (stream_out_bitmap): Handle all_module_statics.
1188         (ipa_reference_write_optimization_summary): Likewise; use
1189         varpool/cgraph encoders to get boundaries.
1190         (ipa_reference_read_optimization_summary): Read in all_module_statics;
1191         use it when possible.
1192
1193 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1194
1195         PR target/44218
1196         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
1197         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
1198
1199         * doc/extend.texi (powerpc builtins): Document vec_recip,
1200         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
1201
1202         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
1203         (rs6000_emit_swrsqrt): Ditto.
1204         (rs6000_emit_swdivsf): Delete.
1205         (rs6000_emit_swdivdf): Ditto.
1206         (rs6000_emit_swrsqrtsf): Ditto.
1207
1208         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
1209         describe the reciprocal estimate support for each type.
1210         (recip_options): Map -mrecip=<opt> into option bits.
1211         (gen_2arg_fn_t): New typedef for binary rtx gen function.
1212         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
1213         reciprocal estimate instructions.
1214         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
1215         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
1216         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
1217         cost information if -mdebug=cost or -mdebug=reg.
1218         (rs6000_override_options): Set -mrecip-precision for power6, and
1219         power7 machines.  If -mvsx or -mdfp, enable various options that
1220         came in previous instruction set ISAs, unless the option was
1221         explicitly disabled by the command line option.  Parse
1222         -mrecip=<opt> options.
1223         (rs6000_builtin_vectorized_function): Add support for vectorizing
1224         the reciprocal estimate builtins and expansions.
1225         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
1226         (bdesc_2arg): Add reciprocal estimate builtins.
1227         (bdesc_1arg): Add reciprocal square root estimate builtins.
1228         (rs6000_expand_builtin): Rewrite to use a switch statement,
1229         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
1230         (rs6000_init_builtins): Create declarations for reciprocal
1231         estimate builtins.
1232         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
1233         sized, prefer traditional floating point registers, if integer
1234         vector types, prefer altivec registers.  Don't actually look at
1235         the memory address any more.
1236         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
1237         builtins.
1238         (rs6000_load_constant_and_splat): New helper function to load up
1239         the constant for reciprocal estimate instructions.
1240         (rs6000_emit_madd): New helper function for generating
1241         multiply/add type instructions, based on the current switches.
1242         (rs6000_emit_msub): Ditto.
1243         (rs6000_emit_mnsub): Ditto.
1244         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
1245         replace a divide with a reciprocal estimate and fixup, adding
1246         support for machines with high precision and vectors.
1247         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
1248         low precision machines.
1249         (rs6000_emit_swdiv): New common function to be called to replace a
1250         division with reciprocal estimate and fixup.
1251         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
1252         for double and vector types.  Add support for high precision machines.
1253
1254         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
1255         the reciprocal estimate instructions can be generated.
1256         (TARGET_FRE): Ditto.
1257         (TARGET_FRSQRTES): Ditto.
1258         (TARGET_FRSQRTE): Ditto.
1259         (RS6000_RECIP_*): New macros for reciprocal estimate support.
1260
1261         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
1262         square root estimate on vectors.
1263         (re<mode>2): New insn for reciprocal division estimate on vectors.
1264
1265         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
1266         New builtin.
1267         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
1268         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
1269         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
1270         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
1271         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
1272         (RS6000_BUILTIN_RSQRT): Ditto.
1273         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
1274         floating point builtin.
1275
1276         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1277         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
1278         __RECIP_PRECISION__ based on the command line switches.
1279         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
1280
1281         * config/rs6000/rs6000.opt (-mrecip): Document add support for
1282         replacing division instructions with reciprocal estimate and fixup.
1283         (-mrecip=<opt>): New option.
1284         (-mrecip-precision): Ditto.
1285
1286         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
1287         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
1288         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
1289         precision scalar.
1290
1291         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
1292         (UNSPEC_VREFP): Ditto.
1293         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
1294         conterparts with regard to support of -mno-fused-madd and -ffast-math.
1295         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
1296         reciprocal estimate instructions to be generated.
1297         (altivec_vrefp): Ditto.
1298
1299         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
1300         estimate support.
1301         (rreg): New mode attribute for reciprocal estimate support.
1302         (recip<mode>3): New insn for division using reciprocal estimate
1303         and fixup builtins.
1304         (divide define_split): New define_split to convert floating point
1305         division to use reciprocal estimate if the user used the
1306         appropriate options and the split is run when we can add new
1307         pseudo registers for the fixup.
1308         (rsqrt<mode>2): New insn for reciprocal square root support.
1309         (recipsf3): Move into recip<mode>3.
1310         (recipdf3): Ditto.
1311         (fres): Use TARGET_FRES.
1312         (rsqrtsf2): Move into rsqrt<mode>2.
1313         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
1314         (copysignsf3): Add support for VSX.
1315         (fred): Use TARGET_FRE.
1316         (fred_fpr): Ditto.
1317         (rsqrtdf_internal1): New function for frsqrte instruciton.
1318
1319         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
1320         (vec_rsqrt): Ditto.
1321
1322 2010-06-03  Richard Guenther  <rguenther@suse.de>
1323
1324         PR middle-end/44291
1325         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
1326         (set_user_assembler_libfunc): Likewise.
1327
1328 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
1329
1330         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
1331         defaults.h.
1332         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
1333         to defaults.h
1334         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
1335         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
1336         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
1337         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
1338         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
1339         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
1340         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
1341         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
1342         * defaults.h: Updated for above mentioned changes.
1343
1344 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
1345
1346         * c-common.c: Remove header include of tm_p.h.
1347         * Makefile.in (c-common.o): Remove TM_P_H dependency.
1348
1349 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
1350
1351         * tree.h (struct tree_decl_map): New type.
1352         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
1353         (tree_decl_map_hash): New prototype.
1354         (debug_expr_for_decl, value_expr_for_decl): Change into
1355         tree_decl_map hashtab from tree_map.
1356         (init_ttree): Adjust initialization.
1357         (tree_decl_map_hash): New function.
1358         (decl_debug_expr_lookup, decl_debug_expr_insert,
1359         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
1360
1361 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1362
1363         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
1364         linker emulations.
1365         * configure: Regenerate.
1366         * config.in: Regenerate.
1367
1368         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
1369         (X86_64_EMULATION): Define.
1370         (TARGET_LD_EMULATION): Use them.
1371
1372         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
1373         (SPARC64_EMULATION): Define.
1374         (LINK_ARCH_SPEC): Use them.
1375
1376 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
1377
1378         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
1379         smallest_mode_for_size for computing the precision types of new
1380         graphite IVs.  Do not call lang_hooks.types.type_for_size.
1381
1382 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
1383
1384         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
1385         information.
1386         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
1387
1388 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
1389
1390         PR middle-end/44363
1391         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
1392         return false instead.
1393
1394 2010-06-02  Jan Hubicka  <jh@suse.cz>
1395
1396         PR middle-end/44295
1397         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
1398         create new cgraph node to check callee.
1399
1400 2010-06-02  Richard Guenther  <rguenther@suse.de>
1401
1402         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
1403
1404 2010-06-02  Richard Guenther  <rguenther@suse.de>
1405
1406         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
1407         (lto_wrapper_cleanup): ... this.  Do not exit.
1408         (fatal): Adjust.  Exit here.
1409         (fatal_perror): Likewise.
1410         (fatal_signal): New function.
1411         (main): Set up signal handlers to cleanup temporary files.
1412         * Makefile.in (lto-wrapper.o): Adjust dependencies.
1413
1414 2010-06-02  Richard Guenther  <rguenther@suse.de>
1415
1416         PR tree-optimization/44377
1417         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
1418
1419 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1420
1421         * config/s390/2097.md (z10_fhex): Remove insn reservation.
1422         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
1423         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
1424         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
1425         instruction.
1426         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
1427
1428 2010-06-02  Jan Hubicka  <jh@suse.cz>
1429
1430         * bitmap.c (bitmap_descriptor): Add search_iter.
1431         (bitmap_find_bit): Increment it.
1432         (print_statistics): Print it.
1433
1434 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
1435
1436         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
1437         instead of gimple_build_call_vec.  Delete unnecessary local variable.
1438
1439 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
1440
1441         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
1442         change from yesterday.
1443
1444 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
1445
1446         * c-ada-spec.c: Clean up redundant includes.
1447
1448 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
1449
1450         * gimplify.c: Do not include except.h and optabs.h.
1451         (gimplify_body): Do not initialize RTL profiling.
1452         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
1453         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
1454         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
1455         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
1456         langhooks.h.
1457
1458         * tree-pretty-print.h: Include pretty-print.h.
1459         * gimple-pretty-print.h: Include pretty-print.h.
1460
1461         * tree-pretty-print.c: Do not include diagnostic.h.
1462         * tree-vrp.c: Likewise.
1463         * tree-tailcall.c: Likewise
1464         * tree-scalar-evolution.c: Likewise
1465         * tree-ssa-dse.c: Likewise
1466         * tree-chrec.c: Likewise
1467         * tree-ssa-sccvn.c: Likewise
1468         * tree-ssa-copyrename.c: Likewise
1469         * tree-nomudflap.c: Likewise
1470         * tree-call-cdce.c: Likewise
1471         * tree-stdarg.c: Likewise
1472         * tree-ssa-math-opts.c: Likewise
1473         * tree-nrv.c: Likewise
1474         * tree-ssa-sink.c: Likewise
1475         * tree-browser.c: Likewise
1476         * tree-ssa-loop-ivcanon.c: Likewise
1477         * tree-ssa-loop.c: Likewise
1478         * tree-parloops.c: Likewise
1479         * tree-ssa-address.c: Likewise
1480         * tree-ssa-ifcombine.c: Likewise
1481         * tree-if-conv.c: Likewise
1482         * tree-data-ref.c: Likewise
1483         * tree-affine.c: Likewise
1484         * tree-ssa-phiopt.c: Likewise
1485         * tree-ssa-coalesce.c: Likewise
1486         * tree-ssa-pre.c: Likewise
1487         * tree-ssa-live.c: Likewise
1488         * tree-predcom.c: Likewise
1489         * tree-ssa-forwprop.c: Likewise
1490         * tree-ssa-dce.c: Likewise
1491         * tree-ssa-ter.c: Likewise
1492         * tree-ssa-loop-prefetch.c: Likewise
1493         * tree-optimize.c: Likewise
1494         * tree-ssa-phiprop.c: Likewise
1495         * tree-object-size.c: Likewise
1496         * tree-outof-ssa.c: Likewise
1497         * tree-ssa-structalias.c: Likewise
1498         * tree-switch-conversion.c: Likewise
1499         * tree-ssa-reassoc.c: Likewise
1500         * tree-ssa-operands.c: Likewise
1501         * tree-vectorizer.c: Likewise
1502         * tree-vect-data-refs.c: Likewise
1503         * tree-vect-generic.c: Likewise
1504         * tree-vect-stmts.c: Likewise
1505         * tree-vect-patterns.c: Likewise
1506         * tree-vect-slp.c: Likewise
1507         * tree-vect-loop.c: Likewise
1508         * tree-ssa-loop-ivopts.c: Likewise
1509         * tree-ssa-loop-im.c: Likewise
1510         * tree-ssa-loop-niter.c: Likewise
1511         * tree-ssa-loop-unswitch.c: Likewise
1512         * tree-ssa-loop-manip.c: Likewise
1513         * tree-ssa-loop-ch.c: Likewise
1514         * tree-dump.c: Likewise
1515         * tree-complex.c: Likewise
1516
1517         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
1518         * tree-ssa-uninit.c: Likewise
1519         * tree-ssa-threadupdate.c: Likewise
1520         * tree-ssa-uncprop.c: Likewise
1521         * tree-ssa-ccp.c: Likewise
1522         * tree-ssa-dom.c: Likewise
1523         * tree-ssa-propagate.c: Likewise
1524         * tree-ssa-alias.c: Likewise
1525         * tree-dfa.c: Likewise
1526         * tree-cfgcleanup.c: Likewise
1527         * tree-sra.c: Likewise
1528         * tree-ssa-copy.c: Likewise
1529         * tree-ssa.c: Likewise
1530         * tree-profile.c: Likewise
1531         * tree-cfg.c: Likewise
1532         * tree-ssa-threadedge.c: Likewise
1533         * tree-vect-loop-manip.c: Likewise
1534
1535         * tree-inline.c: Do not include diagnostic.h and expr.h.
1536         Include rtl.h.
1537         (copy_decl_for_dup_finish): Do not use NULL_RTX.
1538
1539         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
1540         * tree-loop-distribution.c: Likewise.
1541
1542 2010-06-01  Jan Hubicka  <jh@suse.cz>
1543
1544         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
1545
1546 2010-06-01  Jan Hubicka  <jh@suse.cz>
1547
1548         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
1549         remove return value.
1550         (split_bbs_on_noreturn_calls) .... here.
1551         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
1552         * tree-flow.h (fixup_noreturn_call): New.
1553
1554 2010-06-01  Jan Hubicka  <jh@suse.cz>
1555
1556         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
1557
1558 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
1559
1560         * tree.h (build_nt_call_list): Delete.
1561         * tree.c (build_nt_call_list): Delete.
1562
1563 2010-06-01  Jan Hubicka  <jh@suse.cz>
1564
1565         * fwprop.c: Make emit-rtl.h include last.
1566         * rtlanal.c: Include emit-rtl.h.
1567         * genautomata.c: Output emit-rtl include into insn-automata.c
1568         * df-scan.c: Include emit-rtl.h.
1569         * haifa-sched.c: Indlude emit-rtl.h.
1570         * mode-switching.c: Indlude emit-rtl.h.
1571         * graph.c: Indlude emit-rtl.h.
1572         * sel-sched.c: Include emit-rtl.h.
1573         * sel-sched-ir.c: Include emit-rtl.h.
1574         * ira-build.c: Include emit-rtl.h.
1575         * emit-rtl.c: (first_insn, last_insn): Remove defines.
1576         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
1577         Move to emit-rtl.h.
1578         (set_new_first_and_last_insn, get_last_insn_anywhere,
1579         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
1580         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
1581         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
1582         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
1583         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
1584         Use accessor functions.
1585         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
1586          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
1587         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
1588         mem_expr_equal_p): Move here from rtl.h.
1589         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
1590         Move here from emit-rtl.c; make inline.
1591         * cfglayout.h: Include emit-rtl.h.
1592         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
1593          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
1594         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
1595         mem_expr_equal_p, get_insns, set_first-insn,
1596         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
1597         * reg-stack.c: Include emit-rtl.h.
1598         * dce.c: Likewise.
1599
1600 2010-06-01  Jan Hubicka  <jh@suse.cz>
1601
1602         * cgraph.h (tree_function_versioning): Update prototype.
1603         (cgraph_function_versioning): Update prototype.
1604         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
1605         bitmap.
1606         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
1607         (cgraph_materialize_clone, save_inline_function_body): Update use of
1608         tree_function_versioning.
1609         * tree-inline.c (copy_bb): Look for previous copied block to link
1610         after; fix debug output.
1611         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
1612         (copy_body): Likewise.
1613         (expand_call_inline): Update use of copy_body.
1614         (tree_function_versioning): Update use of copy body; accept
1615         blocks_to_copy and new_entry.
1616
1617 2010-06-01  Jan Hubicka  <jh@suse.cz>
1618
1619         * gegenrtl.c: Remove unnecesary prototypes.
1620         (gendecl): Remove.
1621         (gendef): Produce static inline.
1622         (gencode): Remove.
1623         (main): Do not decode parameters; generate header only.
1624         * Makefile.in (genrtl.c): Remove.
1625
1626 2010-06-01  Jan Hubicka  <jh@suse.cz>
1627
1628         * tree-switch-conversion.c (build_one_array): Make it readonly.
1629
1630 2010-06-01  Richard Guenther  <rguenther@suse.de>
1631
1632         * optabs.c (init_optabs): Guard all accesses to reinit.
1633         * ipa-pure-const.c (propagate): Fix another typo.
1634         * opts.c (common_handle_option): Split assignment to bool.
1635         * c-opts.c (c_common_handle_option): Likewise.
1636
1637 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
1638             Matthew Gingell  <gingell@adacore.com>
1639
1640         * doc/invoke.texi: Mention -fdump-ada-spec.
1641         * tree-dump.c (dump_files): Add ada-spec.
1642         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
1643         * tree-pass.h (tree_dump_index): Add TDI_ada.
1644         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
1645         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
1646         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
1647         * c-decl.c: Include c-ada-spec.h.
1648         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
1649         functions.
1650         (c_write_global_declarations): Add handling of -fdump-ada-spec.
1651         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
1652         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
1653         * c-ada-spec.h, c-ada-spec.c: New files.
1654
1655 2010-06-01  Richard Guenther  <rguenther@suse.de>
1656
1657         PR lto/43853
1658         * ipa-pure-const.c (get_function_state): Hand back varying state
1659         if we do not have one.
1660         (has_function_state): New function.
1661         (duplicate_node_data): Adjust.
1662         (remove_node_data): Likewise.
1663         (pure_const_write_summary): Likewise.
1664         (propagate): Likewise.  Fix typo.
1665
1666 2010-06-01  Jan Hubicka  <jh@suse.cz>
1667
1668         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
1669         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
1670         (execute_all_ipa_transforms): Do not play with the states.
1671
1672 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1673
1674         * config/arm/t-linux-androideabi: New.
1675         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
1676
1677 2010-06-01  Jan Hubicka  <jh@suse.cz>
1678
1679         * tree-inline.c (estimate_num_insns): For stdarg functions look
1680         into call statement to count cost of argument passing.
1681
1682 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
1683
1684         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
1685         argument for fprintf.
1686         (ix86_output_addr_diff_elt): Likewise.
1687         (x86_function_profiler): Likewise.
1688         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
1689         (LPREFIX): Likewise.
1690         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1691
1692 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
1693
1694         PR target/44338
1695         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
1696         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
1697         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
1698         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
1699         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
1700         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
1701         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
1702         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
1703         TARGET_FUSED_MADD.
1704
1705 2010-05-31  Jan Hubicka  <jh@suse.cz>
1706
1707         * tree.h (tree_range_check_failed): Declare noreturn.
1708
1709 2010-05-31  Jan Hubicka  <jh@suse.cz>
1710
1711         * gimple.c (gimple_call_builtin_p): New function.
1712         * gimple.h (gimple_call_builtin_p): Declare.
1713         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
1714         to exit.
1715         (execute_warn_function_return): BUILT_IN_RETURN is return.
1716         (split_critical_edges): Return edges are not critical.
1717         (is_ctrl_altering_stmt): Builtin_in_return is altering.
1718         (gimple_verify_flow_info): Handle built_in_return.
1719         (execute_warn_function_return): Handle built_in_return.
1720         * ipa-pure-const.c (check_call): Ignore builtin_return.
1721
1722 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
1723
1724         PR middle-end/44337
1725         * expr.c (expand_assignment): Don't store anything for out-of-bounds
1726         array accesses with non-MEM.
1727
1728         PR tree-optimization/44182
1729         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
1730         newly needs to end a bb is followed by debug stmts, instead return
1731         true from the function at the end.
1732         (maybe_move_debug_stmts_to_successors): New function.
1733         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
1734
1735 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
1736
1737         PR target/44161
1738         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
1739
1740 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
1741
1742         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
1743         for nested functions in non-optimized compilation.
1744
1745 2010-05-31  Richard Guenther  <rguenther@suse.de>
1746
1747         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
1748
1749 2010-05-30  Jan Hubicka  <jh@suse.cz>
1750
1751         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
1752
1753 2010-05-30  Richard Guenther  <rguenther@suse.de>
1754
1755         PR lto/42975
1756         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
1757         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
1758         no longer needed.
1759
1760 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
1761
1762         * config/darwin.c (output_objc_section_asm_op): Add comment.
1763         (name_needs_quotes): Add '_' to list of valid comment chars.
1764         (machopic_output_function_base_name): Remove unneeded quotes.
1765         (darwin_encode_section_info): Adjust asm whitespace.
1766         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
1767         (ASM_OUTPUT_LOCAL): Ditto.
1768         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
1769         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
1770         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
1771
1772 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
1773
1774         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
1775         RS6000_OUTPUT_BASENAME unconditionally.
1776         (rs6000_output_function_epilogue): Likewise.
1777
1778 2010-05-30  Jan Hubicka  <jh@suse.cz>
1779
1780         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
1781         nodes.
1782
1783 2010-05-30  Richard Guenther  <rguenther@suse.de>
1784
1785         * tree-cfg.c (verify_gimple_assign_single): Implement
1786         verification for COND_EXPR rhs.
1787
1788 2010-05-30  Jan Hubicka  <jh@suse.cz>
1789
1790         * cgraph.h (cgraph_dump_file): Declare.
1791         * cgraphunit.c (cgraph_dump_file): Export.
1792         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
1793
1794 2010-05-30  Jan Hubicka  <jh@suse.cz>
1795
1796         * dwarf2out.c (reference_to_unused,
1797         premark_types_used_by_global_vars_helper): Avoid creation of new
1798         varpool nodes.
1799
1800 2010-05-30  Jan Hubicka  <jh@suse.cz>
1801
1802         * cgraph.h (cgraph_node_cannot_return,
1803         cgraph_edge_cannot_lead_to_return): New functions.
1804         * cgraph.c (cgraph_node_cannot_return,
1805         cgraph_edge_cannot_lead_to_return): Use them.
1806         * ipa-pure-const.c (pure_const_names): New static var.
1807         (check_call): Handle calls not leading to return.
1808         (pure_const_read_summary): Dump info read.
1809         (propagate): Dump info about propagation process; ignore side effects
1810         of functions not leading to exit; fix handling of pure functions.
1811
1812 2010-05-30  Jan Hubicka  <jh@suse.cz>
1813
1814         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
1815         for tail call epilogues.
1816
1817 2010-05-30  Jan Hubicka  <jh@suse.cz>
1818
1819         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
1820         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
1821         dump files.
1822
1823 2010-05-29  Jan Hubicka  <jh@suse.cz>
1824
1825         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
1826         node; remove references in node we no longer keep in cgrpah but need
1827         body of.
1828
1829 2010-05-29  Jan Hubicka  <jh@suse.cz>
1830
1831         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
1832
1833 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1834
1835         PR target/44165
1836         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
1837
1838 2010-05-29  Jan Hubicka  <jh@suse.cz>
1839
1840         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
1841         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
1842         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
1843         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
1844         debug_names_replaced_by, debug_update_ssa): Likewise.
1845         * sbitmap.c (debug_sbitmap): Likewise.
1846         * genrecog.c (debug_decision, debug_decision_list): Likewise.
1847         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
1848         debug_tree_chain): Likewise.
1849         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
1850         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
1851         * optabs.c  (debug_optab_libfuncs): Likewise.
1852         (verify_loop_closed_ssa): Likewise.
1853         * value-prof.c (verify_histograms): Likewise.
1854         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
1855         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
1856         * cfghooks.c (verify_flow_info): Likewise.
1857         * fold-const.c (debug_fold_checksum): Likewise.
1858         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
1859         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
1860         Likewise.
1861         * omega.c (debug_omega_problem): Likewise.
1862         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
1863         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
1864         * dominance.c (verify_dominators, debug_dominance_info,
1865         debug_dominance_tree): Likewise.
1866         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
1867         * df_regno_debug, df_ref_debug,
1868         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
1869         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
1870         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
1871         * sel-sched.c (debug_state): Likewise.
1872         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
1873         Likewise.
1874         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
1875         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
1876         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
1877         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
1878         Likewise.
1879         * c-pretty-print.c (debug_c_tree): Likewise.
1880         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
1881         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
1882         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
1883         * ebitmap.c (debug_ebitmap): Likewise.
1884         * function.c (debug_find_var_in_block_tree): Likewise.
1885         * print-rtl.c (debug_rtx): Likewise.
1886         (debug_rtx_count): Likewise.
1887         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
1888         * stor-layout.c (debug_rli): Likewise.
1889         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
1890         * tree-data-ref.c (debug_data_references,
1891         debug_data_dependence_relations, debug_data_reference,
1892         debug_data_dependence_relation, debug_rdg_vertex,
1893         debug_rdg_component, debug_rdg): Likewise.
1894         * tree-affine.c (debug_aff): Likewise.
1895         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
1896         Likewise.
1897         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
1898         * emit-rtl.c (verify_rtl_sharing): Likewise.
1899         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
1900         debug_value_expressions): Likewise.
1901         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
1902         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
1903         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
1904         * cfglayout.c (verify_insn_chain): Likewise.
1905         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
1906         debug_clast_stmt, debug_generated_program): Likewise.
1907         * ggc-page.c (debug_print_page_list): Likewise.
1908         * tree-ssa-ter.c (debug_ter): Likewise.
1909         * graphite-dependences.c (debug_pddr): Likewise.
1910         * sched-deps.c (debug_ds): Likewise.
1911         * tree-ssa.c (verify_ssa): Likewise.
1912         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
1913         debug_scattering_functions, debug_iteration_domains, debug_pdr,
1914         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
1915         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
1916         * tree-inline.c (debug_find_tree): Likewise.
1917         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
1918         debug_ppl_powerset_matrix): Likewise.
1919         * var-tracking.c (debug_dv): Likewise.
1920         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
1921         * cfgloop.c (verify_loop_structure): Likewise.
1922         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
1923         * c-common.c (verify_sequence_points): Likewise.
1924         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
1925         debug_candidates, debug_rgn_dependencies): Likewise.
1926         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
1927         * debug_constraint_graph, debug_solution_for_var,
1928         debug_sa_points_to_info): Likewise.
1929         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
1930         Likewie.
1931         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
1932         debug_loops, debug_loop, debug_loop_num): Likewise.
1933         * passes.c (debug_pass): Likewise.
1934         (dump_properties): Likewise; add cfglayout property.
1935         (debug_properties): Likewise.
1936         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
1937         * varpool.c (debug_varpool): Likewise.
1938         * regcprop.c (debug_value_data): Likewise.
1939         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
1940         debug_immediate_uses_for): Likewise.
1941
1942 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1943
1944         PR bootstrap/44315
1945         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
1946         Filter out insn-flags.h.
1947
1948 2010-05-29  Jan Hubicka  <jh@suse.cz>
1949
1950         * cgraph.h (struct varpool_node_set_def,
1951         struct cgraph_node_set_def): Remove unused AUX pointer.
1952         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
1953         VEC_empty macro.
1954
1955 2010-05-29  Jan Hubicka  <jh@suse.cz>
1956
1957         PR middle-end/44324
1958         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
1959
1960 2010-05-29  Richard Guenther  <rguenther@suse.de>
1961
1962         * lto-streamer.c (cached_bp): New global variable.
1963         (bitpack_create): Return the cached bitpack, if available.
1964         (bitpack_delete): Clear and cache the bitpack, if appropriate.
1965         (bp_pack_value): Remove redundant asserts.
1966
1967 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
1968
1969         PR middle-end/44306
1970         * tree-if-conv.c (is_true_predicate): New.
1971         (is_predicated): Use is_true_predicate.
1972         (add_to_predicate_list): Same.  Do not use unshare_expr.
1973         (add_to_dst_predicate_list): Same.
1974
1975 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
1976
1977         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
1978         field on edges.
1979         (predicate_bbs): Same.
1980         (clean_predicate_lists): Same.
1981         (find_phi_replacement_condition): Do not AND the predicate from
1982         edge->aux.
1983
1984 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
1985
1986         PR bootstrap/44315
1987         * Makefile.in (build/gencondmd.o): Add a missing `\'.
1988
1989 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1990
1991         PR target/44261
1992         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
1993         (negdf2): Adjust expander pattern and use negdf2_slow.
1994         (negsf2): Likewise.
1995
1996 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
1997
1998         * basic-block.h (struct control_flow_graph): Move last_label_uid field
1999         up.
2000         * df.h (struct df_base_ref): Move regno field up.
2001         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
2002         * expr.h (struct separate_ops): Move location field up.
2003         * optabs.h (struct optab_d): Move libcall_basename field down.
2004         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
2005         * config/i386/i386.h (struct machine_function): Convert call_abi field
2006         into a bitfield.  Move cfa field to the end of the structure.
2007
2008 2010-05-29  Jan Hubicka  <jh@suse.cz>
2009
2010         * varpool.c (varpool_get_node): Fix lookup.
2011
2012 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2013
2014         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
2015         RTL specific prototypes with #ifdef RTX_CODE.
2016         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
2017         * config/spu/t-spu-elf: Fix dependencies.
2018
2019         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
2020
2021 2010-05-29  Mike Stump  <mikestump@comcast.net>
2022
2023         PR bootstrap/44315
2024         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
2025         TM_H when building to avoid dependency loops.
2026
2027 2010-05-29  Jan Hubicka  <jh@suse.cz>
2028
2029         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
2030         refs and body; not the whole node for masters of materialized
2031         clones.
2032
2033 2010-05-29  Mike Stump  <mikestump@comcast.net>
2034
2035         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
2036
2037 2010-05-29  Jan Hubicka  <jh@suse.cz>
2038
2039         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
2040         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
2041         use of clone_function_name.
2042         * cgraph.h (cgraph_create_virtual_clone,
2043         cgraph_function_versioning): update prototypes.
2044         (clone_function_name): Declare.
2045         * ipa-cp.c (ipcp_insert_stage): Update call of
2046         cgraph_create_virtual_clone.
2047         * omp-low.c (create_omp_child_function_name): Use
2048         cgraph_create_virtual_clone.
2049         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
2050         (cgraph_function_versioning): Take SUFFIX argument; produce new name
2051         and make decl local.
2052
2053 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2054
2055         * vec.h: Include statistics.h
2056         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
2057         with VEC_H.
2058
2059 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2060
2061         * c-lex.c: Do not include c-tree.h.
2062         * c-pretty-print.c: Likewise.
2063         * c-opts.c: Likewise.
2064         * c-gimplify.c: Likewise.
2065         * c-common.c: Likewise.
2066         * c-dump.c: Likewise.  Include c-common.h.
2067
2068 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2069
2070         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
2071         before including diagnostic-core.h.
2072         (c_cpp_error): New prototype moved from c-tree.h.
2073         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
2074         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
2075         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
2076         (c_cpp_error): Prototype moved to c-common.h.
2077         * Makefile.in: Update dependency for C_COMMON_H.
2078
2079 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2080
2081         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
2082         * c-common.c (c_register_addr_space): Remove here.
2083         * c-decl.c (c_register_addr_space): Re-add here.
2084
2085 2010-05-28  Mike Stump  <mikestump@comcast.net>
2086
2087         * config/darwin-c.c: Remove c-tree.h include.
2088
2089 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2090
2091         * gcc.c: Include diagnostic.h.
2092         (error_count): Remove.  All users changed to use errorcount.
2093         (programname): Remove.  All users changed to use progname.
2094         (fancy_abort, internal_error, fatal_error, error, warning, inform,
2095         fnotice): Remove.
2096         (execute): Don't include "Internal error" and bug reporting
2097         information in argument of internal_error call.
2098         (process_command): Don't increment error_count after calling
2099         perror_with_name.
2100         (input_filename): Rename to gcc_input_filename.  All users
2101         changed.
2102         (main): Call diagnostic_initialize.  Register delete_temp_files
2103         with atexit.  Use seen_error to test for errors.
2104         * gcc.h: Include diagnostic-core.h.
2105         (fatal_error, error, warning): Remove.
2106         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
2107         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
2108         (gcc.o): Update dependencies.
2109
2110 2010-05-28  Jeff Law  <law@redhat.com>
2111
2112         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
2113         functions.
2114         * ira.h (ira_bad_reload_regno): Declare
2115         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
2116
2117         * ira-color.c (update_curr_costs): Free updated hard reg costs.
2118         (ira_reassign_conflict_allocnos): Remove bogus asserts.
2119         (allocno_reload_assign): Likewise.
2120
2121 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
2122
2123         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
2124         build1_stat.
2125
2126 2010-05-28  Richard Guenther  <rguenther@suse.de>
2127
2128         PR lto/44312
2129         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
2130         Stream fixed-point constants mode.
2131         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
2132         and TYPE_PRECISION.
2133         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
2134         Stream fixed-point constants mode.
2135         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
2136         and TYPE_PRECISION.
2137
2138 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2139
2140         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
2141         only place it was called from.
2142         (number_of_latch_executions): Do not return chrec_dont_know when the
2143         may_be_zero is a runtime condition: instead, return a COND_EXPR
2144         including the may_be_zero condition.
2145         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
2146         of nb_iterations.
2147         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
2148         COND_EXPRs.
2149
2150 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2151
2152         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
2153         generate COND_EXPRs for degenerate_phi_result.
2154
2155 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
2156
2157         PR middle-end/44293
2158         * tree-if-conv.c (if_convertible_loop_p): Check the
2159         if-convertibility of phi nodes in non predicated BBs.
2160
2161 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2162
2163         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
2164
2165 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2166
2167         PR driver/15303
2168         * gcc.c (inform, warning, inform): New functions.
2169         (fatal_ice): Rename to internal_error; change cmsgid parameter to
2170         gmsgid.  All callers changed.
2171         (notice): Rename to fnotice; add parameter fp.  All callers
2172         changed.
2173         (fatal_error): Rename to fatal_signal.  All users changed.
2174         (fatal): Rename to fatal_error; change cmsgid parameter to
2175         gmsgid.  All callers changed.
2176         (process_command): Use warning instead of error for warnings.
2177         (end_going_arg): Don't use _() around argument of error.
2178         (do_spec_1): Use inform for message from %n specs.  Use warning
2179         instead of error for warnings.
2180         (main): Use inform for comparison messages.  Use warning for
2181         message about unused linker input.
2182         (error): Increment error_count.  Print "error: ".
2183         * gcc.h (fatal): Change to fatal_error.
2184         (warning): Declare.
2185         * config/darwin-driver.c (darwin_default_min_version): Use warning
2186         instead of fprintf for warnings.
2187         * cppspec.c (lang_specific_driver): Use fatal_error instead of
2188         fatal.
2189
2190 2010-05-28  Julian Brown  <julian@codesourcery.com>
2191
2192         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
2193         (*thumb2_addsi3_compare0_scratch): New.
2194         * config/arm/constraints.md (Pv): New.
2195         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
2196         for ARM mode only.
2197         (*addsi3_compare0_scratch): Likewise.
2198
2199 2010-05-28  Jan Hubicka  <jh@suse.cz>
2200
2201         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
2202         check.
2203         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
2204         only on local statics.
2205
2206 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
2207
2208         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
2209
2210 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
2211
2212         PR bootstrap/44314
2213         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
2214         (OPTION_GLIBC): Define.
2215
2216 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
2217
2218         PR debug/41048
2219         * dwarf2out.c (double_int_type_size_in_bits): New function.
2220         (round_up_to_align): Change first argument and return value to
2221         double_int.
2222         (field_byte_offset): Work internally on double_ints.
2223
2224         PR target/43636
2225         * builtins.c (expand_movstr): Use a temporary pseudo instead
2226         of target even when target is not NULL and not const0_rtx, but
2227         fails movstr predicate.
2228         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
2229
2230 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
2231
2232         * final.c (rest_of_clean_state): Use %m in errors instead of
2233         strerror (errno).
2234         * gengtype.c (read_input_list, close_output_files): Use xstrerror
2235         instead of strerror.
2236         * toplev.c (process_options): Use %m in errors instead of strerror
2237         (errno).
2238         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
2239         (errno).
2240
2241 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
2242
2243         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
2244         (ix86_canonical_va_list_type): Make static.  Add declaration.
2245         (ix86_enum_va_list): Make static.  Reindent.
2246         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
2247         (ix86_canonical_va_list_type): Ditto.
2248         (ix86_enum_va_list): Ditto.
2249
2250 2010-05-28  Richard Guenther  <rguenther@suse.de>
2251
2252         * lto-wrapper.c (run_gcc): With -save-temps generate a
2253         user-visible ltrans filename.  Fixup ltrans unit numbering.
2254
2255 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
2256
2257         * c-common.c (c_common_nodes_and_builtins): Replace use
2258         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
2259         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
2260         to ix86_enum_va_list.
2261         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
2262         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
2263         (TARGET_ENUM_VA_LIST_P): Add hook description.
2264         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
2265         * target.h (gcc_target): Add enum_va_list hook.
2266
2267         PR bootstrap/44299
2268         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
2269         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
2270         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
2271
2272 2010-05-28  Alan Modra  <amodra@gmail.com>
2273
2274         PR target/44266
2275         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
2276         emit_library_call machinery to set up __tls_get_addr calls.
2277
2278 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2279
2280         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
2281
2282 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
2283
2284         Revert fix for PR c++/44188
2285         * c-common.c (is_typedef_decl): Revert the moving of  this
2286         definition ...
2287         * tree.c (is_typedef_decl): ... here.
2288         (typdef_variant_p): Revert the moving of this  definition
2289         here from gcc/cp/tree.c.
2290         * c-common.h (is_typedef_decl): Revert the moving of this
2291         declaration ...
2292         * tree.h (is_typedef_decl): ... here.
2293         (typedef_variant_p): Revert the moving of this  declaration here
2294         from gcc/cp/cp-tree.h
2295         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
2296         (gen_tagged_type_die): Revert the splitting out of ...
2297         (gen_type_die_with_usage): ... this function. Revert the anonymous
2298         tagged type handling.
2299         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
2300         typedefs naming anonymous tagged types.
2301
2302 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
2303
2304         * config/rs6000/rs6000-modes.def (PSImode): Delete.
2305
2306 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
2307
2308         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
2309         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
2310         throughout.
2311         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
2312         "xer" to "ca".
2313         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
2314         XER_REGS to CA_REGS throughout.
2315         * config/rs6000/rs6000.h: Same.
2316         (ADDITIONAL_REGISTER_NAMES): Add "xer".
2317         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
2318         that mode_iterator "P" is the size for arithmetic carries as well.
2319         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
2320
2321 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
2322
2323         PR bootstrap/44255
2324         * combine.c (struct rtx_subst_pair): Define unconditionally.
2325         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
2326         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
2327         Call make_compound_operation on pair->to.
2328         (propagate_for_debug): Don't call make_compound_operation here.
2329         Always use simplify_replace_fn_rtx.
2330
2331 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
2332
2333         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
2334         * config/xtensa/xtensa.c (override_options): Check
2335           TARGET_FORCE_NO_PIC and set flag_pic.
2336         * config/xtensa/xtensa.opt: Document -mforce-no-pic
2337
2338 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
2339
2340         PR bootstrap/44299
2341         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
2342         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
2343
2344 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
2345
2346         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
2347         toplev.h.
2348         * diagnostic.c: Don't include toplev.h.
2349         (progname): Define.  Moved from toplev.c.
2350         (seen_error): New function.
2351         * diagnostic.h: Include diagnostic-core.h.
2352         (diagnostic_t, emit_diagnostic): Don't declare here.
2353         * toplev.c (progname): Move to toplev.c.
2354         (emit_debug_global_declarations, compile_file, finalize,
2355         do_compile, toplev_main): Use seen_error.
2356         * toplev.h: Include diagnostic-core.h.
2357         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
2358         internal_error, warning, warning_at, error, error_n, error_at,
2359         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
2360         verbatim, fnotice, progname): Move to diagnostic-core.h.
2361         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
2362         (expand_builtin_expect): Use seen_error.
2363         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
2364         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
2365         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
2366         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
2367         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
2368         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
2369         errorcount for errors.
2370         * c-opts.c (c_common_finish): Use seen_error.
2371         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
2372         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
2373         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
2374         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
2375         (get_coverage_counts): Use seen_error.
2376         * dwarf2out.c (dwarf2out_finish): Use seen_error.
2377         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
2378         gimplify_body): Use seen_error.
2379         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
2380         * ipa-pure-const.c (gate_pure_const): Use seen_error.
2381         * ipa-reference.c (gate_reference): Use seen_error.
2382         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
2383         * lambda-code.c: Include diagnostic-core.h instead of
2384         diagnostic.h.
2385         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
2386         * lto-compress.c: Include diagnostic-core.h instead of
2387         diagnostic.h.
2388         * lto-section-in.c: Include diagnostic-core.h instead of
2389         diagnostic.h.
2390         * lto-streamer-out.c: Include diagnostic-core.h instead of
2391         diagnostic.h.
2392         * lto-streamer.c: Include diagnostic-core.h instead of
2393         diagnostic.h.
2394         (gate_lto_out): Use seen_error.
2395         * matrix-reorg.c: Include diagnostic-core.h instead of
2396         diagnostic.h.
2397         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
2398         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
2399         (gate_expand_omp, lower_omp_1): Use seen_error.
2400         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
2401         (rest_of_decl_compilation, rest_of_type_compilation,
2402         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
2403         * tree-cfg.c (label_to_block_fn): Use seen_error.
2404         * tree-inline.c (optimize_inline_calls): Use seen_error.
2405         * tree-mudflap.c (mudflap_finish_file): Use
2406         seen_error.
2407         * tree-optimize.c (gate_all_optimizations,
2408         gate_all_early_local_passes, gate_all_early_optimizations): Use
2409         seen_error.
2410         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
2411         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
2412         (varpool_remove_unreferenced_decls,
2413         varpool_assemble_pending_decls): Use seen_error.
2414         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
2415         (TOPLEV_H, DIAGNOSTIC_H): Update.
2416         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
2417         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
2418         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
2419         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
2420         coverage.o, lambda-code.o): Update dependencies.
2421
2422 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
2423
2424         PR c++/44188
2425         * c-common.c (is_typedef_decl): Move this definition ...
2426         * tree.c (is_typedef_decl): ... here.
2427         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
2428         * c-common.h (is_typedef_decl): Move this declaration ...
2429         * tree.h (is_typedef_decl): ... here.
2430         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
2431         * dwarf2out.c (is_naming_typedef_decl): New function.
2432         (gen_tagged_type_die): Split out of ...
2433         (gen_type_die_with_usage): ... this function. When an anonymous
2434         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
2435         is emitted for the typedef.
2436         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
2437         anonymous tagged types.
2438
2439 2010-05-27  Jason Merrill  <jason@redhat.com>
2440
2441         * print-tree.c (debug_vec_tree): New fn.
2442         (print_vec_tree): New fn.
2443         * tree.h: Declare them.
2444         * gdbinit.in (pvt): New command.
2445
2446         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
2447
2448         * gdbinit.in (pdd): New command.
2449
2450 2010-05-27  Jan Hubicka  <jh@suse.cz>
2451
2452         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
2453         (update_caller_keys): Return early if there are no callers;
2454         only update fibheap when decresing the key.
2455         (update_callee_keys): Avoid recursion.
2456         (decide_inlining_of_small_functions): When badness does not match;
2457         re-insert into fibheap.
2458
2459 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
2460
2461         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
2462         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
2463         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
2464         (ALL_HOST_OBJS): Now a union of the above two.
2465         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
2466         all files in ALL_HOST_FRONTEND_OBJS.
2467         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
2468
2469         * c-common.c: Pretend to be a backend file by undefining
2470         IN_GCC_FRONTEND (still need rtl.h here).
2471
2472 2010-05-27  Jan Hubicka  <jh@suse.cz>
2473
2474         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
2475         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
2476
2477 2010-05-27  Jan Hubicka  <jh@suse.cz>
2478
2479         * sched-ebb.c: Rename struct deps to struct deps_desc.
2480         * ddg.c: Likewise.
2481         * sel-sched-ir.c: Likewise.
2482         * sched-deps.c: Likewise.
2483         * sched-int.h: Likewise.
2484         * sched-rgn.c: Likewise.
2485
2486 2010-05-27  Jon Beniston <jon@beniston.com>
2487
2488         PR 43726
2489         * config/lm32/lm32.h: Remove definition of
2490         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
2491
2492 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2493
2494         PR lto/44230
2495         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
2496
2497 2010-05-27  Richard Guenther  <rguenther@suse.de>
2498
2499         PR tree-optimization/44284
2500         * tree-vect-stmts.c (vectorizable_assignment): Handle
2501         sign-changing conversions as simple copy.
2502
2503 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2504
2505         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
2506         Bionic C library.
2507         (__gthread_active_p): Check for pthread_create if compiling against
2508         Bionic C library.
2509
2510 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2511
2512         Support compilation for Android platform.  Reimplement -mandroid.
2513
2514         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
2515         (*android*): Set ANDROID_DEFAULT.
2516         (arm*-*-linux*): Include linux-android.h.
2517         (arm*-*-eabi*): Don't include previous -mandroid implementation.
2518         * config/arm/eabi.h: Remove, move Android-specific parts ...
2519         * config/linux-android.h: ... here.  New file.
2520         * config/arm/eabi.opt: Rename to ...
2521         * config/linux-android.opt: ... this.
2522         (mandroid): Allow -mno-android option.  Initialize based on
2523         ANDROID_DEFAULT.
2524         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
2525         Move logic to corresponding LINUX_TARGET_* macros.
2526         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
2527         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
2528         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
2529         Android definitions.
2530         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
2531         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
2532         Document.
2533
2534 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
2535
2536         Add support for Bionic C library
2537
2538         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
2539         macro.
2540         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
2541         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
2542
2543         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
2544         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
2545         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
2546         to support multiple C libraries.  Handle Bionic.
2547         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
2548         (BIONIC_DYNAMIC_LINKER64): Define.
2549         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
2550         Update.
2551         (TARGET_HAS_SINCOS): Enable for Bionic.
2552
2553         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
2554         the last option specified on command line take effect.
2555         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
2556         (mbionic): New.
2557         (mglibc, muclibc): Update.
2558
2559         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
2560         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
2561         DEFAULT_LIBC.
2562
2563         * doc/invoke.texi (-mglibc, -muclibc): Update.
2564         (-mbionic): Document.
2565
2566 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2567
2568         * c-common.h (c_register_addr_space): Add prototype.
2569         (ADDR_SPACE_KEYWORD): Remove.
2570         * c-common.c (c_register_addr_space): New function.
2571         (c_addr_space_name): Reimplement.
2572         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
2573
2574         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
2575         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
2576
2577         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
2578         Remove TARGET_ADDR_SPACE_KEYWORDS.
2579
2580 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
2581
2582         * input.c: New file.
2583         * input.h (main_input_filename): Move declaration to toplev.h.
2584         * toplev.c (input_location, line_table): Move to input.c
2585         * toplev.h (main_input_filename): Move declaration from input.h.
2586         * tree.c (expand_location): Move to input.c.
2587         * Makefile.in (OBJS-common): Add input.o.
2588         (input.o): Add dependencies.
2589
2590 2010-05-27  Richard Guenther  <rguenther@suse.de>
2591
2592         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
2593         for non-existant files.
2594         (fork_execute): Mark args_name file as deleted.
2595
2596 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
2597
2598         PR bootstrp/44287
2599         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
2600         (narrow_signed_type): Likewise.
2601
2602 2010-05-26  Jan Hubicka  <jh@suse.cz>
2603
2604         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
2605         edge only when checking is enabled; check using former_clone_of;
2606         check inline clones too.
2607         (cgraph_materialize_clone): Record former_clone_of pointer.
2608         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
2609         combining redirections; dump args_to_skip bitmap
2610         (cgraph_materialize_all_clones): Do no redirection here.
2611         * ipa-inline.c (inline_transform): Do redirection here.
2612         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
2613         cheking only).
2614
2615 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2616
2617         * config/avr/avr-c.c: Do not include regs.h.
2618         Include cpplib.h for cpp_define and tree.h for c-common.h.
2619         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
2620         * config/avr/t-avr: Fix dependencies for avr-c.o.
2621
2622 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2623
2624         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
2625         string instead of SYMBOL_REF rtx.
2626         * rtl.h (set_stack_check_libfunc): Move prototype from here...
2627         * libfuncs.h: ...to here.  Adjust for explow.c change.
2628
2629 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
2630
2631         * pretty-print.c: Don't include ggc.h.
2632         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
2633         (identifier_to_locale): Use them for allocation.
2634         * pretty-print.h (identifier_to_locale_alloc,
2635         identifier_to_locale_free): Declare.
2636         * toplev.c (alloc_for_identifier_to_locale): New.
2637         (general_init): Set identifier_to_locale_alloc and
2638         identifier_to_locale_free.
2639         * Makefile.in (pretty-print.o): Update dependencies.
2640
2641 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2642
2643         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
2644         pointer types if they have different alignment or mode.
2645
2646 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
2647
2648         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
2649         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
2650         * config/sparc/sparc-protos.h (function_value): Remove declaration.
2651         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
2652         sparc_function_value_regno_p): New functions.
2653         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2654         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2655         (function_value): Rename to...
2656         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
2657         argument to 'outgoing'.
2658         (function_arg_record_value, function_arg_union_value,
2659         function_arg_vector_value): Update comment.
2660
2661 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2662
2663         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
2664         (fde_needed_for_eh_p): New predicate.
2665         (output_call_frame_info): Use it throughout to decide whether FDEs
2666         are needed for EH purpose.
2667         (dwarf2out_begin_prologue): Reorder assignments.
2668
2669 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2670
2671         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
2672         special case loop->header.
2673         (is_predicated): New.
2674         (if_convertible_loop_p): Call it.
2675
2676 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2677
2678         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
2679         iterator in parameter.  Do not generate code during the analysis.
2680         (tree_if_convert_cond_stmt): Removed.
2681         (tree_if_convert_stmt): Removed.
2682         (predicate_bbs): New.
2683         (if_convertible_loop_p): Call predicate_bbs.
2684         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
2685         now contains all the analysis part.
2686
2687 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2688
2689         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
2690         statements in the analysis part.
2691         (tree_if_convert_stmt): Update comment.
2692         (remove_conditions_and_labels): New.
2693         (combine_blocks): Call remove_conditions_and_labels.
2694         (tree_if_conversion): Update comment.
2695
2696 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2697
2698         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
2699         than 2 predecessors or more than 2 successors.
2700
2701 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2702
2703         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
2704         of loops in which the data dependence analysis fails.
2705
2706 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2707
2708         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
2709         CDI_POST_DOMINATORS.
2710         (tree_if_conversion): Same.
2711
2712 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2713
2714         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
2715
2716 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
2717
2718         * tree-if-conv.c: Update copyright years.  Fix comments.
2719         Fix indentation.
2720
2721 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
2722
2723         * builtin-types.def (BT_INT128): New primitive type.
2724         (BT_UINT128): Likewise.
2725         * c-common.c (c_common_r): Add __int128 keyword.
2726         (c_common_type_for_size): Handle __int128.
2727         (c_common_type_for_mode): Likewise.
2728         (c_common_signed_or_unsigned_type): Likewise.
2729         (c_common_nodes_and_builtins): Add builtin type
2730         if target supports 128-bit integer scalar.
2731         * c-common.h (enum rid): Add RID_INT128.
2732         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
2733         if target supports 128-bit integer scalar.
2734         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
2735         (finish_declspecs): Likewise.
2736         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
2737         (c_token_starts_declspecs): Likewise.
2738         (c_parser_declspecs): Likewise.
2739         (c_parser_attributes): Likewise.
2740         (c_parser_objc_selector): Likewise.
2741         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
2742         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
2743         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
2744         * tree.c (make_or_reuse_type): Likewise.
2745         (make_unsigned_type): Likewise.
2746         (build_common_tree_nodes_2): Likewise.
2747         * tree.h (enum integer_type_kind): Add itk_int128 and
2748         itk_unsigned_int128.
2749         (int128_integer_type_node): New define.
2750         (int128_unsigned_type_node): New define.
2751         * doc/extend.texi: Add documentation about __int128 type.
2752
2753 2010-05-26  Richard Guenther  <rguenther@suse.de>
2754
2755         * tree-ssa-sccvn.c (copy_nary): Adjust.
2756         (copy_phis): Rename to ...
2757         (copy_phi): ... this.  Adjust.
2758         (copy_references): Rename to ...
2759         (copy_reference): ... this.  Adjust.
2760         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
2761         result into the valid table.
2762
2763 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2764
2765         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
2766         insn-config.h, insn-codes.h, recog.h, and optabs.h.
2767
2768 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2769
2770         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
2771
2772 2010-05-26  Richard Guenther  <rguenther@suse.de>
2773
2774         * opts.c (common_handle_option): Handle OPT_Ofast.
2775
2776 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
2777
2778         * diagnostic.c: Don't include opts.h.
2779         (permissive_error_option): Define.
2780         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
2781         for classify_diagnostic.  Don't use memset for
2782         classify_diagnostic.  Initialize new and recently added fields.
2783         (diagnostic_classify_diagnostic): Use context->n_opts instead of
2784         N_OPTS.
2785         (diagnostic_report_diagnostic): Pass context parameter to
2786         diagnostic_report_warnings_p.  Use option_enabled and option_name
2787         hooks from context.
2788         (emit_diagnostic): Use permissive_error_option.
2789         (permerror): Likewise.
2790         * diagnostic.h: Don't include options.h.
2791         (struct diagnostic_context): Add n_opts, opt_permissive,
2792         inhibit_warnings, warn_system_headers, option_enabled and
2793         option_name fields.  Change classify_diagnostic to a pointer.
2794         * opts-diagnostic.h: New file.
2795         * opts.c: Include opts-diagnostic.h.
2796         (common_handle_option): Set global_dc fields for -Wfatal-errors,
2797         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
2798         (option_name): New function.
2799         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
2800         (c_common_handle_option): Set global_dc->permissive for
2801         -fpermissive.
2802         * c-common.c (c_cpp_error): Save and restore
2803         global_dc->warn_system_headers, not variable warn_system_headers.
2804         * toplev.c: Include opts-diagnostic.h.
2805         (general_init): Update call to diagnostic_initialize.  Set
2806         global_dc->show_column, global_dc->option_enabled and
2807         global_dc->option_name.
2808         (process_options): Don't set global_dc fields here.
2809         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
2810         (diagnostic.o, opts.o, toplev.o): Update dependencies.
2811
2812 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
2813
2814         * config/picochip/picochip.md (movsi): Split a movsi from a
2815         const after reload.
2816
2817 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2818
2819         * ggc-zone.c: Update copyright year.
2820         (poison_region): Mark memory for Valgrind as undefined before
2821         memset () call and inaccessible afterwards.
2822         (ggc_pch_total_size): Change type of i to int.
2823
2824 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2825
2826         * ggc-common.c (ggc_free_overhead): Allow empty slot.
2827
2828 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
2829
2830         * ggc-common.c: Update copyright year.
2831         (ggc_rlimit_bound): Remove prototype.  Compile only if
2832         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
2833         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
2834         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
2835         (ggc_min_heapsize_heuristic): Likewise.
2836
2837 2010-05-26  Richard Guenther  <rguenther@suse.de>
2838
2839         PR rtl-optimization/44164
2840         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
2841         no-common access-path disambiguation.
2842         (indirect_ref_may_alias_decl_p): Adjust.
2843         (indirect_refs_may_alias_p): Likewise.
2844         (refs_may_alias_p_1): Likewise.
2845
2846 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2847
2848         * c-typeck.c: Do not include expr.h.
2849
2850 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2851
2852         * rtl.h (decl_default_tls_model): Move prototype from here...
2853         * output.h: ...to here.
2854         * c-decl.c: Do not include rtl.h.
2855         * c-pragma.c: Likewise.
2856         * c-parser.c: Likewise.
2857         * c-gimplify.c: Likewise.  And also not hard-reg-set.
2858         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
2859         FIXME note for it.  Add a FIXME note for expr.h.
2860         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
2861         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
2862         defined.
2863
2864 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
2865
2866         PR target/44199
2867         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
2868         or total_size is larger than red zone size for non-V4 ABI, emit a
2869         stack_tie resp. frame_tie insn before stack pointer restore.
2870         * config/rs6000/rs6000.md (frame_tie): New insn.
2871
2872 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2873
2874         * function.h (struct function): Add can_throw_non_call_exceptions bit.
2875         * lto-streamer-in.c (input_function): Stream it in.
2876         * lto-streamer-out.c (output_function): Stream it out.
2877         * function.c (allocate_struct_function): Set it.
2878         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
2879         for flag_non_call_exceptions.
2880         * cfgbuild.c (control_flow_insn_p): Likewise.
2881         (make_edges): Likewise.
2882         * cfgexpand.c (expand_stack_alignment): Likewise.
2883         * combine.c (distribute_notes): Likewise.
2884         * cse.c (cse_extended_basic_block): Likewise.
2885         * except.c (insn_could_throw_p): Likewise.
2886         * gcse.c (simple_mem): Likewise.
2887         * ipa-pure-const.c (check_call): Likewise.
2888         (check_stmt ): Likewise.
2889         * lower-subreg.c (lower-subreg.c): Likewise.
2890         * optabs.c (emit_libcall_block): Likewise.
2891         (prepare_cmp_insn): Likewise.
2892         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
2893         * postreload.c (rest_of_handle_postreload): Likewise.
2894         * reload1.c (reload_as_needed): Likewise.
2895         (emit_input_reload_insns): Likewise.
2896         (emit_output_reload_insns): Likewise.
2897         (fixup_abnormal_edges): Likewise.
2898         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
2899         * store-motion.c (find_moveable_store): Likewise.
2900         * tree-eh.c (stmt_could_throw_p): Likewise.
2901         (tree_could_throw_p): Likewise.
2902         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2903         * config/arm/arm.c (arm_expand_prologue): Likewise.
2904         (thumb1_expand_prologue): Likewise.
2905         * config/rx/rx.md (cbranchsf4): Likewise.
2906         (cmpsf): Likewise.
2907         * config/s390/s390.c (s390_emit_prologue): Likewise.
2908         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
2909         (inline_forbidden_into_p): New predicate.
2910         (expand_call_inline): Use it to forbid inlining.
2911         (tree_can_inline_p): Likewise.
2912
2913 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2914
2915         * config/i386/i386-c.c: Do not include rtl.h.
2916         * config/i386/t-i386: Update dependencies.
2917
2918 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2919
2920         * attribs.c: Do not include rtl.h.
2921         * Makefile.in: Update dependencies.
2922
2923 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
2924
2925         * double-int.h (double_int_and): New.
2926         * combine.c (try_combine): Clean up, use double_int_* and
2927         immed_double_int_const functions.
2928
2929 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2930
2931         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
2932         stderr to /dev/null instead of grep -q.
2933         * configure: Regenerate.
2934
2935 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
2936
2937         * Makefile.in (EXCEPT_H): Fix typo.
2938
2939 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
2940
2941         * ira-build.c (update_conflict_hard_reg_costs): New.
2942         (ira_build): Call update_conflict_hard_reg_costs.
2943
2944 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
2945
2946         PR debug/41371
2947         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
2948         ENABLE_CHECKING.
2949         (intersect_loc_chains): Walk the s2var's loc_chain together
2950         with s1node chain as long as the locations are equal, don't
2951         call find_loc_in_1pdv in that case.
2952
2953         PR debug/42801
2954         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
2955         (copy_bind_expr): ... instead of here.
2956         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
2957         if the block hasn't been remapped.
2958         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
2959         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
2960
2961 2010-05-25  Richard Guenther  <rguenther@suse.de>
2962
2963         PR middle-end/44069
2964         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
2965         out-of-bounds array accesses.
2966
2967 2010-05-25  Richard Guenther  <rguenther@suse.de>
2968
2969         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
2970         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
2971         (run_gcc): Re-organize to make cleanup easier.
2972
2973 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2974
2975         * config/s390/s390.c (optimization_options): Fix and move the
2976         flag_prefetch_loop_arrays override ...
2977         (override_options): ... here.
2978
2979 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
2980
2981         * diagnostic.c: Don't include plugin.h.
2982         (diagnostic_report_diagnostic): Don't handle plugins specially
2983         here.  Pass context to internal_error callback.
2984         * diagnostic.h (struct diagnostic_context): Add context parameter
2985         to internal_error callback.
2986         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
2987         * plugin.h (struct diagnostic_context): Declare.
2988         (warn_if_plugins, plugins_internal_error_function): Declare.
2989         * toplev.c (general_init): Set global_dc->internal_error.
2990         * Makefile.in (diagnostic.o): Update dependencies.
2991
2992 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
2993
2994         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
2995         * config/rs6000/t-darwin64: New.
2996         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
2997         build crt2.
2998
2999 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
3000
3001         PR 44203
3002         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
3003         match the original (and intended) behaviour before r159557.  This
3004         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
3005         in two ways.
3006
3007 2010-05-25  Richard Guenther  <rguenther@suse.de>
3008
3009         * doc/invoke.texi: Document -Ofast.
3010         * target.h (struct gcc_target): Add handle_ofast.
3011         * target-def.h (TARGET_HANDLE_OFAST): Add.
3012         (TARGET_INITIALIZER): Adjust.
3013         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
3014         * common.opt (Ofast): Add.
3015
3016 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
3017
3018         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
3019         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
3020
3021 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
3022
3023         PR target/43610
3024         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
3025         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
3026         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
3027         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
3028
3029 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
3030
3031         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
3032         DW_OP_minus with negated offset instead of DW_OP_plus.
3033         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
3034
3035 2010-05-25  Wei Guozhi  <carrot@google.com>
3036
3037         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
3038         tst instruction and a new alternative.
3039         * config/arm/constraints.md (Pu): New constraint.
3040
3041 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
3042
3043         * function.c (assign_stack_local_1): Initialize variable
3044         to avoid warning when bootstrapping at -O3.
3045
3046 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
3047
3048         * configure.ac (all_lang_makefiles): Remove everything related to it.
3049         * configure: Regenerate.
3050         * Makefile.in: Fix reference to ada Make-lang.in.
3051         Remove support for LANG_MAKEFILES.
3052
3053 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
3054             Sandra Loosemore  <sandra@codesourcery.com>
3055
3056         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
3057         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
3058         description.  Add arm_neon_fp16_ok.
3059         (Add Options): Add arm_neon and arm_neon_fp16.
3060
3061 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
3062
3063         * diagnostic.c: Don't include flags.h.
3064         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
3065         context parameters.  Check flags in the context passed as a parameter.
3066         (diagnostic_build_prefix): Add context parameter.  Check
3067         show_column flag in context.
3068         (diagnostic_action_after_output): Check fatal_errors flag in context.
3069         (diagnostic_report_current_module): Check show_column flag in context.
3070         (default_diagnostic_starter): Update call to
3071         diagnostic_build_prefix.
3072         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
3073         (emit_diagnostic): Pass context to permissive_error_kind.
3074         (permerror): Pass context to permissive_error_kind.
3075         * diagnostic.h (struct diagnostic_context): Add show_column,
3076         pedantic_errors, permissive and fatal_errors fields.
3077         (diagnostic_build_prefix): Update prototype.
3078         * langhooks.c
3079         * toplev.c (process_options): Set flags in global_dc from
3080         flag_show_column, flag_pedantic_errors, flag_permissive,
3081         flag_fatal_errors.
3082         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
3083         to diagnostic_build_prefix.
3084         * Makefile.in (diagnostic.o): Update dependencies.
3085
3086 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
3087
3088         * config/i386/ia32intrin.h (__crc32q): Define only if
3089         __SSE4_2__ is defined.
3090
3091 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
3092
3093         PR target/44132
3094         PR middle-end/43602
3095         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
3096         DECL_VISIBILITY_SPECIFIED.
3097         (emutls_decl): Set DECL_PRESERVE_P and copy
3098         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
3099         (emutls_finalize_control_var): New callback.
3100         (emutls_finish): Finalize emutls control variables.
3101         * toplev.c (compile_file): Move the call to emutls_finish ()
3102         before varpool_assemble_pending_decls ().
3103
3104 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
3105
3106         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
3107         added to the preprocessor condition.
3108
3109 2010-05-24  Paul Brook  <paul@codesourcery.com>
3110
3111         * gengtype-lex.l: Add HARD_REG_SET.
3112         * expr.c (expand_expr_real_1): Record writes to hard registers.
3113         * function.c (rtl_data): Add asm_clobbers.
3114         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
3115         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
3116         Use crtl->asm_clobbers.
3117
3118 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3119
3120         * doc/makefile.texi (Makefile): Mention stages 'profile'
3121         and 'feedback' for profiledbootstrap.
3122
3123 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
3124
3125         PR target/44245
3126         * config/i386/i386.c (def_builtin): Properly check
3127         OPTION_MASK_ISA_64BIT.
3128
3129 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
3130
3131         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
3132         typedefs with different but compatible types.  Allow duplicate
3133         typedefs with the same type except for pedantic non-C1X, but give
3134         warning for variably modified types.
3135         * c-typeck.c (tagged_types_tu_compatible_p,
3136         function_types_compatible_p, type_lists_compatible_p,
3137         comptypes_internal): Add parameter different_types_p; set
3138         *different_types_p for different but compatible types.  All
3139         callers changed.
3140         (comptypes_check_different_types): New.
3141         * c-tree.h (comptypes_check_different_types): Declare.
3142
3143 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
3144
3145         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
3146         * jump.c: Include basic-block.h.
3147         * profile.c: Likewise.
3148         * tree-profile.c: Likewise.
3149         * coverage.c: Likewise.
3150         * basic-block.h (optimize_function_for_size_p): Move to function.h.
3151         (optimize_function_for_speed_p): Likewise.
3152         * function.h (optimize_function_for_size_p,
3153         optimize_function_for_speed_p): Moved here from basic-block.h.
3154         * Makefile.in: Update dependencies.
3155
3156 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3157
3158         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
3159         before calling make; allow override through $MAKE.
3160         * doc/invoke.texi (Optimize Options): Document override.
3161
3162 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
3163
3164         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
3165         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3166         (rs6000_mode_dependent_address_ptr): Make static.
3167         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3168         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
3169         Remove.
3170
3171 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
3172
3173         PR target/43869
3174         * config/i386/i386.c: Make sure that the correct regparm is passed.
3175
3176 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
3177
3178         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
3179         * sbitmap.c: ...to here to internalize sbitmap element access.
3180         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
3181         Explain why basic-block.h is included.
3182         * function.h: Include tm.h for CUMULATIVE_ARGS.
3183         * Makefile.in: Update dependencies.
3184
3185 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
3186
3187         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
3188         New core types.
3189         * sbitmap.h (struct sbitmap_def): Do not typedef here.
3190         * sbitmap.c: Include sbitmap.h.
3191         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
3192         hard-reg-set.h.  Split everything related to regsets out from here...
3193         * regset.h: ...to here.  New file.
3194         * df.h: Include regset.h and sbitmap.h.
3195         * tree-flow.h: Likewise.
3196         * cfgloop.h: Likewise.
3197         * except.h: Do not include sbitmap.h.  Include hashtab.h.
3198         * cgraph.h: Include vec.h and function.h.
3199         * reload.h (struct insn_chain): Change types of live_throughout
3200         and dead_or_set from regset_head to bitmap_head.
3201         (compute_use_by_pseudos): Be defined also if regset.h is not included.
3202         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
3203         spilled_regs from regset_head to bitmap_head to avoid dependency
3204         in regset.h.
3205         * sel-sched-ir.h: Include regset.h.
3206         * reload.c: Include df.h before reload.h.
3207         * caller-save.c: Likewise.
3208         * reload1.c: Likewise.
3209         * ira.c: Likewise.
3210         (mark_elimination): Update type of r to bitmap, consistent with
3211         DF_LR_IN.
3212         * dominance.c: Include bitmap.h.
3213         * modulo-sched.c: Include df.h.
3214         * cfganal.c: Include bitmap.h and sbitmap.h.
3215         * cfgbuild.c: Include sbitmap.h.
3216         * lcm.c: Include sbitmap.h.
3217         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
3218         * domwalk.c: Include sbitmap.h, exclude ggc.h.
3219         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
3220         * cselib.c: Include bitmap.h.
3221         * tree-optimize.c: Include regset.h.
3222         * stmt.c: Include bitmap.h.
3223         * Makefile.in: Update dependencies.
3224
3225 2010-05-22  Jan Hubicka  <jh@suse.cz>
3226
3227         * cgraph.h (struct varpool_node): Add same_comdat_group.
3228         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
3229         pointer.
3230         (output_varpool): Update call of lto_output_varpool_node.
3231         (input_varpool): Read same_comdat_group pointer.
3232         (input_varpool_1): Fixup same_comdat_group pointer.
3233         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
3234         group is needed, all are.
3235         * varpool.c (varpool_remove_node): Remove node from same comdat group
3236         linklist too.
3237         (varpool_analyze_pending_decls): Walk same comdat groups.
3238
3239 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
3240
3241         * rtl.h (union rtunion_def): Remove rt_bit member.
3242         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
3243         * print-rtl (print_rtx): Do not print the member.
3244         * gengtype.c (adjust_field_rtx_def): Do not handle it.
3245         * gengenrtl.c (type_from_format): Likewise.
3246         (accessor_from_format): Likewise.
3247
3248 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
3249
3250         * dbgcnt.c: Include toplev.h instead of errors.h.
3251         * ira-emit.c: Don't include errors.h.
3252         * ira.c: Include toplev.h instead of errors.h.
3253         * lto-compress.c: Include toplev.h instead of errors.h.
3254         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
3255         ira.o, dbgcnt.o): Update dependencies.
3256
3257 2010-05-22  Richard Guenther  <rguenther@suse.de>
3258
3259         * gimple.c (gimple_types_compatible_p): Check type qualifications
3260         before merging pointer to complete and pointer to incomplete type.
3261         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
3262         we use our own resolution algorithm.  The gold linker plugin
3263         doesn't do the job we want it to do here.
3264
3265 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
3266
3267         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
3268         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
3269         (sparc_mode_dependent_address_p): New function.
3270
3271 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3272
3273         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
3274
3275         * timevar.c: Do not include any core headers.
3276         (timevar_print): De-i18n-ize.
3277         (print_time): Likewise.
3278         * timevar.h (timevar_push, timevar_pop): Make inline functions.
3279
3280 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
3281
3282         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
3283         langhooks-def.h.
3284         (diagnostic_initialize): Initialize x_data not last_function.
3285         (diagnostic_report_current_function): Move to tree-diagnostic.c.
3286         (default_diagnostic_starter): Call
3287         diagnostic_report_current_module not
3288         diagnostic_report_current_function.
3289         (diagnostic_report_diagnostic): Initialize x_data not
3290         abstract_origin.
3291         (verbatim): Likewise.
3292         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
3293         x_data.
3294         (struct diagnostic_context): Change last_function to x_data.
3295         (diagnostic_auxiliary_data): Replace with
3296         diagnostic_context_auxiliary_data and
3297         diagnostic_info_auxiliary_data.
3298         (diagnostic_last_function_changed, diagnostic_set_last_function,
3299         diagnostic_report_current_function): Move to tree-diagnostic.h.
3300         (print_declaration, dump_generic_node, print_generic_stmt,
3301         print_generic_stmt_indented, print_generic_expr,
3302         print_generic_decl, debug_c_tree, dump_omp_clauses,
3303         print_call_name, debug_generic_expr, debug_generic_stmt,
3304         debug_tree_chain, default_tree_printer): Move to
3305         tree-pretty-print.h.
3306         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
3307         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
3308         gimple-pretty-print.h.
3309         * pretty-print.c: Don't include tree.h
3310         (pp_base_format): Don't handle %K here.
3311         (pp_base_tree_identifier): Move to tree-pretty-print.c.
3312         * pretty-print.h (text_info): Change abstract_origin to x_data.
3313         (pp_tree_identifier, pp_unsupported_tree,
3314         pp_base_tree_identifier): Move to tree-pretty-print.h.
3315         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
3316         tree-pretty-print.h: New files.
3317         * tree-pretty-print.c: Include tree-pretty-print.h.
3318         (percent_K_format): New.  Moved from pretty-print.c.
3319         (pp_base_tree_identifier): Move from pretty-print.c.
3320         * c-objc-common.c: Include tree-pretty-print.h.
3321         (c_tree_printer): Handle %K here.
3322         * langhooks.c: Include tree-diagnostic.h.
3323         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
3324         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
3325         (default_tree_printer): Handle %K using percent_K_format.
3326         (general_init): Use default_tree_diagnostic_starter.
3327         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
3328         (free_lang_data): Use default_tree_diagnostic_starter.
3329         * c-pretty-print.c: Include tree-pretty-print.h.
3330         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3331         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3332         * dwarf2out.c: Include tree-pretty-print.h.
3333         * except.c: Include tree-pretty-print.h.
3334         * gimple-pretty-print.c: Include tree-pretty-print.h and
3335         gimple-pretty-print.h.
3336         * gimplify.c: Include tree-pretty-print.h.
3337         * graphite-poly.c: Include tree-pretty-print.h and
3338         gimple-pretty-print.h.
3339         * ipa-cp.c: Include tree-pretty-print.h.
3340         * ipa-inline.c: Include gimple-pretty-print.h.
3341         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3342         * ipa-pure-const.c: Include gimple-pretty-print.h.
3343         * ipa-struct-reorg.c: Include tree-pretty-print.h and
3344         gimple-pretty-print.h.
3345         * ipa-type-escape.c: Include tree-pretty-print.h.
3346         * print-rtl.c: Include tree-pretty-print.h.
3347         * print-tree.c: Include gimple-pretty-print.h.
3348         * sese.c: Include tree-pretty-print.h.
3349         * tree-affine.c: Include tree-pretty-print.h.
3350         * tree-browser.c: Include tree-pretty-print.h.
3351         * tree-call-cdce.c: Include gimple-pretty-print.h.
3352         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
3353         * tree-chrec.c: Include tree-pretty-print.h.
3354         * tree-data-ref.c: Include tree-pretty-print.h and
3355         gimple-pretty-print.h.
3356         * tree-dfa.c: Include tree-pretty-print.h.
3357         * tree-if-conv.c: Include tree-pretty-print.h and
3358         gimple-pretty-print.h.
3359         * tree-inline.c: Include tree-pretty-print.h.
3360         * tree-into-ssa.c: Include tree-pretty-print.h and
3361         gimple-pretty-print.h.
3362         * tree-nrv.c: Include tree-pretty-print.h.
3363         * tree-object-size.c: Include tree-pretty-print.h and
3364         gimple-pretty-print.h.
3365         * tree-outof-ssa.c: Include tree-pretty-print.h and
3366         gimple-pretty-print.h.
3367         * tree-parloops.c: Include tree-pretty-print.h and
3368         gimple-pretty-print.h.
3369         * tree-predcom.c: Include tree-pretty-print.h and
3370         gimple-pretty-print.h.
3371         * tree-scalar-evolution.c: Include tree-pretty-print.h and
3372         gimple-pretty-print.h.
3373         * tree-sra.c: Include tree-pretty-print.h.
3374         * tree-ssa-address.c: Include tree-pretty-print.h.
3375         * tree-ssa-alias.c: Include tree-pretty-print.h.
3376         * tree-ssa-ccp.c: Include tree-pretty-print.h and
3377         gimple-pretty-print.h.
3378         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
3379         * tree-ssa-copy.c: Include tree-pretty-print.h and
3380         gimple-pretty-print.h.
3381         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
3382         * tree-ssa-dce.c: Include tree-pretty-print.h and
3383         gimple-pretty-print.h.
3384         * tree-ssa-dom.c: Include tree-pretty-print.h and
3385         gimple-pretty-print.h.
3386         * tree-ssa-dse.c: Include gimple-pretty-print.h.
3387         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
3388         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
3389         * tree-ssa-live.c: Include tree-pretty-print.h and
3390         gimple-pretty-print.h.
3391         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
3392         gimple-pretty-print.h.
3393         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
3394         gimple-pretty-print.h.
3395         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
3396         gimple-pretty-print.h.
3397         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
3398         gimple-pretty-print.h.
3399         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
3400         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
3401         * tree-ssa-operands.c: Include tree-pretty-print.h and
3402         gimple-pretty-print.h.
3403         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
3404         gimple-pretty-print.h.
3405         * tree-ssa-pre.c: Include tree-pretty-print.h and
3406         gimple-pretty-print.h.
3407         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
3408         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
3409         gimple-pretty-print.h.
3410         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
3411         gimple-pretty-print.h.
3412         * tree-ssa-sink.c: Include gimple-pretty-print.h.
3413         * tree-ssa-ter.c: Include tree-pretty-print.h and
3414         gimple-pretty-print.h.
3415         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
3416         * tree-ssa.c: Include tree-pretty-print.h and
3417         gimple-pretty-print.h.
3418         * tree-stdarg.c: Include gimple-pretty-print.h.
3419         * tree-switch-conversion.c: Include gimple-pretty-print.h.
3420         * tree-tailcall.c: Include tree-pretty-print.h and
3421         gimple-pretty-print.h.
3422         * tree-vect-data-refs.c: Include tree-pretty-print.h and
3423         gimple-pretty-print.h.
3424         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
3425         gimple-pretty-print.h.
3426         * tree-vect-loop.c: Include tree-pretty-print.h and
3427         gimple-pretty-print.h.
3428         * tree-vect-patterns.c: Include gimple-pretty-print.h.
3429         * tree-vect-slp.c: Include tree-pretty-print.h and
3430         gimple-pretty-print.h.
3431         * tree-vect-stmts.c: Include tree-pretty-print.h and
3432         gimple-pretty-print.h.
3433         * tree-vectorizer.c: Include tree-pretty-print.h.
3434         * tree-vrp.c: Include tree-pretty-print.h and
3435         gimple-pretty-print.h.
3436         * value-prof.c: Include tree-pretty-print.h and
3437         gimple-pretty-print.h.
3438         * var-tracking.c: Include tree-pretty-print.h.
3439         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
3440         (tree-diagnostic.o): New dependencies.
3441         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
3442         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
3443         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
3444         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
3445         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
3446         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
3447         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3448         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
3449         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
3450         tree-ssa-address.o, tree-ssa-loop-niter.o,
3451         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
3452         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
3453         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
3454         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
3455         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
3456         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
3457         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
3458         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
3459         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
3460         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
3461         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
3462         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
3463         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
3464         tree-switch-conversion.o, var-tracking.o, value-prof.o,
3465         cfgexpand.o, pretty-print.o): Update dependencies.
3466
3467 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
3468
3469         * tree-ssa-structalias.c: Remove tm_p.h from include.
3470
3471 2010-05-21  Jeff Law  <law@redhat.com>
3472
3473         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
3474
3475 2010-05-21  Jason Merrill  <jason@redhat.com>
3476
3477         * tree-eh.c (cleanup_is_dead_in): New.
3478         (lower_try_finally): Don't generate a dead cleanup region.
3479         (lower_cleanup): Likewise.
3480
3481 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
3482
3483         PR debug/44223
3484         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
3485         unchain each use from the cyclic next_regno_use chain first.
3486
3487 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3488
3489         * real: Do not include gmp.h, mpfr.h, and mpc.h.
3490         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
3491         (real_value_negate, real_value_abs): New prototypes.
3492         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
3493         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
3494         new include file for interface between MPFR and REAL_VALUE_TYPE.
3495         * real.c: Include realmpfr.h.
3496         (real_arithmetic2): Remove legacy function.
3497         (real_value_negate): New.
3498         (real_value_abs): New.
3499         (mfpr_from_real, real_from_mpfr): Move from here...
3500         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
3501         * builtins.c: Include realmpfr.h.
3502         * fold-const.c: Include realmpfr.h.
3503         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
3504         (fold_negate_const): Likewise.
3505         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
3506         * toplev.c: Include realmpfr.h.
3507         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
3508         and real_value_negate.
3509         * fixed-value.c (check_real_for_fixed_mode): Likewise.
3510         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
3511         (vfp3_const_double_index): Likewise.
3512         (arm_print_operand): Likewise.
3513         * Makefile.in: Update dependencies.
3514
3515 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3516
3517         * config/s390/s390.c (override_options): Increase the default
3518         of max-completely-peel-times.
3519
3520 2010-05-21  Julian Brown  <julian@codesourcery.com>
3521             Mark Mitchell  <mark@codesourcery.com>
3522
3523         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
3524         sibling calls for Thumb-1.
3525         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
3526         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
3527         Thumb-2.
3528         (*call_insn, *call_value_insn): Don't use for Thumb-2.
3529         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
3530         for Thumb-2.
3531         (return): New expander.
3532         (*arm_return): New name for ARM return insn.
3533         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
3534
3535 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
3536
3537         * config.gcc (sparc64-*-rtems*): New target.
3538
3539 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
3540
3541         * tree.c (build_function_decl_skip_args): Fix grammar.
3542         (build_function_type_list_1): Fix typos, adjust formatting.
3543
3544 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
3545
3546         * tree.h: Include real.h and fixed-value.h as basic datatypes.
3547         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
3548         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
3549         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
3550         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
3551         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
3552         tree-pretty-print.c, tree-loop-distribution.c,
3553         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
3554         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
3555         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
3556         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
3557         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
3558         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
3559         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
3560         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
3561         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
3562         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
3563         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
3564         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
3565         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
3566         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
3567         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
3568         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
3569         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
3570         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
3571         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
3572         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
3573         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
3574         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
3575         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
3576         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
3577         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
3578         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
3579         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
3580         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
3581         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
3582         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
3583         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
3584         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
3585         config/score/score7.c, config/score/score.c, config/arm/arm.c,
3586         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
3587         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
3588         config/bfin/bfin.c: Clean up redundant includes.
3589         * Makefile.in: Update accordingly.
3590
3591 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
3592
3593         PR middle-end/44204
3594         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
3595         statement has no arguments.
3596
3597 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
3598
3599         PR/44139
3600         * varasm.c (emutls_decl): Merge attributes to new decl.
3601
3602 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
3603
3604         PR middle-end/44101
3605         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
3606         around the uniquized constructor if its type requires a conversion.
3607
3608 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
3609
3610         PR debug/44205
3611         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
3612         at -O0 goto_locus of any of the incoming edges differs from
3613         goto_locus of outgoing edge, or gimple_location of any of the
3614         labels differs.
3615
3616 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
3617
3618         * ira.c (ira_non_ordered_class_hard_regs): Define.
3619         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
3620         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
3621         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
3622         cost of unaligned hard regs when allocating multi-reg pseudos.
3623
3624 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
3625
3626         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
3627         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
3628         for TARGET_NO_FLOAT.
3629         * config/mips/mips.c (mips_file_start): Expand conditional expression
3630         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
3631         (mips_override_options): Move -mno-float override -msoft-float and
3632         -mhard-float.
3633         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
3634         Condition(TARGET_SUPPORTS_NO_FLOAT).
3635         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
3636         __mips_no_float here.
3637         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
3638         (TARGET_SUPPORTS_NO_FLOAT): Define.
3639         * config/mips/sdemtk.opt: Delete.
3640
3641 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
3642
3643         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
3644
3645 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
3646
3647         PR target/43733
3648         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
3649         * configure: Regenerate.
3650         * config.in: Regenerate.
3651         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
3652         instead of sahf only for 64bit targets.
3653
3654 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
3655
3656         PR debug/44178
3657         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
3658         setup_ref_regs for DEBUG_INSNs.
3659
3660 2010-05-20  Jan Hubicka  <jh@suse.cz>
3661
3662         PR middle-end/44197
3663         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
3664
3665 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
3666
3667         PR bootstrap/43870
3668         * df-scan.c (df_ref_compare): Stabilize sort.
3669
3670 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
3671
3672         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
3673         argument.  Don't use DW_OP_piece if offset is non-zero,
3674         put offset into second DW_OP_bit_piece argument.
3675         (dw_sra_loc_expr): Adjust callers.  For memory expressions
3676         compute offset.
3677
3678 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
3679
3680         PR target/44202
3681         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
3682         settings for 16-bit-constant "addo" alternative.
3683
3684 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
3685
3686         * config/mips/mips-dsp.md (add<DSPV:mode>3,
3687         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
3688
3689         PR target/43764
3690         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
3691         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
3692         Use it.
3693
3694 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
3695
3696         * diagnostic.c (FLOAT, FFS): Don't undefine.
3697         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
3698         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
3699         include ordering.
3700
3701 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
3702
3703         * combine.c (propagate_for_debug): Call make_compound_operation
3704         on the source value.
3705         (try_combine): When implementing a split chosen by find_split_point,
3706         either copy i2src or set it to null.  Assert that i2src is not null
3707         before substituting into CALL_INSN_FUNCTION_USAGE.
3708
3709 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
3710
3711         * double-int.h (double_int_ior): New function.
3712         * tree.h (build_int_cst_wide_type): Remove.
3713         * tree.c (build_int_cst_wide_type): Remove.
3714         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
3715         of build_int_cst_wide_type.
3716         * stor-layout.c (set_sizetype): (Ditto.).
3717         * dojump.c (do_jump): Use build_int_cstu instead of
3718         build_int_cst_wide_type.
3719
3720 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3721
3722         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
3723         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
3724         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
3725         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
3726         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
3727         propagate the 'data' argument to copy_tree_r.
3728         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
3729         Propagate 'data' argument to walk_tree.
3730         (copy_if_shared): New function.
3731         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
3732         (unmark_visited): New function.
3733         (unshare_body): Call copy_if_shared instead of doing it manually.
3734         (unvisit_body): Call unmark_visited instead of doing it manually.
3735
3736 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
3737
3738         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
3739         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
3740         * hooks.c: Likewise.
3741         * target-def.h (TARGET_FOLD_BUILTIN): Define to
3742         hook_tree_tree_int_treep_bool_null.
3743         * target.h (struct gcc_target): Update signature of fold_builtin
3744         field.
3745         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
3746         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
3747         instead of the call expression.
3748         (fold_builtin_call_array): Pass n and argarray directly.
3749         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
3750         consing a list.
3751         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
3752         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
3753         `i' and use it in place of `arity'.
3754         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
3755         Dereference `args' directly.
3756         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
3757
3758 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3759
3760         * doc/sourcebuild.texi (Effective-Target Keywords): Document
3761         3dnow, sse3, sse2.
3762         (Directives): Document optional dg-require-effective-target
3763         selector.
3764
3765 2010-05-19  Richard Guenther  <rguenther@suse.de>
3766
3767         PR lto/44196
3768         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
3769
3770 2010-05-19  Richard Guenther  <rguenther@suse.de>
3771
3772         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
3773         * common.opt (fwhopr=): New.
3774         * opts.c (common_handle_option): Handle OPT_fwhopr.
3775         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
3776         * collect2.c (main): Match -fwhopr*.
3777         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
3778         Execute ltrans stage in parallel when jobs is bigger than 1.
3779
3780 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3781
3782         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
3783         pentiumpro on Solaris 8/x86 with Sun as.
3784         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
3785         hidden alias bug.
3786         (gcc_cv_as_ix86_quad): Check for .quad directive.
3787         * configure: Regenerate.
3788         * config.in: Regenerate.
3789         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
3790
3791 2010-05-19  Martin Jambor  <mjambor@suse.cz>
3792
3793         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
3794         also for indirect edges.  Actual printing moved...
3795         (ipa_print_node_jump_functions_for_edge): ...here.
3796         (ipa_compute_jump_functions): Renamed to
3797         ipa_compute_jump_functions_for_edge and made static.
3798         (ipa_compute_jump_functions): New function.
3799         (make_edge_direct_to_target): Check if the number of arguments on
3800         the newly direct edge is the same as the number of parametrs of
3801         the callee.
3802         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
3803         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
3804         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
3805         analysis functions unconditionally, call the new
3806         ipa_analyze_params_uses on the node instead of every edge.
3807
3808 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
3809
3810         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
3811         to tree.
3812         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
3813         also checks for a constant int vs.  non-constant but
3814         loop-invariant steps.
3815         (find_or_create_group): Change the sort algorithm to only consider
3816         steps that are constant ints.
3817         (idx_analyze_ref): Adopt code to handle a tree instead of a
3818         HOST_WIDE_INT for step.
3819         (gather_memory_references_ref): Handle tree instead of int and be
3820         prepared to see a NULL_TREE.
3821         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
3822         prefetches if the step cannot be calculated at compile time.
3823         (issue_prefetch_ref): Issue prefetches for non-constant but
3824         loop-invariant steps.
3825
3826 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
3827
3828         Revert:
3829         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
3830
3831         * tree.h (build_call_list): Remove.
3832         * tree.c (build_call_list): Remove.
3833
3834 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
3835
3836         * tree.h (build_call_list): Remove.
3837         * tree.c (build_call_list): Remove.
3838
3839 2010-05-18  Jan Hubicka  <jh@suse.cz>
3840
3841         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
3842
3843 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
3844
3845         PR rtl-optimization/43332
3846         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
3847
3848 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
3849
3850         * tree.h (build_int_cstu): Implement as static inline.
3851         * tree.c (build_int_cstu): Remove function.
3852         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
3853         sign extended.
3854
3855 2010-05-18  Richard Guenther  <rguenther@suse.de>
3856
3857         PR lto/44143
3858         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
3859         (debug): Initialize from -save-temps.
3860         (collect_execute): Print command-line when verbose.
3861         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
3862         for ltrans invocation.  Produce -dumpbase flag again.
3863         (process_args): Remove.
3864         (main): Simplify.
3865         * collect2.c (maybe_run_lto_and_relink): Only pass object
3866         files to lto-wrapper.
3867         * gcc.c (LINK_COMMAND_SPEC): Likewise.
3868
3869 2010-05-18  Jan Hubicka  <jh@suse.cz>
3870
3871         * opts.c (decode_options): Do not disable whopr at ipa_cp.
3872         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
3873
3874 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
3875
3876         PR lto/44184
3877         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
3878         in a GIMPLE_ASM.
3879         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
3880         in a GIMPLE_ASM.
3881
3882 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
3883
3884         PR debug/41371
3885         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
3886         rtx_equal_p inline.
3887
3888 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
3889
3890         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
3891         lto-macho as lto_binary_reader.
3892
3893         * darwin.c (darwin_asm_named_section): Do not add assembler comment
3894         after .section directive; just print it before the directive instead.
3895
3896 2010-05-17  Jan Hubicka  <jh@suse.cz>
3897
3898         * cgraph.c (cgraph_create_virtual_clone): Only check
3899         versionable_function_p when not in wpa and checking is enabled.
3900         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
3901         there are no more functions to materialize.
3902
3903 2010-05-17  Jan Hubicka  <jh@suse.cz>
3904
3905         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
3906         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
3907         New functions.
3908         (output_cgraph): Call output_cgraph_opt_summary.
3909         (input_cgrpah): Call input_cgraph_opt_summary.
3910         (output_cgraph_opt_summary_p, output_node_opt_summary,
3911         input_node_opt_summary, input_cgraph_opt_section): New functions.
3912         * lto-section-in.c (lto_section_name): Add cgraphopt.
3913         * tree-inline.c (tree_function_versioning): Handle parm_num.
3914         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
3915         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
3916
3917 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
3918
3919         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
3920         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
3921         the insn to prefetch ratio heuristic to loops with known trip count.
3922
3923 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
3924
3925         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
3926         (schedule_prefetches): Do not generate a prefetch if the unroll factor
3927         is far from what is required by the prefetch.
3928
3929 2010-05-17  Jan Hubicka  <jh@suse.cz>
3930
3931         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
3932         (ipcp_estimate_growth): Likewise.
3933         (ipcp_const_param_count): Likewise.
3934         (ipcp_insert_stage): Likewise.
3935         * ipa-prop.c (visit_load_for_mod_analysis): New function.
3936         (visit_store_addr_for_mod_analysis): Set used flag.
3937         (ipa_detect_param_modifications): Set used flag for SSE params;
3938         update use of walk_stmt_load_store_addr_ops.
3939         (ipa_print_node_params): Print used flag.
3940         (ipa_write_node_info): Stream used flag.
3941         (ipa_read_node_info): Likewise.
3942         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
3943         (ipa_is_param_used): New function.
3944         (lto_ipa_fixup_call_notes): Remove unused declaration.
3945
3946 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3947
3948         PR target/44074
3949         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
3950         * configure: Regenerate.
3951         * config.in: Regenerate.
3952         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
3953         !HAVE_AS_IX86_REP_LOCK_PREFIX.
3954         Don't emit whitespace.
3955         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
3956         (*rep_movsi): Likewise.
3957         (*rep_movsi_rex64): Likewise.
3958         (*rep_movqi): Likewise.
3959         (*rep_movqi_rex64): Likewise.
3960         (*rep_stosdi_rex64): Likewise.
3961         (*rep_stossi): Likewise.
3962         (*rep_stossi_rex64): Likewise.
3963         (*rep_stosqi): Likewise.
3964         (*rep_stosqi_rex64): Likewise.
3965         (*cmpstrnqi_nz_1): Use {%;} after repz.
3966         (*cmpstrnqi_nz_rex_1): Likewise.
3967         (*cmpstrnqi_1): Likewise.
3968         (*cmpstrnqi_rex_1): Likewise.
3969         (*strlenqi_1): Use {%;} after repnz.
3970         (*strlenqi_rex_1): Likewise.
3971         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
3972         (*sync_compare_and_swap<mode>): Likewise.
3973         (sync_double_compare_and_swap<mode>): Likewise.
3974         (*sync_double_compare_and_swapdi_pic): Likewise.
3975         (sync_old_add<mode>): Likewise.
3976         (sync_add<mode>): Likewise.
3977         (sync_sub<mode>): Likewise.
3978         (sync_<code><mode>): Likewise.
3979
3980 2010-05-17  Martin Jambor  <mjambor@suse.cz>
3981
3982         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
3983         otr_token and polymorphic.
3984         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
3985         (cgraph_clone_edge): Copy the above fields.
3986         * tree.c (get_binfo_at_offset): New function.
3987         * tree.h (get_binfo_at_offset): Declare.
3988         * ipa-prop.h (enum jump_func_type): Added known_type jump function
3989         type, reordered items, updated comments.
3990         (union jump_func_value): Added base_type field, reordered fields.
3991         (enum ipa_lattice_type): Moved down in the file.
3992         (struct ipa_param_descriptor): New field polymorphic.
3993         (ipa_is_param_polymorphic): New function.
3994         * ipa-prop.c: Include gimple.h and gimple-fold.h.
3995         (ipa_print_node_jump_functions): Print known type jump functions.
3996         (compute_complex_pass_through): Renamed to...
3997         (compute_complex_assign_jump_func): this.
3998         (compute_complex_ancestor_jump_func): New function.
3999         (compute_known_type_jump_func): Likewise.
4000         (compute_scalar_jump_functions): Create known type and complex ancestor
4001         jump functions.
4002         (ipa_note_param_call): New parameter polymorphic, set the corresponding