OSDN Git Service

2009-04-17 Simon Baldwin <simonb@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-17  Simon Baldwin  <simonb@google.com>
2
3         * toplev.c (default_tree_printer): Add handling for %E format.
4
5 2009-04-17  Diego Novillo  <dnovillo@google.com>
6
7         * tree-pretty-print.c (dump_generic_node): Add break
8         after TREE_BINFO handler.
9         Handle COMPLEX_TYPE, REAL_TYPE and FIXED_POINT_TYPE
10         Handle NULL TREE_TYPEs.
11         Handle METHOD_TYPE and FUNCTION_TYPE together.
12         Call print_struct_decl when printing structures and
13         TDF_SLIM is not given.
14         (print_struct_decl): Fix logic for detecting recursion.
15
16 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
17
18         PR 31567
19         * gcc.c (create_at_file): New.
20         (compile_input_file_p): New.
21         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
22         * main.c (main): Update call to toplev_main.
23         * toplev.c (toplev_main): Change signature. Call expandargv.
24         * toplev.h (toplev_main): Change signature.
25
26 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
27
28         * dwarf2out.c (field_byte_offset): Use the type size as the field size
29         if the latter is not constant.
30
31 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
32
33         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
34
35 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
36
37         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
38         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
39
40 2009-04-17  Richard Guenther  <rguenther@suse.de>
41
42         * tree-ssa-structalias.c (get_constraint_for_component_ref):
43         Handle component references view-converting an invariant address.
44
45 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
46
47         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
48         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
49         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
50         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
51         Use @deftypevr rather than @deftypevar.
52
53 2009-04-17  Richard Guenther  <rguenther@suse.de>
54
55         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up
56         tuplification.
57         (get_prop_source_stmt): Likewise.
58         (can_propagate_from): Likewise.
59
60 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
61
62         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
63         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
64         (--with-multilib-list): Add default value.
65         * configure: Regenerate.
66         * Makefile.in (TM_ENDIAN_CONFIG): Define.
67         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
68         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
69         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
70         Don't add default cpu to multilib list unnecessarily, but do enable
71         the relevant compiler option..
72         Add support for --with-multilib-list=<blank> and
73         --with-multilib-list=!<somelib> to supress unwanted multilibs.
74         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
75         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
76         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
77         TM_MULTILIB_CONFIG.
78         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
79         (MULTILIB_OSDIRNAMES): New variable.
80         * config/sh/t-1e: Delete file.
81         * config/sh/t-mlib-sh1: Delete file.
82         * config/sh/t-mlib-sh2: Delete file.
83         * config/sh/t-mlib-sh2a: Delete file.
84         * config/sh/t-mlib-sh2a-nofpu: Delete file.
85         * config/sh/t-mlib-sh2a-single: Delete file.
86         * config/sh/t-mlib-sh2a-single-only: Delete file.
87         * config/sh/t-mlib-sh2e: Delete file.
88         * config/sh/t-mlib-sh3e: Delete file.
89         * config/sh/t-mlib-sh4: Delete file.
90         * config/sh/t-mlib-sh4-nofpu: Delete file.
91         * config/sh/t-mlib-sh4-single: Delete file.
92         * config/sh/t-mlib-sh4-single-only: Delete file.
93         * config/sh/t-mlib-sh4a: Delete file.
94         * config/sh/t-mlib-sh4a-nofpu: Delete file.
95         * config/sh/t-mlib-sh4a-single: Delete file.
96         * config/sh/t-mlib-sh4a-single-only: Delete file.
97         * config/sh/t-mlib-sh4al: Delete file.
98         * config/sh/t-mlib-sh5-32media: Delete file.
99         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
100         * config/sh/t-mlib-sh5-64media: Delete file.
101         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
102         * config/sh/t-mlib-sh5-compact: Delete file.
103         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
104         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
105         * doc/install.texi (Options specification): Add
106         --with-multilib-list and --with-endian.
107
108 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
109
110         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
111         REVISION_c.
112         (OBJS-common): Add plugin-version.o.
113         (plugin-version.o): New.
114         * gcc-plugin.h (plugin_gcc_version): New.
115         (plugin_default_version_check): New.
116         (plugin_init_func, plugin_init): Add version argument.
117         * plugin-version.c: New.
118         * plugin.c (str_plugin_gcc_version_name): New.
119         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
120         pass it to the init function.
121         (plugin_default_version_check): New.
122
123 2009-04-17  Richard Guenther  <rguenther@suse.de>
124
125         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
126         for decl-vs-decl disambiguation.
127
128 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
129
130         * config/s390/s390.h (s390_tune_attr): New macro definition.
131         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
132
133 2009-04-17  Richard Guenther  <rguenther@suse.de>
134
135         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
136         (fold_stmt_r): Likewise.
137         (maybe_fold_reference): New function.
138         (fold_gimple_assign): Handle cases fold_stmt_r did.
139         (fold_stmt): Do not use fold_stmt_r.
140         (fold_stmt_inplace): Likewise.
141
142 2009-04-17  Richard Guenther  <rguenther@suse.de>
143
144         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
145         (record_equivalences_from_stmt): Remove useless checks and
146         simplifications.
147         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
148         the type is already suitable.
149
150 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
151
152         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
153
154 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
155
156         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
157         (CMPtype): Define as __gcc_CMPtype.
158
159 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
160
161         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
162         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
163
164 2009-04-17  Richard Guenther  <rguenther@suse.de>
165
166         PR tree-optimization/39746
167         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
168         special-casing for builtins and static variable use/def.
169         (call_may_clobber_ref_p_1): Likewise.
170
171 2009-04-16  Ian Lance Taylor  <iant@google.com>
172
173         * df.h: Include "timevar.h".
174         (struct df_problem): Change tv_id field to timevar_id_t.
175         * tree-pass.h: Include "timevar.h".
176         (struct opt_pass): Change tv_id field to timevar_id_t.
177         * timevar.h (timevar_id_t): Define TV_NONE.
178         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
179         TV_NONE rather than tv_id != 0.
180         (execute_one_pass): Likewise.
181         * Makefile.in (DF_H): Add $(TIMEVAR_H).
182         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
183         dependencies to $(TREE_PASS_H).
184         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
185         to TV_NONE.
186         (pass_branch_target_load_optimize2): Likewise.
187         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
188         (pass_outof_cfg_layout_mode): Likewise.
189         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
190         (pass_rebuild_cgraph_edges): Likewise.
191         (pass_remove_cgraph_callee_edges): Likewise.
192         * df-core.c (pass_df_initialize_opt): Likewise.
193         (pass_df_initialize_no_opt): Likewise.
194         (pass_df_finish): Likewise.
195         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
196         * except.c (pass_set_nothrow_function_flags): Likewise.
197         (pass_convert_to_eh_region_ranges): Likewise.
198         * final.c (pass_compute_alignments): Likewise.
199         * function.c (pass_instantiate_virtual_regs): Likewise.
200         (pass_init_function): Likewise.
201         (pass_leaf_regs): Likewise.
202         (pass_match_asm_constraints): Likewise.
203         * gimple-low.c (pass_lower_cf): Likewise.
204         (pass_mark_used_blocks): Likewise.
205         * init-regs.c (pass_initialize_regs): Likewise.
206         * integrate.c (pass_initial_value_sets): Likewise.
207         * ira.c (pass_ira): Likewise.
208         * jump.c (pass_cleanup_barriers): Likewise.
209         * omp-low.c (pass_expand_omp): Likewise.
210         (pass_lower_omp): Likewise.
211         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
212         * recog.c (pass_split_all_insns): Likewise.
213         (pass_split_after_reload): Likewise.
214         (pass_split_before_regstack): Likewise.
215         (pass_split_before_sched2): Likewise.
216         (pass_split_for_shorten_branches): Likewise.
217         * reginfo.c (pass_reginfo_init): Likewise.
218         (pass_subregs_of_mode_init): Likewise.
219         (pass_subregs_of_mode_finish): Likewise.
220         * passes.c (pass_postreload): Likewise.
221         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
222         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
223         (pass_warn_function_return): Likewise.
224         (pass_warn_function_noreturn): Likewise.
225         * tree-complex.c (pass_lower_complex): Likewise.
226         (pass_lower_complex_O0): Likewise.
227         * tree-if-conv.c (pass_if_conversion): Likewise.
228         * tree-into-ssa.c (pass_build_ssa): Likewise.
229         * tree-mudflap.c (pass_mudflap_1): Likewise.
230         (pass_mudflap_2): Likewise.
231         * tree-nomudflap.c (pass_mudflap_1): Likewise.
232         (pass_mudflap_2): Likewise.
233         * tree-nrv.c (pass_return_slot): Likewise.
234         * tree-object-size.c (pass_object_sizes): Likewise.
235         * tree-optimize.c (pass_all_optimizations): Likewise.
236         (pass_early_local_passes): Likewise.
237         (pass_all_early_optimizations): Likewise.
238         (pass_cleanup_cfg): Likewise.
239         (pass_cleanup_cfg_post_optimizing): Likewise.
240         (pass_free_datastructures): Likewise.
241         (pass_free_cfg_annotations): Likewise.
242         (pass_fixup_cfg): Likewise.
243         (pass_init_datastructures): Likewise.
244         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
245         (pass_late_warn_uninitialized): Likewise.
246         (pass_update_address_taken): Likewise.
247         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
248         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
249         (pass_cse_sincos): Likewise.
250         (pass_convert_to_rsqrt): Likewise.
251         * tree-ssa-structalias.c (pass_build_alias): Likewise.
252         * tree-stdarg.c (pass_stdarg): Likewise.
253         * tree-tailcall.c (pass_tail_recursion): Likewise.
254         (pass_tail_calls): Likewise.
255         * tree-vect-generic.c (pass_lower_vector): Likewise.
256         (pass_lower_vector_ssa): Likewise.
257         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
258
259 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
260
261         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
262         XLR entry.
263         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
264         Handle -march=xlr.
265         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
266         logical and signext.
267
268 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
269
270         PR target/39767
271         * config/sh/predicates.md (arith_operand): Check if the operand
272         of TRUNCATE is a REG.
273
274 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
275
276         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
277         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
278
279 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
280
281         * tree-iterator.c (tsi_split_statement_list_after,
282         tsi_split_statement_list_before): Remove.
283         * tree-iterator.h: Remove the prototypes for
284         tsi_split_statement_list_after and tsi_split_statement_list_before.
285
286 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
287
288         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
289         * tree-ssa-propagate.h: Remove the prototype for
290         stmt_makes_single_load.
291
292 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
293
294         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
295         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
296
297 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
298
299         * tree-iterator.c (EXPR_LAST_BODY): Remove.
300
301 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
302
303         * except.c (eh_region_outer_p): Remove.
304         * except.h: Remove the prototype for eh_region_outer_p.
305
306 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
307
308         * function.c (current_function_assembler_name): Remove.
309         * function.h: Remove the prototype for
310         current_function_assembler_name.
311
312 2009-04-16  Ian Lance Taylor  <iant@google.com>
313
314         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
315         (add_reg_note): Call alloc_reg_note.
316         * rtl.h (alloc_reg_note): Declare.
317         * combine.c (try_combine): Use alloc_reg_note.
318         (recog_for_combine, move_deaths): Likewise.
319         (distribute_notes): Use alloc_reg_note and add_reg_note.
320         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
321         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
322         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
323
324 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
325
326         PR rtl-optimization/39762
327         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
328         ira_may_move_out_cost): Add comments about way of their usage.
329         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
330         
331         * ira-conflicts.c (process_regs_for_copy): Use function
332         ira_get_register_move_cost instead of global
333         ira_register_move_cost.
334
335         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
336         color_pass, move_spill_restore, update_curr_costs): Ditto.
337
338         * ira-lives.c (process_single_reg_class_operands): Ditto.
339
340         * ira-emit.c (emit_move_list): Ditto.
341
342         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
343         (record_reg_classes): Ditto.  Use functions
344         ira_get_register_move_cost and ira_get_may_move_cost instead of
345         global vars ira_register_move_cost, ira_may_move_out_cost and
346         ira_may_move_in_cost.
347         (record_address_regs): Don't call ira_init_register_move_cost.
348         Use function ira_get_may_move_cost instead of global
349         ira_may_move_in_cost.
350         (process_bb_node_for_hard_reg_moves): Use function
351         ira_get_register_move_cost instead of global ira_register_move_cost.
352         (ira_costs): Don't call ira_init_register_move_cost.
353         
354 2009-04-16  Richard Guenther  <rguenther@suse.de>
355
356         * tree-cfg.c (verify_gimple_assign_binary):
357         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
358         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
359         (create_general_new_stmt): Note that this function is broken.
360
361 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
362
363         * common.opt (fhelp): Add Var(help_flag).
364         * gcc-plugin.h (plugin_info): Add help.
365         * plugin.c (plugin_name_args): Add help.
366         (register_plugin_info): Set plugin->help.
367         (print_help_one_plugin): New.
368         (print_plugins_help): New.
369         * plugin.h (print_plugins_help): New.
370         * toplev.c (toplev_main): Call print_plugins_help if needed.
371
372 2009-04-16  Richard Guenther  <rguenther@suse.de>
373
374         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
375         (gimple_ior_addresses_taken_1): New function.
376         (gimple_ior_addresses_taken): Likewise.
377         * gimple.h (struct gimple_statement_with_ops_base): Remove
378         addresses_taken member.
379         (gimple_ior_addresses_taken): Declare.
380         (gimple_addresses_taken, gimple_addresses_taken_ptr,
381         gimple_set_addresses_taken): Remove.
382         * ipa-reference.c (mark_address): New function.
383         (scan_stmt_for_static_refs): Use it for marking addresses taken.
384         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
385         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
386         (gimple_add_to_addresses_taken): Remove.
387         (get_tmr_operands): Call mark_address_taken.
388         (get_asm_expr_operands): Likewise.
389         (get_expr_operands): Likewise.
390         (build_ssa_operands): Do not clear the addresses_taken bitmap.
391         (free_stmt_operands): Do not free it.
392         * tree-ssa.c (delete_tree_ssa): Likewise.
393         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
394
395 2009-04-16  Richard Guenther  <rguenther@suse.de>
396
397         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
398         (walk_stmt_load_store_ops): Likewise.
399         * gimple.c (get_base_loadstore): New function.
400         (walk_stmt_load_store_addr_ops): Likewise.
401         (walk_stmt_load_store_ops): Likewise.
402         * ipa-pure-const.c (check_op): Simplify.
403         (check_load, check_store): New functions.
404         (check_stmt): Use walk_stmt_load_store_ops.
405         * ipa-reference.c (mark_load): Adjust signature.
406         (mark_store): Likewise.
407         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
408
409 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
410
411         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
412         (plugin_info): New.
413         * opts.c (common_handle_option): Don't call print_version.
414         * plugin.c (plugin_name_args): Add version.
415         (register_plugin_info): New.
416         (register_callback): Handle PLUGIN_INFO.
417         (try_init_one_plugin): New.
418         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
419         if failed to init.
420         (finalize_one_plugin): New.
421         (finalize_plugins): New.
422         (print_one_plugin): New.
423         (print_plugins_versions): New.
424         * plugin.h (print_plugins_versions): New.
425         (finalize_plugins): New.
426         * toplev.c (compile_file): Don't call initialize_plugins.
427         (print_version): Call print_plugins_versions.
428         (toplev_main): Call initialize_plugins. Print version if needed.
429         Call finalize_plugins.
430
431 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
432
433         * common.opt (fversion): New.
434         * gcc.c (print_version): New.
435         (process_command): Don't print the version. Just set print_version.
436         (main): Print version. Call subprocesses if print_version and
437         verbose_flag are set.
438         * opts.c (common_handle_option): Handle OPT_fversion.
439
440 2009-04-16  Richard Guenther  <rguenther@suse.de>
441             Ira Rosen  <irar@il.ibm.com>
442
443         PR tree-optimization/39698
444         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
445         type of the reduction variable.  Only generate the def if
446         it is needed.
447
448         * omp-low.c (expand_omp_for_generic): When converting to a pointer
449         make sure to first convert to an integer of the same precision.
450         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
451         the type of the evolution correctly in computing the new
452         induction variable base.
453
454 2009-04-16  Richard Guenther  <rguenther@suse.de>
455
456         PR middle-end/39625
457         * tree-cfg.c (make_blocks): Split statements with to-be
458         abnormal SSA names on the lhs.
459
460 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
461
462         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
463         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
464         * c-typeck.c (really_start_incremental_init): Likewise.
465         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
466         (TARGET_INITIALIZER): Remove it.
467         * target.h (struct target): Remove vector_opaque_p.
468         * tree.c (build_opaque_vector_type): New.
469         * tree.h (TYPE_VECTOR_OPAQUE): New.
470         (build_opaque_vector_type): Declare.
471         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
472         * config/rs6000/rs6000.c (build_opaque_vector_type,
473         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
474         (rs6000_init_builtins): Use build_opaque_vector_type for
475         opaque_V4SI_type_node.
476
477 2009-04-15  Catherine Moore  <clm@codesourcery.com>
478
479         * debug.h (set_name):  Declare.
480         * dwarf2out.c (dwarf2out_set_name): Declare.
481         (dwarf2_debug_hooks): Add set_name.
482         (find_AT_string): New.
483         (add_AT_string): Call find_AT_string.
484         (dwarf2out_set_name): New.
485         * cp/decl.c (grokdeclarator): Call set_name.
486         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
487         * debug.c (do_nothing_debug_hooks):  Likewise.
488         * dbxout.c (dbx_debug_hooks): Likewise.
489         * sdbout.c (sdb_debug_hooks): Likewise.
490
491 2009-04-15  Michael Eager <eager@eagercon.com>
492
493         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
494         reg for single-precision FPU.
495         * config/rs6000/rs6000.md (movsi_internal1): Only for
496         !TARGET_SINGLE_FPU.
497         (movsi_internal1_single): New. Add pattern to move SI values to/from
498         single-precision FP regs.
499
500 2009-04-15  Richard Guenther  <rguenther@suse.de>
501
502         * omp-low.c (lower_rec_input_clauses): Build correct address
503         expressions.
504         (expand_omp_for_generic): Fix multiplication type.
505         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
506         (generate_memset_zero): Fix types.
507         * tree-profile.c (prepare_instrumented_value): Correctly
508         widen a pointer.
509
510 2009-04-15  Ian Lance Taylor  <iant@google.com>
511
512         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
513         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
514         for -Wall and for -Wc++-compat.
515         (c_common_post_options): For C++, set warn_enum_compare if not
516         already set.
517         * c-tree.h (struct c_expr): Add field original_type.
518         (build_external_ref): Update declaration.
519         * c-parser.c (c_parser_braced_init): Set original_type.
520         (c_parser_initelt): Likewise.
521         (c_parser_expr_no_commas): Likewise.
522         (c_parser_conditional_expression): Likewise.
523         (c_parser_cast_expression): Likewise.
524         (c_parser_unary_expression): Likewise.  Pull setting of
525         original_code to top of function.
526         (c_parser_sizeof_expression): Set original_type.
527         (c_parser_alignof_expression): Likewise.
528         (c_parser_postfix_expression): Likewise.  Pull setting of
529         original_code to top of function.
530         (c_parser_postfix_expression_after_paren_type): Set original_type.
531         (c_parser_postfix_expression_after_primary): Likewise.
532         (c_parser_expression): Likewise.
533         * c-typeck.c (build_external_ref): Add type parameter.  Change all
534         callers.
535         (c_expr_sizeof_expr): Set original_type field.
536         (parser_build_unary_op): Likewise.
537         (parser_build_binary_op): Likewise.  Optionally warn about
538         comparisons of enums of different types.
539         (digest_init): Set original_type field.
540         (really_start_incremental_init): Likewise.
541         (push_init_level, pop_init_level): Likewise.
542         * doc/invoke.texi (Warning Options): -Wenum-compare now
543         supported in C.
544
545 2009-04-15  Richard Guenther  <rguenther@suse.de>
546
547         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
548         out a necessary conversion.
549         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
550         names we didn't value number.
551         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
552
553 2009-04-15  Richard Guenther  <rguenther@suse.de>
554
555         PR tree-optimization/39764
556         * tree-ssa-ccp.c (get_value): Canonicalize value with
557         canonicalize_float_value.
558
559 2009-04-15  Jan Hubicka  <jh@suse.cz>
560
561         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
562         Wrong version of patch.
563
564 2009-04-15  Jan Hubicka  <jh@suse.cz>
565
566         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
567
568 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
569
570         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
571         our distinct integral and vector types.
572
573 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
574
575         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
576         * init.c (build_vtbl_address): Remove call to assemble_external.
577
578 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
579
580         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
581         output for other floating point modes.
582
583 2009-04-14  Diego Novillo  <dnovillo@google.com>
584
585         * diagnostic.c (diagnostic_report_diagnostic): Do not
586         warn about loaded plugins for DK_ERROR and DK_WARNING.
587         * c-decl.c (declspecs_add_type): Move call to
588         invoke_plugin_callbacks ...
589         * c-parser.c (c_parser_declspecs): ... here.
590         * plugin.c (dump_active_plugins): Tidy output.
591
592 2009-04-14  Diego Novillo  <dnovillo@google.com>
593             Le-Chun Wu  <lcwu@google.com>
594
595         * configure.ac: Add --enable-plugin support.
596         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
597         * Makefile.in (PLUGIN_H): Define.
598         Export ENABLE_PLUGIN and GMPINC to site.exp.
599         Add PLUGINLIBS to link command.
600         Add/modify dependencies for plugin.o and files including plugin.h.
601         (plugin.o): New.
602         * config.in: Regenerate.
603         
604         * opts.c (common_handle_option): Handle OPT_fplugin_ and
605         OPT_fplugin_arg_.
606
607 2009-04-14  Le-Chun Wu  <lcwu@google.com>
608
609         * tree-pass.h (register_one_dump_file): Add a prototype for
610         register_one_dump_file.
611         * toplev.c (compile_file): Call initialize_plugins.
612         (do_compile): Call invoke_plugin_callbacks.
613         (toplev_main): Call invoke_plugin_callbacks.
614         * common.opt: Add -fplugin= and -fplugin-arg-.
615         * gcc-plugin.h: New public header file for plugins to include.
616         * plugin.c: New source file.
617         * plugin.h: New internal header file.
618         * passes.c (register_one_dump_file): Make it external.
619         
620         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
621
622 2009-04-14  Diego Novillo  <dnovillo@google.com>
623
624         * doc/plugins.texi: New.
625         * doc/gccint.texi: Add reference to Plugins chapter.
626         * doc/invoke.texi: Document -fplugin and -fplugin-arg
627         * diagnostic.c (diagnostic_report_diagnostic): Warn about
628         loaded plugins, if any.
629         * timevar.def (TV_PLUGIN_INIT): Define.
630         (TV_PLUGIN_RUN): Define.
631         * plugin.c: Include timevar.h
632         (plugins_active_p): New.
633         (dump_active_plugins): New.
634         (debug_active_plugins): New.
635
636 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
637
638         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
639         library paths.
640         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
641
642 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
643
644         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
645         the same as a minus without a shift.
646
647 2009-04-14  Nick Clifton  <nickc@redhat.com>
648
649         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
650         comparisons with small integers will always produce a short
651         branch.
652
653 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
654
655         Merge:
656         2008-12-19  Diego Novillo  <dnovillo@google.com>
657
658         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
659
660 2000-04-14  Richard Guenther  <rguenther@suse.de>
661
662         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
663         verification.
664         (verify_gimple_assign_binary): Likewise.  Handle shifts and
665         rotates correctly.
666         (verify_gimple_phi): Print the mismatched argument position.
667         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
668         Fix types.
669         (vect_update_init_of_dr): Likewise.
670         * matrix-reorg.c (transform_access_sites): Do what the
671         comment suggests.
672         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
673
674 2009-04-13  Michael Eager <eager@eagercon.com>
675
676         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
677         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
678         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
679         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, 
680         remove duplicate config
681
682 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
683
684         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
685         file_name:line_number type locator of the call site.
686         
687 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
688
689         * genautomata.c: Put blank after comma.
690         (automaton_decls): New.
691         (struct unit_usage): Add comments to member next.
692         (store_alt_unit_usage): Keep the list ordered.
693         (unit_present_on_list_p, equal_alternatives_p): New.
694         (check_regexp_units_distribution): Check units distribution
695         correctness correctly.
696         (main): Don't write automata if error is found.  Return correct
697         exit code.
698         
699         * config/m68k/cf.md (cfv4_ds): Remove.
700         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
701         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
702
703         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
704         power4-load-ext, power4-store, power4-store-update,
705         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
706         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
707         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
708         power4-sqrt, power4-isync): Modify reservation to make correct
709         unit distribution to automata.
710
711         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
712         power5-store-update, power5-two, power5-three, power5-lmul,
713         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
714         
715 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
716
717         * except.c (pass_set_nothrow_function_flags): Set name and add
718         TODO_dump_func.
719         (set_nothrow_function_flags): Mention in the dump file when
720         changing a function to nothrow.
721
722 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
723
724         PR/39066
725         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
726         instead of unsigned long.
727
728 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
729
730         * config/arm/arm.c (return_used_this_function): Remove.
731         (arm_output_function_prologue): Remove use of
732         return_used_this_function.
733         (output_return_instruction): Replace use of
734         return_used_this_function
735         by cfun->machine->return_used_this_function.
736         (arm_output_epilogue): Likewise.
737         (arm_output_function_epilogue): Likewise.
738         (thumb_unexpanded_epilogue): Likewise.
739         * config/arm/arm.h (struct machine_function):
740         New member return_used_this_function.
741
742 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
743
744         * doc/install.texi: Correct description of default directory for
745         --with-gxx-include-dir.
746
747 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
748
749         * fold-const.c (build_range_check): Properly deal with enumeral and
750         boolean base types.
751
752 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
753
754         * doc/invoke.texi (max_gcse_passes): Remove documentation.
755         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
756         * params.h (MAX_GCSE_PASSES): Remove.
757         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
758         in sequence.  Remove ability to run multiple passes.
759         (bypass_jumps): Report run as third CPROP pass.
760
761 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
762
763         PR middle-end/39651
764         * except.c (can_throw_external): Look at each insn in a SEQUENCE
765         when deciding whether the whole SEQUENCE can throw.
766
767 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
768
769         PR target/39740
770         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
771         offseted label references.
772
773 2009-04-11  Jan Hubicka  <jh@suse.cz>
774
775         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
776
777 2009-04-11  Richard Guenther  <rguenther@suse.de>
778
779         PR middle-end/39732
780         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
781         return variables as TREE_ADDRESSABLE.
782
783 2009-04-11  Richard Guenther  <rguenther@suse.de>
784
785         PR tree-optimization/39713
786         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
787         reference trees have SSA_NAME operands.
788
789 2009-04-11  Richard Guenther  <rguenther@suse.de>
790
791         PR c/39712
792         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
793         address expressions.
794
795 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
796
797         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
798         match changes in Cygwin 1.7
799         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
800         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
801
802 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
803
804         PR tree-optimization/39701
805         * doc/invoke.texi (Optimization Options): Document change in
806         meaning and initialization of -fdelete-null-pointer-checks.
807
808 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
809
810         PR middle-end/39701
811         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
812
813         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
814         here.
815
816         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
817
818 2009-04-10  Chao-ying Fu  <fu@mips.com>
819
820         * doc/tm.texi (Instruction Output): Document
821         TARGET_ASM_FINAL_POSTSCAN_INSN.
822         * target.h (final_postscan_insn): New field in asm_out.
823         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
824         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
825         * final.c (final_scan_insn): Call
826         targetm.asm_out.final_postscan_insn after outputting
827         an asm macro and a normal instruction.
828
829         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
830         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
831         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
832         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
833         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
834
835 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
836
837         PR middle-end/39701
838         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
839         variables as non-NULL even with -fdelete-null-pointer-checks.
840
841 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
842
843         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
844
845 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
846
847         PR target/39678
848         * config/i386/i386.c (classify_argument): Handle SCmode with
849         (bit_offset % 64) != 0.
850
851 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
852
853         * doc/invoke.texi (Optimize Options): Add cross-reference to
854         -Q --help=optimizers examples.
855
856 2009-04-10  Ben Elliston  <bje@au.ibm.com>
857
858         PR target/36800
859         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
860         regalign for the reg == fpr and TDmode case.
861
862 2009-04-09  David Ayers  <ayers@fsfe.org>
863
864         PR objc/29200
865         * objc/objc-act.c (warn_with_method): Remove helper function.
866         (check_duplicates): Call warning and inform directly.
867         (really_start_method): Likewise.
868
869 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
870
871         * expmed.c (expand_divmod): Always use a comparison for a division
872         by a large unsigned integer.
873
874         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
875         for things others than variables or functions as nonzero.
876
877 2009-04-09  Nick Clifton  <nickc@redhat.com>
878
879         * unwind-compat.c: Change copyright header to refer to version
880         3 of the GNU General Public License with version 3.1 of the
881         GCC Runtime Library Exception and to point readers at the
882         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
883         * config/alpha/crtfastmath.c: Likewise.
884         * config/alpha/linux-unwind.h: Likewise.
885         * config/alpha/qrnnd.asm: Likewise.
886         * config/alpha/vms-crt0-64.c: Likewise.
887         * config/alpha/vms-crt0.c: Likewise.
888         * config/alpha/vms-dwarf2.asm: Likewise.
889         * config/alpha/vms-dwarf2eh.asm: Likewise.
890         * config/alpha/vms-psxcrt0-64.c: Likewise.
891         * config/alpha/vms-psxcrt0.c: Likewise.
892         * config/alpha/vms_tramp.asm: Likewise.
893         * config/arc/initfini.c: Likewise.
894         * config/arc/lib1funcs.asm: Likewise.
895         * config/arm/bpabi-v6m.S: Likewise.
896         * config/arm/bpabi.S: Likewise.
897         * config/arm/bpabi.c: Likewise.
898         * config/arm/crti.asm: Likewise.
899         * config/arm/crtn.asm: Likewise.
900         * config/arm/ieee754-df.S: Likewise.
901         * config/arm/ieee754-sf.S: Likewise.
902         * config/arm/lib1funcs.asm: Likewise.
903         * config/arm/libunwind.S: Likewise.
904         * config/arm/linux-atomic.c: Likewise.
905         * config/arm/mmintrin.h: Likewise.
906         * config/arm/pr-support.c: Likewise.
907         * config/arm/unaligned-funcs.c: Likewise.
908         * config/arm/unwind-arm.c: Likewise.
909         * config/arm/unwind-arm.h: Likewise.
910         * config/avr/libgcc.S: Likewise.
911         * config/bfin/crti.s: Likewise.
912         * config/bfin/crtlibid.s: Likewise.
913         * config/bfin/crtn.s: Likewise.
914         * config/bfin/lib1funcs.asm: Likewise.
915         * config/bfin/linux-unwind.h: Likewise.
916         * config/cris/arit.c: Likewise.
917         * config/cris/cris_abi_symbol.c: Likewise.
918         * config/darwin-64.c: Likewise.
919         * config/darwin-crt2.c: Likewise.
920         * config/darwin-crt3.c: Likewise.
921         * config/darwin.h: Likewise.
922         * config/dbxelf.h: Likewise.
923         * config/dfp-bit.c: Likewise.
924         * config/dfp-bit.h: Likewise.
925         * config/elfos.h: Likewise.
926         * config/fixed-bit.c: Likewise.
927         * config/fixed-bit.h: Likewise.
928         * config/fp-bit.c: Likewise.
929         * config/fp-bit.h: Likewise.
930         * config/fr30/crti.asm: Likewise.
931         * config/fr30/crtn.asm: Likewise.
932         * config/fr30/lib1funcs.asm: Likewise.
933         * config/freebsd-spec.h: Likewise.
934         * config/frv/cmovd.c: Likewise.
935         * config/frv/cmovh.c: Likewise.
936         * config/frv/cmovw.c: Likewise.
937         * config/frv/frvbegin.c: Likewise.
938         * config/frv/frvend.c: Likewise.
939         * config/frv/lib1funcs.asm: Likewise.
940         * config/glibc-stdint.h: Likewise.
941         * config/h8300/clzhi2.c: Likewise.
942         * config/h8300/crti.asm: Likewise.
943         * config/h8300/crtn.asm: Likewise.
944         * config/h8300/ctzhi2.c: Likewise.
945         * config/h8300/fixunssfsi.c: Likewise.
946         * config/h8300/lib1funcs.asm: Likewise.
947         * config/h8300/parityhi2.c: Likewise.
948         * config/h8300/popcounthi2.c: Likewise.
949         * config/i386/ammintrin.h: Likewise.
950         * config/i386/att.h: Likewise.
951         * config/i386/avxintrin.h: Likewise.
952         * config/i386/biarch64.h: Likewise.
953         * config/i386/bmmintrin.h: Likewise.
954         * config/i386/cpuid.h: Likewise.
955         * config/i386/cross-stdarg.h: Likewise.
956         * config/i386/crtfastmath.c: Likewise.
957         * config/i386/crtprec.c: Likewise.
958         * config/i386/cygming-crtbegin.c: Likewise.
959         * config/i386/cygming-crtend.c: Likewise.
960         * config/i386/cygwin.asm: Likewise.
961         * config/i386/emmintrin.h: Likewise.
962         * config/i386/gmm_malloc.h: Likewise.
963         * config/i386/gthr-win32.c: Likewise.
964         * config/i386/i386.h: Likewise.
965         * config/i386/immintrin.h: Likewise.
966         * config/i386/linux-unwind.h: Likewise.
967         * config/i386/linux64.h: Likewise.
968         * config/i386/mm3dnow.h: Likewise.
969         * config/i386/mmintrin-common.h: Likewise.
970         * config/i386/mmintrin.h: Likewise.
971         * config/i386/nmmintrin.h: Likewise.
972         * config/i386/pmm_malloc.h: Likewise.
973         * config/i386/pmmintrin.h: Likewise.
974         * config/i386/smmintrin.h: Likewise.
975         * config/i386/sol2-c1.asm: Likewise.
976         * config/i386/sol2-ci.asm: Likewise.
977         * config/i386/sol2-cn.asm: Likewise.
978         * config/i386/sol2-gc1.asm: Likewise.
979         * config/i386/tmmintrin.h: Likewise.
980         * config/i386/unix.h: Likewise.
981         * config/i386/w32-unwind.h: Likewise.
982         * config/i386/wmmintrin.h: Likewise.
983         * config/i386/x86-64.h: Likewise.
984         * config/i386/x86intrin.h: Likewise.
985         * config/i386/xmmintrin.h: Likewise.
986         * config/ia64/crtbegin.asm: Likewise.
987         * config/ia64/crtend.asm: Likewise.
988         * config/ia64/crtfastmath.c: Likewise.
989         * config/ia64/crti.asm: Likewise.
990         * config/ia64/crtn.asm: Likewise.
991         * config/ia64/fde-glibc.c: Likewise.
992         * config/ia64/lib1funcs.asm: Likewise.
993         * config/ia64/linux-unwind.h: Likewise.
994         * config/ia64/quadlib.c: Likewise.
995         * config/ia64/unwind-ia64.c: Likewise.
996         * config/linux.h: Likewise.
997         * config/m32c/m32c-lib1.S: Likewise.
998         * config/m32c/m32c-lib2-trapv.c: Likewise.
999         * config/m32c/m32c-lib2.c: Likewise.
1000         * config/m32r/initfini.c: Likewise.
1001         * config/m68hc11/larith.asm: Likewise.
1002         * config/m68hc11/m68hc11-crt0.S: Likewise.
1003         * config/m68k/cf.md: Likewise.
1004         * config/m68k/crti.s: Likewise.
1005         * config/m68k/crtn.s: Likewise.
1006         * config/m68k/lb1sf68.asm: Likewise.
1007         * config/m68k/linux-unwind.h: Likewise.
1008         * config/mcore/crti.asm: Likewise.
1009         * config/mcore/crtn.asm: Likewise.
1010         * config/mcore/lib1.asm: Likewise.
1011         * config/mips/linux-unwind.h: Likewise.
1012         * config/mips/loongson.h: Likewise.
1013         * config/mips/mips16.S: Likewise.
1014         * config/mmix/crti.asm: Likewise.
1015         * config/mmix/crtn.asm: Likewise.
1016         * config/pa/fptr.c: Likewise.
1017         * config/pa/hpux-unwind.h: Likewise.
1018         * config/pa/lib2funcs.asm: Likewise.
1019         * config/pa/linux-atomic.c: Likewise.
1020         * config/pa/linux-unwind.h: Likewise.
1021         * config/pa/milli64.S: Likewise.
1022         * config/pa/quadlib.c: Likewise.
1023         * config/pa/stublib.c: Likewise.
1024         * config/picochip/libgccExtras/adddi3.asm: Likewise.
1025         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
1026         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
1027         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
1028         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
1029         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
1030         * config/picochip/libgccExtras/divmod15.asm: Likewise.
1031         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
1032         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
1033         * config/picochip/libgccExtras/longjmp.asm: Likewise.
1034         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
1035         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
1036         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
1037         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
1038         * config/picochip/libgccExtras/setjmp.asm: Likewise.
1039         * config/picochip/libgccExtras/subdi3.asm: Likewise.
1040         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
1041         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
1042         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
1043         * config/rs6000/750cl.h: Likewise.
1044         * config/rs6000/altivec.h: Likewise.
1045         * config/rs6000/biarch64.h: Likewise.
1046         * config/rs6000/crtresfpr.asm: Likewise.
1047         * config/rs6000/crtresgpr.asm: Likewise.
1048         * config/rs6000/crtresxfpr.asm: Likewise.
1049         * config/rs6000/crtresxgpr.asm: Likewise.
1050         * config/rs6000/crtsavfpr.asm: Likewise.
1051         * config/rs6000/crtsavgpr.asm: Likewise.
1052         * config/rs6000/darwin-asm.h: Likewise.
1053         * config/rs6000/darwin-fallback.c: Likewise.
1054         * config/rs6000/darwin-fpsave.asm: Likewise.
1055         * config/rs6000/darwin-ldouble.c: Likewise.
1056         * config/rs6000/darwin-tramp.asm: Likewise.
1057         * config/rs6000/darwin-unwind.h: Likewise.
1058         * config/rs6000/darwin-vecsave.asm: Likewise.
1059         * config/rs6000/darwin-world.asm: Likewise.
1060         * config/rs6000/e500crtres32gpr.asm: Likewise.
1061         * config/rs6000/e500crtres64gpr.asm: Likewise.
1062         * config/rs6000/e500crtres64gprctr.asm: Likewise.
1063         * config/rs6000/e500crtrest32gpr.asm: Likewise.
1064         * config/rs6000/e500crtrest64gpr.asm: Likewise.
1065         * config/rs6000/e500crtresx32gpr.asm: Likewise.
1066         * config/rs6000/e500crtresx64gpr.asm: Likewise.
1067         * config/rs6000/e500crtsav32gpr.asm: Likewise.
1068         * config/rs6000/e500crtsav64gpr.asm: Likewise.
1069         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
1070         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
1071         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
1072         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
1073         * config/rs6000/eabi-ci.asm: Likewise.
1074         * config/rs6000/eabi-cn.asm: Likewise.
1075         * config/rs6000/eabi.asm: Likewise.
1076         * config/rs6000/linux-unwind.h: Likewise.
1077         * config/rs6000/linux64.h: Likewise.
1078         * config/rs6000/paired.h: Likewise.
1079         * config/rs6000/paired.md: Likewise.
1080         * config/rs6000/ppc64-fp.c: Likewise.
1081         * config/rs6000/ppu_intrinsics.h: Likewise.
1082         * config/rs6000/rs6000.h: Likewise.
1083         * config/rs6000/si2vmx.h: Likewise.
1084         * config/rs6000/sol-ci.asm: Likewise.
1085         * config/rs6000/sol-cn.asm: Likewise.
1086         * config/rs6000/spe.h: Likewise.
1087         * config/rs6000/spu2vmx.h: Likewise.
1088         * config/rs6000/sysv4.h: Likewise.
1089         * config/rs6000/tramp.asm: Likewise.
1090         * config/rs6000/vec_types.h: Likewise.
1091         * config/s390/linux-unwind.h: Likewise.
1092         * config/s390/tpf-unwind.h: Likewise.
1093         * config/score/crti.asm: Likewise.
1094         * config/score/crtn.asm: Likewise.
1095         * config/sh/crt1.asm: Likewise.
1096         * config/sh/crti.asm: Likewise.
1097         * config/sh/crtn.asm: Likewise.
1098         * config/sh/divtab-sh4-300.c: Likewise.
1099         * config/sh/divtab-sh4.c: Likewise.
1100         * config/sh/divtab.c: Likewise.
1101         * config/sh/lib1funcs-4-300.asm: Likewise.
1102         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
1103         * config/sh/lib1funcs.asm: Likewise.
1104         * config/sh/lib1funcs.h: Likewise.
1105         * config/sh/linux-atomic.asm: Likewise.
1106         * config/sh/linux-unwind.h: Likewise.
1107         * config/sh/shmedia.h: Likewise.
1108         * config/sh/sshmedia.h: Likewise.
1109         * config/sh/ushmedia.h: Likewise.
1110         * config/sparc/crtfastmath.c: Likewise.
1111         * config/sparc/linux-unwind.h: Likewise.
1112         * config/sparc/sol2-c1.asm: Likewise.
1113         * config/sparc/sol2-ci.asm: Likewise.
1114         * config/sparc/sol2-cn.asm: Likewise.
1115         * config/spu/divmodti4.c: Likewise.
1116         * config/spu/divv2df3.c: Likewise.
1117         * config/spu/float_disf.c: Likewise.
1118         * config/spu/float_unsdidf.c: Likewise.
1119         * config/spu/float_unsdisf.c: Likewise.
1120         * config/spu/float_unssidf.c: Likewise.
1121         * config/spu/mfc_multi_tag_release.c: Likewise.
1122         * config/spu/mfc_multi_tag_reserve.c: Likewise.
1123         * config/spu/mfc_tag_release.c: Likewise.
1124         * config/spu/mfc_tag_reserve.c: Likewise.
1125         * config/spu/mfc_tag_table.c: Likewise.
1126         * config/spu/multi3.c: Likewise.
1127         * config/spu/spu_internals.h: Likewise.
1128         * config/spu/spu_intrinsics.h: Likewise.
1129         * config/spu/spu_mfcio.h: Likewise.
1130         * config/spu/vec_types.h: Likewise.
1131         * config/spu/vmx2spu.h: Likewise.
1132         * config/stormy16/stormy16-lib2.c: Likewise.
1133         * config/svr4.h: Likewise.
1134         * config/sync.c: Likewise.
1135         * config/v850/lib1funcs.asm: Likewise.
1136         * config/vxlib-tls.c: Likewise.
1137         * config/vxlib.c: Likewise.
1138         * config/vxworks-dummy.h: Likewise.
1139         * config/xtensa/crti.asm: Likewise.
1140         * config/xtensa/crtn.asm: Likewise.
1141         * config/xtensa/ieee754-df.S: Likewise.
1142         * config/xtensa/ieee754-sf.S: Likewise.
1143         * config/xtensa/lib1funcs.asm: Likewise.
1144         * config/xtensa/lib2funcs.S: Likewise.
1145         * config/xtensa/linux-unwind.h: Likewise.
1146         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
1147         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
1148         * coretypes.h: Likewise.
1149         * crtstuff.c: Likewise.
1150         * defaults.h: Likewise.
1151         * dwarf2.h: Likewise.
1152         * emutls.c: Likewise.
1153         * gbl-ctors.h: Likewise.
1154         * gcov-io.h: Likewise.
1155         * ginclude/float.h: Likewise.
1156         * ginclude/iso646.h: Likewise.
1157         * ginclude/stdarg.h: Likewise.
1158         * ginclude/stdbool.h: Likewise.
1159         * ginclude/stddef.h: Likewise.
1160         * ginclude/stdfix.h: Likewise.
1161         * ginclude/stdint-gcc.h: Likewise.
1162         * ginclude/tgmath.h: Likewise.
1163         * gthr-aix.h: Likewise.
1164         * gthr-dce.h: Likewise.
1165         * gthr-gnat.c: Likewise.
1166         * gthr-gnat.h: Likewise.
1167         * gthr-lynx.h: Likewise.
1168         * gthr-mipssde.h: Likewise.
1169         * gthr-nks.h: Likewise.
1170         * gthr-posix.c: Likewise.
1171         * gthr-posix.h: Likewise.
1172         * gthr-posix95.h: Likewise.
1173         * gthr-rtems.h: Likewise.
1174         * gthr-single.h: Likewise.
1175         * gthr-solaris.h: Likewise.
1176         * gthr-tpf.h: Likewise.
1177         * gthr-vxworks.h: Likewise.
1178         * gthr-win32.h: Likewise.
1179         * gthr.h: Likewise.
1180         * libgcc2.c: Likewise.
1181         * libgcc2.h: Likewise.
1182         * libgcov.c: Likewise.
1183         * tsystem.h: Likewise.
1184         * typeclass.h: Likewise.
1185         * unwind-c.c: Likewise.
1186         * unwind-compat.h: Likewise.
1187         * unwind-dw2-fde-compat.c: Likewise.
1188         * unwind-dw2-fde-darwin.c: Likewise.
1189         * unwind-dw2-fde-glibc.c: Likewise.
1190         * unwind-dw2-fde.c: Likewise.
1191         * unwind-dw2-fde.h: Likewise.
1192         * unwind-dw2.c: Likewise.
1193         * unwind-dw2.h: Likewise.
1194         * unwind-generic.h: Likewise.
1195         * unwind-pe.h: Likewise.
1196         * unwind-sjlj.c: Likewise.
1197         * unwind.inc: Likewise.
1198         * config/arm/neon-gen.ml: Change generated copyright header to
1199         refer to version 3 of the GNU General Public License with
1200         version 3.1 of the GCC Runtime Library Exception and to point
1201         readers at the COPYING3 and COPYING3.RUNTIME files and the
1202         FSF's license web page.
1203         * config/arm/arm_neon.h: Regenerate.
1204
1205 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1206
1207         * config/cris/cris.md: Change copyright header to refer to version
1208         3 of the GNU General Public License.
1209         * doc/install.texi2html: Change copyright header to refer to version
1210         3 of the GNU General Public License and to point readers at the
1211         COPYING3 file and the FSF's license web page.
1212         * config/vax/linux.h: Likewise.
1213
1214 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
1215
1216         * config/i386/i386.md (cmpcc): New.
1217         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
1218         (sync_compare_and_swap_cc*): Delete.
1219
1220         * config/s390/s390.c (s390_compare_emitted): Remove.
1221         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
1222         s390_compare_emitted used to be handled.  Assert that modes match.
1223         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
1224         refer to sync_compare_and_swap_ccsi.
1225         * config/s390/s390.h (s390_compare_emitted): Remove.
1226         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
1227         instead of s390_compare_emitted.
1228         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
1229         instead of s390_compare_emitted.
1230         * config/s390/s390.md (cmpcc): New.
1231         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
1232         CC_REGNUM, do not pretend it's set.
1233         (sync_compare_and_swap_cc*): Delete.
1234         * config/s390/predicates.md (cc_reg_operand): New.
1235
1236         * expr.c (sync_compare_and_swap_cc): Delete.
1237         * optabs.h (sync_compare_and_swap_cc): Delete.
1238         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
1239         is being used with can_compare_p.
1240         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
1241         (find_cc_set): New.
1242         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
1243         look for a MODE_CC set instead.  Use emit_store_flag.
1244         (expand_compare_and_swap_loop): Likewise, with some additional
1245         complication to avoid a force_reg when useless.  Use
1246         emit_cmp_and_jump_insns.
1247         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
1248         * doc/md.texi (sync_compare_and_swap_cc): Merge with
1249         sync_compare_and_swap documentation.
1250
1251 2009-04-09  Jan Hubicka  <jh@suse.cz>
1252
1253         * except.c (find_prev_try): Break out from ....
1254         (duplicate_eh_regions): ... here; properly update prev_try pointers
1255         when duplication part of tree.
1256         (dump_eh_tree): Improve dumping.
1257         (verify_eh_region): New.
1258         (verify_eh_tree): Use it.
1259
1260 2009-04-06  Richard Guenther  <rguenther@suse.de>
1261
1262         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
1263         &ARRAY addresses by adjusting their types and prepending
1264         a conversion.
1265         * tree-cfg.c (verify_gimple_assign_single): Verify that
1266         addresses are correct.
1267
1268 2009-04-09  Richard Guenther  <rguenther@suse.de>
1269
1270         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
1271         indices into an array reference if possible.
1272         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1273         Fold POINTER_PLUS_EXPR statements with invariant address.
1274
1275 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
1276
1277         PR target/39634
1278         * config.gcc (powerpc64-*-linux*): Always build biarch.
1279
1280 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
1281
1282         PR c/39613
1283         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
1284         it and pedwarn if this results in an INTEGER_CST.
1285
1286 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1287
1288         * doc/install.texi: Update minimum GMP version.  Remove obsolete
1289         text in MPFR section.
1290
1291 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
1292
1293         * dwarf2out.c (class_scope_p): New static inline.
1294         (class_or_namespace_scope_p): Use it.
1295         (gen_variable_die): Use DW_TAG_member tag for static data member
1296         declarations instead of DW_TAG_variable.
1297
1298         PR middle-end/39573
1299         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
1300         variables.
1301
1302 2009-04-08  Richard Guenther  <rguenther@suse.de>
1303
1304         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
1305         valueize random data.
1306
1307 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
1308
1309         * config.gcc (aix tm_file):  Add aix-stdint.h.
1310         (aix tm clause use_gcc_stdint):  Set to wrap.
1311         * config/rs6000/aix-stdint.h:  New file.
1312         
1313 2009-04-08  Richard Guenther  <rguenther@suse.de>
1314
1315         PR middle-end/36291
1316         * tree-dfa.c (add_referenced_var): Do not recurse into
1317         global initializers.
1318         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
1319         exposed variables.
1320         (fold_const_aggregate_ref): Likewise.
1321
1322 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
1323
1324         * recog.c (ordered_comparison_operator): New.
1325         * gensupport.c (std_preds): Add it.
1326         * doc/md.texi (Machine-Independent Predicates): Document it.
1327
1328 2009-04-08  Jan Hubicka  <jh@suse.cz>
1329
1330         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
1331         * function.h (rtl_eh): Remove exception_handler_label_map.
1332         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
1333         remove_exception_handler_label, for_each_eh_label_1): Remove.
1334         (rtl_remove_unreachable_regions): Remove.
1335         (convert_from_eh_region_ranges): Do not remove unreachable regions.
1336         (find_exception_handler_labels): Don't build the hashtable.
1337         (maybe_remove_eh_handler): Remove.
1338         (for_each_eh_label): Rewrite to walk the tree.
1339         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
1340         * except.h (maybe_remove_eh_handler): Remove.
1341         * passes.c (init_optimization_passes): Schedule second EH cleanup
1342         before out-of-ssa.
1343         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
1344         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
1345
1346 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
1347
1348         * genoutput.c (validate_optab_operands): New.
1349         (gen_insn, gen_expand): Call it.
1350
1351         * genflags.c (gen_insn): Detect misused iterators.
1352         (main): Pass line_no to gen_insn, exit with status 1 on error.
1353
1354         * genextract.c (line_no): Make global.
1355         (VEC_safe_set_locstr): Change assertion to error message.
1356         (main): Exit with status 1 on error.
1357
1358 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
1359
1360         PR c/39614
1361         PR c/39673
1362         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
1363         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
1364         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
1365         * c-convert.c (convert): Do not call fold on results of conversion
1366         functions when the result is a C_MAYBE_CONST_EXPR.
1367         * c-parser.c (c_parser_postfix_expression): Do not fold condition
1368         of __builtin_choose_expr.
1369         * c-typeck.c (remove_c_maybe_const_expr): New.
1370         (build_unary_op, build_conditional_expr, build_compound_expr,
1371         build_binary_op, c_objc_common_truthvalue_conversion): Call
1372         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
1373         integer operands.
1374
1375 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
1376
1377         * fold-const.c (const_binop): Combine two VECTOR_CST under operation 
1378         CODE to produce a new one. Add a prototype to use fold_convert_const
1379
1380 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
1381
1382         PR bootstrap/39660
1383         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
1384         mix declarations and code.
1385
1386 2009-04-08  Ben Elliston  <bje@au.ibm.com>
1387
1388         * gcc.c: Replace `CC' with `GCC' throughout.
1389
1390 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1391
1392         * doc/invoke.texi: Document Atom support.
1393
1394 2009-04-07  Jason Merrill  <jason@redhat.com>
1395
1396         PR c++/25185
1397         * c-common.h, c-common.c: Add flag_pretty_templates.
1398         * c-opts.c (c_common_handle_option): Set it.
1399         * c.opt: Add -fno-pretty-templates.
1400         * doc/invoke.texi (C++ Dialect Options): Likewise.
1401
1402 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
1403
1404         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
1405         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
1406         (ia64_expand_builtin): Likewise.
1407
1408 2009-04-07  Martin Jambor  <mjambor@suse.cz>
1409
1410         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
1411         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
1412         ADDR_EXPRS are include too.
1413
1414 2009-04-07  Richard Guenther  <rguenther@suse.de>
1415
1416         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
1417         decls are only used if passes as parameters or if they are
1418         local statics and the call is not to a builtin.
1419         (call_may_clobber_ref_p_1): Likewise.
1420
1421 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1422
1423         * expr.c (do_store_flag): Remove last argument.  Simplify code
1424         to avoid duplication of tests already done by can_compare_p.
1425         (expand_expr_real_1): Adjust caller.
1426
1427 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1428
1429         * optabs.c (can_compare_p): Test the predicate of a
1430         cbranch and cstore pattern.
1431
1432 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1433
1434         * expr.c (convert_move): Use emit_store_flag instead of
1435         "emulating" it.
1436
1437 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1438
1439         * config/i386/i386.c (ix86_compare_emitted): Remove.
1440         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
1441         ix86_compare_op0 like ix86_compare_emitted used to be handled.
1442         * config/i386/i386.h (ix86_compare_emitted): Remove.
1443         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
1444         instead of ix86_compare_emitted.
1445         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
1446
1447 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
1448
1449         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
1450         Add t-sysroot-suffix to tmake_file.
1451         * config/print-sysroot-suffix.sh: New file.
1452         * config/t-sysroot-suffix: New file.
1453
1454 2009-04-07  Ben Elliston  <bje@au.ibm.com>
1455
1456         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
1457         as the latter produces a warning when the target does not support
1458         infinity.
1459
1460 2009-04-07  Ben Elliston  <bje@au.ibm.com>
1461
1462         * dfp.c: Replace type punning assignments with memcpy throughout.
1463         * Makefile.in (dfp.o-warn): Remove.
1464         
1465 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
1466
1467         PR target/39634
1468         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
1469         Include soft-fp/t-softfp after rs6000/t-linux64.
1470
1471 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1472
1473         * stor-layout.c (set_sizetype): Use the full precision of their
1474         machine mode for bitsize types.
1475
1476 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
1477
1478         * config/i386/i386.md: Revert 2 accidental checkins.
1479
1480 2009-04-06  Joey Ye  <joey.ye@intel.com>
1481             Xuepeng Guo <xuepeng.guo@intel.com>
1482             H.J. Lu  <hongjiu.lu@intel.com>
1483
1484         Atom pipeline model, tuning and insn selection.
1485         * config.gcc (atom): Add atom config options and target.
1486
1487         * config/i386/atom.md: New.
1488
1489         * config/i386/i386.c (atom_cost): New cost.
1490         (m_ATOM): New macro flag.
1491         (initial_ix86_tune_features): Set m_ATOM.
1492         (x86_accumulate_outgoing_args): Likewise.
1493         (x86_arch_always_fancy_math_387): Likewise.
1494         (processor_target): Add Atom cost.
1495         (cpu_names): Add Atom cpu name.
1496         (override_options): Set Atom ISA.
1497         (ix86_issue_rate): New case PROCESSOR_ATOM.
1498         (ix86_adjust_cost): Likewise.
1499
1500         * config/i386/i386.h (TARGET_ATOM): New target macro.
1501         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
1502         (TARGET_OPT_AGU): New target option.
1503         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
1504         (processor_type): Add PROCESSOR_ATOM.
1505
1506         * config/i386/i386.md (cpu): Add new value "atom".
1507         (use_carry, movu): New attr.
1508         (atom.md): Include atom.md.
1509         (adddi3_carry_rex64): Set attr "use_carry".
1510         (addqi3_carry): Likewise.
1511         (addhi3_carry): Likewise.
1512         (addsi3_carry): Likewise.
1513         (*addsi3_carry_zext): Likewise.
1514         (subdi3_carry_rex64): Likewise.
1515         (subqi3_carry): Likewise.
1516         (subhi3_carry): Likewise.
1517         (subsi3_carry): Likewise.
1518         (x86_movdicc_0_m1_rex64): Likewise.
1519         (*x86_movdicc_0_m1_se): Likewise.
1520         (x86_movsicc_0_m1): Likewise.
1521         (*x86_movsicc_0_m1_se): Likewise.
1522         (*adddi_1_rex64): Emit add insn as much as possible.
1523         (*addsi_1): Likewise.
1524         (return_internal): Set atom_unit.
1525         (return_internal_long): Likewise.
1526         (return_pop_internal): Likewise.
1527         (*rcpsf2_sse): Set atom_sse_attr attr.
1528         (*qrt<mode>2_sse): Likewise.
1529         (*prefetch_sse): Likewise.
1530
1531         * config/i386/i386-c.c (ix86_target_macros_internal): New case
1532         PROCESSOR_ATOM.
1533         (ix86_target_macros_internal): Likewise.
1534
1535         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
1536         (*prefetch_sse_rex): Likewise.
1537         (sse_rcpv4sf2): Likewise.
1538         (sse_vmrcpv4sf2): Likewise.
1539         (sse_sqrtv4sf2): Likewise.
1540         (<sse>_vmsqrt<mode>2): Likewise.
1541         (sse_ldmxcsr): Likewise.
1542         (sse_stmxcsr): Likewise.
1543         (*sse_sfence): Likewise.
1544         (sse2_clflush): Likewise.
1545         (*sse2_mfence): Likewise.
1546         (*sse2_lfence): Likewise.
1547         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
1548         (<sse>_movup<ssemodesuffixf2c>): Likewise.
1549         (avx_movdqu<avxmodesuffix>): Likewise.
1550         (avx_lddqu<avxmodesuffix>): Likewise.
1551         (sse2_movntv2di): Change attr "type" to "ssemov".
1552         (sse2_movntsi): Likewise.
1553         (rsqrtv8sf2): Change attr "type" to "sseadd".
1554         (sse3_addsubv2df3): Set attr "atom_unit".
1555         (sse3_h<plusminus_insn>v4sf3): Likewise.
1556         (*sse2_pmaddwd): Likewise.
1557         (*vec_extractv2di_1_rex64): Likewise.
1558         (*vec_extractv2di_1_avx): Likewise.
1559         (sse2_psadbw): Likewise.
1560         (ssse3_phaddwv8hi3): Likewise.
1561         (ssse3_phaddwv4hi3): Likewise.
1562         (ssse3_phadddv4si3): Likewise.
1563         (ssse3_phadddv2si3): Likewise.
1564         (ssse3_phaddswv8hi3): Likewise.
1565         (ssse3_phaddswv4hi3): Likewise.
1566         (ssse3_phsubwv8hi3): Likewise.
1567         (ssse3_phsubwv4hi3): Likewise.
1568         (ssse3_phsubdv4si3): Likewise.
1569         (ssse3_phsubdv2si3): Likewise.
1570         (ssse3_phsubswv8hi3): Likewise.
1571         (ssse3_phsubswv4hi3): Likewise.
1572         (ssse3_pmaddubsw128): Likewise.
1573         (sse3_pmaddubsw: Likewise.
1574         (ssse3_palignrti): Likewise.
1575         (ssse3_palignrdi): Likewise.
1576
1577 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
1578
1579         * doc/install.texi (Specific): Fix two cross-references to MinGW.
1580
1581 2009-04-06  Richard Guenther  <rguenther@suse.de>
1582
1583         PR tree-optimization/28868
1584         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
1585         of which PHI results we inserted.
1586         (insert_into_preds_of_block): Record inserted PHIs.
1587         (eliminate): Eliminate redundant PHI nodes.
1588         (init_pre): Init inserted_phi_names.
1589
1590 2009-04-06  Richard Guenther  <rguenther@suse.de>
1591
1592         PR tree-optimization/39643
1593         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
1594         IMAGPART_EXPRs of complex constants.
1595         (execute_fold_all_builtins): If we folded a call queue
1596         TODO_update_address_taken.
1597
1598 2009-04-06  Jan Hubicka  <jh@suse.cz>
1599
1600         PR middle-end/39659
1601         * except.c (remove_unreachable_regions): Propagate may_contain_throw
1602         flag.
1603
1604 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
1605
1606         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
1607         delay slot.
1608         (ic_invalidate_array): Likewise.
1609
1610 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
1611
1612         * calls.c (emit_library_call_value_1): Fix a problem with parameter
1613         alignment for library calls.
1614
1615 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
1616
1617         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
1618         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
1619         * config/i386/mingw-stdint.h:  New file.
1620
1621 2009-04-05  Richard Guenther  <rguenther@suse.de>
1622
1623         PR tree-optimization/39648
1624         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
1625         our &A vs. &A[0] IL deficiencies.
1626
1627 2009-04-04  Jan Hubicka  <jh@suse.cz>
1628
1629         * except.c (sjlj_find_directly_reachable_regions): Be ready for
1630         removed toplevel regions.
1631         (sjlj_mark_call_sites): Likewise.
1632
1633 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
1634
1635         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
1636         (cygwin tm clause use_gcc_stdint):  Set to wrap.
1637         * config/i386/cygwin-stdint.h:  New file.
1638
1639 2009-04-04  Richard Guenther  <rguenther@suse.de>
1640
1641         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
1642         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
1643         single-argument PHIs if we are in loop-closed SSA form.
1644         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
1645         for the pre-condition.
1646         (slpeel_tree_peel_loop_to_edge): Likewise.
1647         (vect_build_loop_niters): Take an optional sequence to append stmts.
1648         (vect_generate_tmps_on_preheader): Likewise.
1649         (vect_do_peeling_for_loop_bound): Take extra guards for the
1650         pre-condition.
1651         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
1652         the cost model check.
1653         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
1654         guards if we are going to peel.  Do not apply versioning in that case.
1655         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
1656         (vect_do_peeling_for_loop_bound): Likewise.
1657         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
1658         loop bound only record extra pre-conditions, do not apply loop
1659         versioning.
1660
1661 2009-04-04  Richard Guenther  <rguenther@suse.de>
1662
1663         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
1664         renaming code.
1665
1666 2009-04-04  Jan Hubicka  <jh@suse.cz>
1667
1668         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
1669         last_basic_block for size of bb->index indexed array.
1670         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
1671         compute_out, link_btr_uses, build_btr_def_use_webs,
1672         build_btr_def_use_webs, migrate_btr_defs): Likewise.
1673
1674 2009-04-04  Jan Hubicka  <jh@suse.cz>
1675
1676         * except.c (remove_eh_handler_and_replace): Break out from ...
1677         (remove_eh_handler): ... here.
1678         (bring_to_root): New function.
1679         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
1680         handled ones, bring others to root of tree.
1681
1682 2009-04-04  Jan Hubicka  <jh@suse.cz>
1683
1684         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
1685         (all_phis_safe_to_merge): New function.
1686         (update_info): New structure.
1687         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
1688         (cleanup_empty_eh): Update SSA if possible.
1689
1690 2009-04-04  Richard Guenther  <rguenther@suse.de>
1691
1692         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
1693         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
1694         (append_vuse): Likewise.
1695
1696 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
1697
1698         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
1699         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
1700         instead of REG_UNSAVED for DW_CFA_undefined.
1701         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
1702         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
1703         outermost frame.
1704
1705 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
1706
1707         PR target/39501
1708         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
1709         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
1710         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
1711
1712 2009-04-04  Richard Guenther  <rguenther@suse.de>
1713
1714         PR tree-optimization/8781
1715         PR tree-optimization/37892
1716         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
1717         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
1718         (valueize_refs): Call it for *& valueizations.
1719         (shared_reference_ops_from_ref): Rename to ...
1720         (valueize_shared_reference_ops_from_ref): ... this and valueize.
1721         (shared_reference_ops_from_call): Rename to ...
1722         (valueize_shared_reference_ops_from_call): ... this and valueize.
1723         (vn_reference_lookup): Update.
1724         (visit_reference_op_call): Likewise.
1725         * tree-ssa-pre.c (phi_translate_1): Fold *&.
1726         (eliminate): Value-replace the call address in call statements.
1727
1728 2009-04-04  Richard Guenther  <rguenther@suse.de>
1729
1730         PR tree-optimization/39636
1731         * tree-ssa-forwprop.c
1732         (forward_propagate_addr_into_variable_array_index): Check for
1733         GIMPLE_ASSIGN before accessing the rhs code.
1734
1735 2009-04-03  Jason Merrill  <jason@redhat.com>
1736
1737         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
1738
1739 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
1740
1741         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
1742         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
1743         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
1744         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
1745         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
1746         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
1747         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
1748         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
1749         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
1750         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
1751         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
1752         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
1753         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
1754         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
1755         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
1756         Use fr_reg_or_fp01_operand instead of fr_register_operand
1757
1758         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
1759         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
1760         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
1761
1762 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
1763
1764         PR rtl-optimization/39607
1765         PR rtl-optimization/39631
1766
1767         Revert:
1768         
1769         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1770         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
1771         instead of DF_LR_OUT.
1772         * ira-lives.c (process_bb_node_lives): Ditto.
1773         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
1774         instead of DF_LR_{OUT,IN}.
1775         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
1776         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
1777
1778 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
1779
1780         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
1781         (execute_lower_omp): Always run but take the short way out if -fopenmp
1782         is not given.
1783         (gate_lower_omp): Remove, forcing the pass manager to always run the
1784         pass and always set PROP_gimple_lomp.
1785         (pass_lower_omp): Remove gate function.
1786         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
1787         PROP_trees.  Instead, require it.
1788         * ipa-cp.c (pass_ipa_cp): Likewise.
1789         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
1790         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
1791         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
1792         and PROP_gimple_leh.
1793
1794 2009-04-03  Richard Guenther  <rguenther@suse.de>
1795
1796         PR middle-end/13146
1797         PR tree-optimization/23940
1798         PR tree-optimization/33237
1799         PR middle-end/33974
1800         PR middle-end/34093
1801         PR tree-optimization/36201
1802         PR tree-optimization/36230
1803         PR tree-optimization/38049
1804         PR tree-optimization/38207
1805         PR tree-optimization/38230
1806         PR tree-optimization/38301
1807         PR tree-optimization/38585
1808         PR middle-end/38895
1809         PR tree-optimization/38985
1810         PR tree-optimization/39299
1811         * tree-ssa-structalias.h: Remove.
1812         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
1813         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
1814         (struct vuse_element_d): Remove.
1815         (struct vuse_vec_d): Likewise.
1816         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
1817         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
1818         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
1819         VUSE_ELEMENT_VAR): Likewise.
1820         (struct voptype_d): Likewise.
1821         (NUM_VOP_FREE_BUCKETS): Likewise.
1822         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
1823         (struct stmt_operands_d): Remove.
1824         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
1825         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
1826         VDEF_NUM, VDEF_VECT): Likewise.
1827         (copy_virtual_operands): Remove.
1828         (operand_build_cmp): Likewise.
1829         (create_ssa_artificial_load_stmt): Likewise.
1830         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
1831         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
1832         vuse_index and mayuse_index members.  Pack and move done and iter_type
1833         members to the front.
1834         (SSA_OP_VMAYUSE): Remove.
1835         (SSA_OP_VIRTUAL_USES): Adjust.
1836         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
1837         (unlink_stmt_vdef): Declare.
1838         (add_to_addressable_set): Remove.
1839         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
1840         (vrp_visit_stmt): Likewise.
1841         * doc/tree-ssa.texi (Alias analysis): Update.
1842         * doc/invoke.texi (max-aliased-vops): Remove docs.
1843         (avg-aliased-vops): Likewise.
1844         * tree-into-ssa.c (syms_to_rename): Remove.
1845         (need_to_update_vops_p): Likewise.
1846         (need_to_initialize_update_ssa_p): Rename to ...
1847         (update_ssa_initialized_fn): ... this.  Track function we are
1848         initialized for.
1849         (symbol_marked_for_renaming): Simplify.
1850         (add_new_name_mapping): Do not set need_to_update_vops_p.
1851         (dump_currdefs): Use SYMS_TO_RENAME.
1852         (rewrite_update_stmt): Always walk all uses/defs.
1853         (dump_update_ssa): Adjust.
1854         (init_update_ssa): Take function argument.  Track what we are
1855         initialized for.
1856         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
1857         (create_new_def_for): Initialize for cfun, assert we are initialized
1858         for cfun.
1859         (mark_sym_for_renaming): Simplify.
1860         (mark_set_for_renaming): Do not initialize update-ssa.
1861         (need_ssa_update_p): Simplify.  Take function argument.
1862         (name_mappings_registered_p): Assert we ask for the correct function.
1863         (name_registered_for_update_p): Likewise.
1864         (ssa_names_to_replace): Likewise.
1865         (release_ssa_name_after_update_ssa): Likewise.
1866         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
1867         (dump_decl_set): Do not print a newline.
1868         (debug_decl_set): Do it here.
1869         (dump_update_ssa): And here.
1870         * tree-ssa-loop-im.c (move_computations): Adjust.
1871         (movement_possibility): Likewise.
1872         (determine_max_movement): Likewise.
1873         (gather_mem_refs_stmt): Likewise.
1874         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
1875         or NAME_MEMORY_TAG.
1876         * tree-complex.c (update_all_vops): Remove.
1877         (expand_complex_move): Adjust.
1878         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
1879         Simplify test for memory referencing statement.  Exclude
1880         non-invariant ADDR_EXPRs.
1881         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
1882         * tree-loop-distribution.c (generate_memset_zero): Adjust.
1883         (rdg_flag_uses): Likewise.
1884         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
1885         related code.
1886         (tree_optimize_tail_calls_1): Also split the
1887         edge from the entry block if we have degenerate PHI nodes in
1888         the first basic block.
1889         * tree.c (init_ttree): Remove memory-tag related code.
1890         (tree_code_size): Likewise.
1891         (tree_node_structure): Likewise.
1892         (build7_stat): Re-write to be build6_stat.
1893         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
1894         (SSA_VAR_P): Adjust.
1895         (struct tree_memory_tag): Remove.
1896         (struct tree_memory_partition_tag): Likewise.
1897         (union tree_node): Adjust.
1898         (build7): Re-write to be build6.
1899         * tree-pass.h (pass_reset_cc_flags): Remove.
1900         (TODO_update_address_taken): New flag.
1901         (pass_simple_dse): Remove.
1902         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
1903         * params.h (MAX_ALIASED_VOPS): Remove.
1904         (AVG_ALIASED_VOPS): Likewise.
1905         * omp-low.c (expand_omp_taskreg): Update SSA form.
1906         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
1907         aliases the lhs in a copy stmt.
1908         * tree-ssa-dse.c (struct address_walk_data): Remove.
1909         (memory_ssa_name_same): Likewise.
1910         (memory_address_same): Likewise.
1911         (get_kill_of_stmt_lhs): Likewise.
1912         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
1913         unused stores.  Look through PHI nodes into post-dominated regions.
1914         (dse_optimize_stmt): Simplify.  Properly remove stores.
1915         (tree_ssa_dse): Compute dominators.
1916         (execute_simple_dse): Remove.
1917         (pass_simple_dse): Likewise.
1918         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
1919         gimple_loaded_syms and gimple_stored_syms computation.
1920         * toplev.c (dump_memory_report): Dump alias and pta stats.
1921         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
1922         (vn_reference_eq): Likewise.
1923         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
1924         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
1925         valueize_vuses): Remove.
1926         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
1927         (get_def_ref_stmt_vuse): ... this.
1928         (vn_reference_lookup_2): New function.
1929         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
1930         walking equivalent vuses.  Simplify.
1931         (vn_reference_lookup): Likewise.
1932         (vn_reference_insert): Likewise.
1933         (vn_reference_insert_pieces): Likewise.
1934         (visit_reference_op_call): Simplify.
1935         (visit_reference_op_load): Likewise.
1936         (visit_reference_op_store): Likewise.
1937         (init_scc_vn): Remove shared_lookup_vuses initialization.
1938         (free_scc_vn): Remove shared_lookup_vuses freeing.
1939         (sort_vuses, sort_vuses_heap): Remove.
1940         (get_ref_from_reference_ops): Export.
1941         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
1942         vector with single vuse pointer.
1943         (vn_reference_lookup_pieces, vn_reference_lookup,
1944         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
1945         (shared_vuses_from_stmt): Remove.
1946         (get_ref_from_reference_ops): Declare.
1947         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
1948         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1949         memory-tag related code.
1950         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
1951         (likely_value): Add comment, skip static-chain of call statements.
1952         (surely_varying_stmt_p): Adjust.
1953         (gimplify_and_update_call_from_tree): Likewise.
1954         (execute_fold_all_builtins): Do not rebuild alias info.
1955         (gimplify_and_update_call_from_tree): Properly update VOPs.
1956         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
1957         (copy_ref_info): Remove memory-tag related code.
1958         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
1959         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
1960         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
1961         computation.
1962         * tree-ssa-dom.c (gimple_p): Remove typedef.
1963         (eliminate_redundant_computations): Adjust.
1964         (record_equivalences_from_stmt): Likewise.
1965         (avail_expr_hash): Likewise.
1966         (avail_expr_eq): Likewise.
1967         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
1968         (stmt_makes_single_load): Likewise.
1969         (stmt_makes_single_store): Likewise.
1970         * tree-ssa-alias.c: Rewrite completely.
1971         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
1972         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
1973         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
1974         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
1975         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
1976         Remove public functions.
1977         (pass_reset_cc_flags): Remove.
1978         (pass_build_alias): Move ...
1979         * tree-ssa-structalias.c (pass_build_alias): ... here.
1980         * tree-ssa-alias.c (may_be_aliased): Move ...
1981         * tree-flow-inline.h (may_be_aliased): ... here.
1982         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
1983         count_uses_and_derefs): Move ...
1984         * gimple.c: ... here.
1985         * gimple.h (count_uses_and_derefs): Declare.
1986         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
1987         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
1988         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
1989         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
1990         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
1991         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
1992         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
1993         New functions.
1994         * tree-dfa.c (refs_may_alias_p): Move ...
1995         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
1996         * tree-ssa-alias.h: New file.
1997         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
1998         (statement_sink_location): Likewise.
1999         * opts.c (decode_options): Do not adjust max-aliased-vops or
2000         avg-aliased-vops values.
2001         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
2002         (TV_CALL_CLOBBER): Likewise.
2003         (TV_FLOW_SENSITIVE): Likewise.
2004         (TV_FLOW_INSENSITIVE): Likewise.
2005         (TV_MEMORY_PARTITIONING): Likewise.
2006         (TV_ALIAS_STMT_WALK): New timevar.
2007         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
2008         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
2009         (get_address_description): Remove memory-tag related code.
2010         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
2011         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
2012         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
2013         and immediate uses in statements.  Document.
2014         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
2015         (dump_symbols): Remove.
2016         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
2017         * alias.c (get_deref_alias_set): New function split out from ...
2018         (get_alias_set): ... here.
2019         * alias.h (get_deref_alias_set): Declare.
2020         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
2021         type parameter.  Remove restrict pointer handling.  Create a
2022         ref-all pointer in case type-based alias sets do not conflict.
2023         (vect_analyze_data_refs): Remove SMT related code.
2024         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
2025         (vectorizable_load): Likewise.
2026         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
2027         (DR_SYMBOL_TAG, DR_VOPS): Remove.
2028         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
2029         Ignore vops and SMTs.
2030         (dr_analyze_alias): Likewise..
2031         (free_data_ref): Likewise.
2032         (create_data_ref): Likewise.
2033         (analyze_all_data_dependences): Likewise.
2034         (get_references_in_stmt): Adjust.
2035         * tree-flow-inline.h (gimple_aliases_computed_p,
2036         gimple_addressable_vars, gimple_call_clobbered_vars,
2037         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
2038         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
2039         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
2040         gimple_mem_ref_stats): Remove.
2041         (gimple_vop): New function.
2042         (op_iter_next_use): Remove vuses and mayuses cases.
2043         (op_iter_next_def): Remove vdefs case.
2044         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
2045         (clear_and_done_ssa_iter): Do not set removed fields.
2046         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
2047         Assert we are not iterating over vuses or vdefs if not also
2048         iterating over uses or defs.
2049         (op_iter_init_use): Likewise.
2050         (op_iter_init_def): Likewise.
2051         (op_iter_next_vdef): Remove.
2052         (op_iter_next_mustdef): Likewise.
2053         (op_iter_init_vdef): Likewise.
2054         (compare_ssa_operands_equal): Likewise.
2055         (link_use_stmts_after): Handle vuse operand.
2056         (is_call_used): Use is_call_clobbered.
2057         (is_call_clobbered): Global variables are always call clobbered,
2058         query the call-clobbers bitmap.
2059         (mark_call_clobbered): Ignore global variables.
2060         (clear_call_clobbered): Likewise.
2061         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
2062         virtual operands sanity check.
2063         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
2064         Remove.
2065         (TARGET_MEM_REF): Remove TMR_TAG operand.
2066         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
2067         Remove call-clobber related code.
2068         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
2069         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
2070         partitions or escape reason.
2071         (get_single_def_stmt, get_single_def_stmt_from_phi,
2072         get_single_def_stmt_with_phi): Remove.
2073         (dump_referenced_vars): Tidy.
2074         (get_ref_base_and_extent): Allow bare decls.
2075         (collect_dfa_stats): Adjust.
2076         * graphite.c (rename_variables_in_stmt): Adjust.
2077         (graphite_copy_stmts_from_block): Likewise.
2078         (translate_clast): Likewise.
2079         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
2080         (EXPR_DIES): New.
2081         (translate_vuse_through_block): Use the oracle.
2082         (phi_translate_1): Adjust.
2083         (value_dies_in_block_x): Use the oracle.  Cache the outcome
2084         in EXPR_DIES.
2085         (valid_in_sets): Check if the VUSE for
2086         a REFERENCE is available.
2087         (eliminate): Do not remove stmts during elimination,
2088         instead queue and remove them afterwards.
2089         (do_pre): Do not rebuild alias info.
2090         (pass_pre): Run TODO_rebuild_alias before PRE.
2091         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
2092         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
2093         (mark_all_v_defs_stmt): Remove.
2094         (mark_all_v_defs_seq): Adjust.
2095         (sra_replace): Likewise.
2096         (scalarize_use): Likewise.
2097         (scalarize_copy): Likewise.
2098         (scalarize_init): Likewise.
2099         (scalarize_ldst): Likewise.
2100         (todoflags): Remove.
2101         (tree_sra): Do not rebuild alias info.
2102         (tree_sra_early): Adjust.
2103         (pass_sra): Run TODO_update_address_taken before SRA.
2104         * tree-predcom.c (set_alias_info): Remove.
2105         (prepare_initializers_chain): Do not call it.
2106         (mark_virtual_ops_for_renaming): Adjust.
2107         (mark_virtual_ops_for_renaming_list): Remove.
2108         (initialize_root_vars): Adjust.
2109         (initialize_root_vars_lm): Likewise.
2110         (prepare_initializers_chain): Likewise.
2111         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
2112         (may_propagate_copy_into_stmt): Likewise.
2113         (merge_alias_info): Do nothing for now.
2114         (propagate_tree_value_into_stmt): Adjust.
2115         (stmt_may_generate_copy): Likewise.
2116         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
2117         not mark symbols for renaming.
2118         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
2119         with the same statement, make sure to update the new pointed-to one.
2120         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
2121         call statements, do not mark symbols for renaming.
2122         (mark_operand_necessary): Dump something.
2123         (ref_may_be_aliased): New function.
2124         (mark_aliased_reaching_defs_necessary_1): New helper function.
2125         (mark_aliased_reaching_defs_necessary): Likewise.
2126         (mark_all_reaching_defs_necessary_1): Likewise.
2127         (mark_all_reaching_defs_necessary): Likewise.
2128         (propagate_necessity): Do not process virtual PHIs.  For
2129         non-aliased loads mark all reaching definitions as necessary.
2130         For aliased loads and stores mark the immediate dominating
2131         aliased clobbers as necessary.
2132         (visited): New global static.
2133         (perform_tree_ssa_dce): Free visited bitmap after propagating
2134         necessity.
2135         (remove_dead_phis): Perform simple dead virtual PHI removal.
2136         (remove_dead_stmt): Properly unlink virtual operands when
2137         removing stores.
2138         (eliminate_unnecessary_stmts): Schedule PHI removal after
2139         stmt removal.
2140         * tree-ssa-ter.c (is_replaceable_p): Adjust.
2141         (process_replaceable): Likewise.
2142         (find_replaceable_in_bb): Likewise.
2143         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
2144         based on the single gimple vop.
2145         (verify_flow_insensitive_alias_info): Remove.
2146         (verify_flow_sensitive_alias_info): Likewise.
2147         (verify_call_clobbering): Likewise.
2148         (verify_memory_partitions): Likewise.
2149         (verify_alias_info): Likewise.
2150         (verify_ssa): Adjust..
2151         (execute_update_addresses_taken): Export.  Update SSA
2152         manually.  Optimize only when optimizing.  Use a local bitmap.
2153         (pass_update_address_taken): Remove TODO_update_ssa, add
2154         TODO_dump_func.
2155         (pass_update_address_taken): Just use TODO_update_address_taken.
2156         (init_tree_ssa): Do not initialize addressable_vars.
2157         (verify_ssa): Verify new VUSE / VDEF properties.
2158         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
2159         Do not call verify_alias_info.
2160         (delete_tree_ssa): Clear the VUSE, VDEF operands.
2161         Do not free the loaded and stored syms bitmaps.  Reset the escaped
2162         and callused solutions.  Do not free addressable_vars.
2163         Remove memory-tag related code.
2164         (warn_uninitialized_var): Aliases are always available.
2165         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
2166         * lambda-code.c (can_put_in_inner_loop): Adjust.
2167         (can_put_after_inner_loop): Likewise.
2168         (perfect_nestify): Likewise.
2169         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
2170         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
2171         (vectorizable_conversion): Do not mark symbols for renaming.
2172         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
2173         (expand_call_inline): Unlink the calls virtual operands before
2174         replacing it.
2175         (tree_function_versioning): Do not call update_ssa if we are not
2176         updating clones.  Simplify.
2177         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
2178         (propagate_with_phi): Likewise..
2179         * tree-outof-ssa.c (create_temp): Remove memory tag and call
2180         clobber code.  Assert we are not aliased or global.
2181         * tree-flow.h: Include tree-ssa-alias.h
2182         (enum escape_type): Remove.
2183         (struct mem_sym_stats_d): Likewise.
2184         (struct mem_ref_stats_d): Likewise.
2185         (struct gimple_df): Add vop member.  Remove global_var,
2186         call_clobbered_vars, call_used_vars, addressable_vars,
2187         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
2188         escaped and callused members.
2189         (struct ptr_info_def): Remove all members, add points-to solution
2190         member pt.
2191         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
2192         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
2193         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
2194         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
2195         (tree-ssa-alias.o): Likewise.
2196         (toplev.o): Add tree-ssa-alias.h
2197         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
2198         * gimple.c (gimple_set_bb): Fix off-by-one error.
2199         (is_gimple_reg): Do not handle memory tags.
2200         (gimple_copy): Also copy virtual operands.
2201         Delay updating the statement.  Do not reset loaded and stored syms.
2202         (gimple_set_stored_syms): Remove.
2203         (gimple_set_loaded_syms): Likewise.
2204         (gimple_call_copy_skip_args): Copy the virtual operands
2205         and mark the new statement modified.
2206         * tree-ssa-structalias.c (may_alias_p): Remove.
2207         (set_uids_in_ptset): Take the alias set to prune with as
2208         parameter.  Fold in the alias test of may_alias_p.
2209         (compute_points_to_sets): Compute whether a ptr is dereferenced
2210         in a local sbitmap.
2211         (process_constraint): Deal with &ANYTHING on the lhs, reject all
2212         other ADDRESSOF constraints on the lhs.
2213         (get_constraint_for_component_ref): Assert that we don't get
2214         ADDRESSOF constraints from the base of the reference.
2215         Properly generate UNKNOWN_OFFSET for DEREF if needed.
2216         (struct variable_info): Remove collapsed_to member.
2217         (get_varinfo_fc): Remove.
2218         (new_var_info): Do not set collapsed_to.
2219         (dump_constraint): Do not follow cycles.
2220         (dump_constraint_graph): Likewise.
2221         (build_pred_graph): Likewise.
2222         (build_succ_graph): Likewise.
2223         (rewrite_constraints): Likewise.
2224         (do_simple_structure_copy): Remove.
2225         (do_rhs_deref_structure_copy): Remove.
2226         (do_lhs_deref_structure_copy): Remove.
2227         (collapse_rest_of_var): Remove.
2228         (do_structure_copy): Re-implement.
2229         (pta_stats): New global variable.
2230         (dump_pta_stats): New function.
2231         (struct constraint_expr): Make offset signed.
2232         (UNKNOWN_OFFSET): Define special value.
2233         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
2234         (solution_set_expand): New helper function split out from ...
2235         (do_sd_constraint): ... here.
2236         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
2237         (do_ds_constraint): Likewise.
2238         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
2239         and CALLUSED = *CALLUSED.
2240         (set_union_with_increment): Make inc argument signed.
2241         (type_safe): Remove.
2242         (get_constraint_for_ptr_offset): Handle unknown and negative
2243         constant offsets.
2244         (first_vi_for_offset): Handle offsets before start.  Bail
2245         out early for offsets beyond the variable extent.
2246         (first_or_preceding_vi_for_offset): New function.
2247         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
2248         Together with ESCAPED = *ESCAPED this properly computes reachability.
2249         (find_what_var_points_to): New function.
2250         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
2251         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
2252         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
2253         pt_solutions_intersect): New functions.
2254         (compute_call_used_vars): Remove.
2255         (compute_may_aliases): New main entry into PTA computation.
2256         * gimple.h (gimple_p): New typedef.
2257         (struct gimple_statement_base): Remove references_memory_p.
2258         (struct gimple_statement_with_memory_ops_base): Remove
2259         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
2260         members.
2261         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
2262         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
2263         gimple_set_references_memory): Remove.
2264         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
2265         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
2266         New functions.
2267         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
2268         (verify_expr): Allow RESULT_DECL.
2269         (gimple_duplicate_bb): Do not copy virtual operands.
2270         (gimple_duplicate_sese_region): Adjust.
2271         (gimple_duplicate_sese_tail): Likewise.
2272         (mark_virtual_ops_in_region): Remove.
2273         (move_sese_region_to_fn): Do not call it.
2274         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
2275         and pass_simple_dse.
2276         (execute_function_todo): Handle TODO_update_address_taken,
2277         call execute_update_addresses_taken for TODO_rebuild_alias.
2278         (execute_todo): Adjust.
2279         (execute_one_pass): Init dump files early.
2280         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
2281         call-clobbered.
2282         (create_general_new_stmt): Clear vops.
2283         * tree-ssa-reassoc.c (get_rank): Adjust.
2284         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
2285         symbols for renaming.
2286         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
2287         (PARAM_AVG_ALIASED_VOPS): Likewise.
2288         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
2289         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
2290         * tree-ssa-operands.c: Simplify for new virtual operand representation.
2291         (operand_build_cmp, copy_virtual_operands,
2292         create_ssa_artificial_load_stmt, add_to_addressable_set,
2293         gimple_add_to_addresses_taken): Remove public functions.
2294         (unlink_stmt_vdef): New function.
2295
2296 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
2297
2298         * config.gcc (powerpc-*-linux*): Merge variants.
2299
2300 2009-04-02  Chao-ying Fu  <fu@mips.com>
2301             James Grosbach <james.grosbach@microchip.com>
2302
2303         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
2304         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
2305         cop0_sp_offset.
2306         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
2307         keep_interrupts_masked_p, use_debug_exception_return_p.
2308         (mips_attribute_table): Add interrupt, use_shadow_register_set,
2309         keep_interrupts_masked, use_debug_exception_return.
2310         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
2311         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
2312         New functions.
2313         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
2314         (mips_print_operand): Process COP0 registers to print $0 .. $31
2315         correctly for GAS to process.
2316         (mips_interrupt_extra_call_saved_reg_p): New function.
2317         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
2318         extra registers.
2319         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
2320         (mips_compute_frame_info): Add supports for interrupt context that
2321         includes doubleword accumulators and COP0 registers.
2322         (mips_for_each_saved_acc): New function.
2323         (mips_for_each_saved_gpr_and_fpr): Change the function name from
2324         mips_for_each_saved_reg.
2325         (mips_save_reg): Save accumulators.
2326         (mips_kernel_reg_p): A new for_each_rtx callback.
2327         (mips_expand_prologue): Support interrupt handlers.
2328         (mips_restore_reg): Restore accumulators.
2329         (mips_expand_epilogue): Support interrupt handlers.
2330         (mips_can_use_return_insn): Return false for interrupt handlers.
2331         (mips_epilogue_uses): New function.
2332         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
2333         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
2334         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
2335         cop0_move): New instructions.
2336         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
2337         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
2338         defines.
2339         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
2340         New defines.
2341         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
2342         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
2343         interrupt handlers, we use K0 as the temporary register.
2344         (EPILOGUE_USES): Change to a function call.
2345         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
2346         handlers, we use K0 as the temporary register.
2347         
2348         * doc/extend.texi (Function Attributes): Document interrupt,
2349         use_shadow_register_set, keep_interrupts_masked,
2350         use_debug_exception_return for MIPS attributes.
2351
2352 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
2353
2354         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
2355         Remove a number of t-files from tmake_file.
2356         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
2357         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
2358         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2359         target_prototype, not TARGET_PROTOTYPE.
2360         (LINK_OS_GNU_SPEC): Define.
2361         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
2362         and darwin-ldoubdle.c.
2363
2364 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2365
2366         PR driver/39293
2367         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
2368         (cpp_options): Ditto.
2369         (default_compilers): Ditto.
2370         (display_help): Ditto.
2371         (process_command): Ditto.
2372         (do_spec_1): Ditto.
2373         (set_input): Use lbasename instead of duplicate code.
2374         (save_temps_prefix): New static for -save-temps=obj.
2375         (save_temps_length): Ditto.
2376         
2377         * doc/invoke.texi (-save-temps=obj): Document new variant to
2378         -save-temps switch.
2379
2380 2009-04-02  Jeff Law  <law@redhat.com>
2381
2382         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
2383         variable.
2384
2385 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2386
2387         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
2388         * configure: Regenerated.
2389
2390 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2391
2392         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
2393         share the argument list.
2394
2395 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2396
2397         Merge
2398
2399         2009-02-12  Diego Novillo  <dnovillo@google.com>
2400
2401         * varpool.c (debug_varpool): New.
2402         * cgraph.h (debug_varpool): Declare.
2403
2404 2009-04-02  Jan Hubicka  <jh@suse.cz>
2405
2406         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
2407         pass.
2408
2409 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2410
2411         * config/i386/i386.c (ix86_abi): Move initialization to ...
2412         (override_options): Here.
2413
2414 2009-04-02  Christian Bruel  <christian.bruel@st.com>
2415
2416         * config/sh/sh.c (sh_dwarf_register_span): New function.
2417         (TARGET_DWARF_REGISTER_SPAN): Define.
2418         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2419         
2420 2009-04-02  Ira Rosen  <irar@il.ibm.com>
2421
2422         PR tree-optimization/39595
2423         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
2424         interleaved loads group is not  greater than the SLP group size.
2425
2426 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2427
2428         * builtins.c (is_builtin_name): New.
2429         (called_as_built_in): Use is_builtin_name.
2430         * tree.h (is_builtin_name): New.
2431         * varasm.c (incorporeal_function_p): Use is_builtin_name
2432
2433 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
2434
2435         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
2436
2437 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
2438
2439         PR c++/26693
2440         * c-decl.c (clone_underlying_type): Move this ...
2441         * c-common.c (set_underlying_type): ... here.
2442         Also, make sure the function properly sets TYPE_STUB_DECL() on
2443         the newly created typedef variant type.
2444         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
2445         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
2446         points.
2447
2448 2009-04-02  Richard Guenther  <rguenther@suse.de>
2449
2450         PR tree-optimization/37221
2451         * tree-flow.h (degenerate_phi_result): Declare.
2452         * tree-ssa-dom.c (degenerate_phi_result): Export.
2453         * tree-scalar-evolution.c (analyze_initial_condition): If
2454         the initial condition is defined by a degenerate PHI node
2455         use the degenerate value.
2456
2457 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
2458
2459         PR rtl-optimization/39588
2460         * combine.c (merge_outer_ops): Do not set the constant when this
2461         is not necessary.
2462         (simplify_shift_const_1): Do not modify it either in this case.
2463
2464 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
2465
2466         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
2467         tuning is deprecated if -mtune value is set to an Itanium1 variant.
2468
2469 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
2470
2471         PR c/29027
2472         * c-lex.c (interpret_float): Default (no suffix) is double.
2473
2474 2009-04-1  Xinliang David Li  <davidxl@google.com>
2475
2476         * config/i386/i386.c (legitimate_constant_p): Recognize
2477         all one vector constant.
2478
2479 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2480
2481         * gcc/config/vax/vax.c: Add #includes to silence warnings.
2482         Change #include order to silence two warnings.
2483
2484 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2485
2486         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
2487         (ASM_SPEC): Pass -k to the assembler for PIC code.
2488
2489 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2490
2491         * gcc/config.gcc: Add vax-*-linux* to the switch.
2492         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
2493         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
2494
2495 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2496
2497         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
2498         Use predicate macros instead of GET_CODE() == foo.
2499         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
2500         ashlsi3, rotrsi3, <unnamed>): Likewise.
2501
2502 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2503
2504         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
2505         jbbccihi, jbbccisi): Remova trailing whitespace.
2506         * gcc/config/vax/constraints.md: Likewise.
2507         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2508         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
2509         * gcc/config/vax/predicates.md: Likewise.
2510         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
2511         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
2512         * gcc/config/vax/vax.h: Likewise.
2513         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
2514
2515 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2516
2517         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
2518         (indirectable_address_p, adjacent_operands_p): Add spaces around
2519         braces.
2520         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
2521
2522 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2523
2524         * gcc/config/vax/vax.c (legitimate_constant_address_p,
2525         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
2526         index_term_p, reg_plus_index_p, legitimate_address_p,
2527         vax_mode_dependent_address_p): Update comments to match functions
2528         modified by the recent int->bool conversion.
2529
2530 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2531
2532         * gcc/config/vax/builtins.md: Update copyright message.
2533         * gcc/config/vax/constraints.md: Likewise.
2534         * gcc/config/vax/netbsd-elf.h: Likewise.
2535         * gcc/config/vax/predicates.md: Likewise.
2536         * gcc/config/vax/vax-protos.h: Likewise.
2537         * gcc/config/vax/vax.c: Likewise.
2538         * gcc/config/vax/vax.h: Likewise.
2539         * gcc/config/vax/vax.md: Likewise.
2540         * gcc/config/vax/vax.opt: Likewise.
2541
2542 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2543
2544         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
2545         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
2546         * gcc/config/vax/constraints.md (B, R): Likewise.
2547         * gcc/config/vax/predicates.md (external_memory_operand,
2548         nonimmediate_addsub_di_operand): Likewise.
2549         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
2550         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
2551         untyped_call): Likewise.
2552
2553 2009-04-01  Matt Thomas <matt@3am-software.com>
2554
2555         * config/vax/predicates.md: New file.
2556         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
2557         external_const_operand, nonsymbolic_operand, external_memory_operand,
2558         indirect_memory_operand, indexed_memory_operand,
2559         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
2560         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
2561         predicate.
2562         * config/vax/constraints.md: New file.
2563         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
2564         New constraint.
2565         * config/vax/builtins.md: New file.
2566         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
2567         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
2568         jbbccisi): Define.
2569         * config/vax/vax.opt (mqmath): Add option.
2570         * config/vax/vax.md (isfx): Extend with DI.
2571         (VAXintQH, VAXintQHSD): Define.
2572         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
2573         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
2574         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
2575         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
2576         (movdi): Update constraints and use vax_output_int_move().
2577         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
2578         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
2579         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
2580         nonlocal_goto): New.
2581         (mov<mode>): Extend accepted operand types.
2582         (subdi3_old): Rename from subdi3, change update constraints and use
2583         a new implementation.
2584         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
2585         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
2586         MOVE_RATIO, CLEAR_RATIO): Define.
2587         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
2588         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
2589         (PRINT_OPERAND): Redefine using a function instead of inlined code.
2590         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
2591         (split_quadword_operands): Make static and really allow variable
2592         splitting.
2593         (print_operand_address): Update for PIC generation.
2594         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
2595         indexable_address_p, fixup_mathdi_operand,
2596         vax_expand_addsub_di_operands, adjacent_operands_p): New.
2597         (vax_float_literal, legitimate_constant_p,
2598         indirectable_constant_address_p, index_term_p,
2599         reg_plus_index_p): Return bool instead of int.
2600         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
2601         where needed.
2602         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
2603         generation.
2604         (vax_output_conditional_branch): Indent.
2605         (legitimate_constant_address_p, indirectable_constant_address_p,
2606         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
2607         vax_mode_dependent_address_p): Return bool instead of int, update for
2608         PIC generation.
2609         * config/vax/vax-protos.h (legitimate_constant_address_p,
2610         legitimate_constant_p, legitimate_address_p,
2611         vax_mode_dependent_address_p): Change declaration to bool.
2612         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
2613         vax_expand_addsub_di_operands, vax_output_int_subtract,
2614         vax_output_movmemsi): Declare.
2615         (split_quadword_operands, vax_float_literal): Delete declaration.
2616         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
2617         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
2618         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
2619         ASM_OUTPUT_DWARF_PCREL): Define.
2620         (ASM_SPEC): Change definition to allow PIC generation.
2621
2622 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
2623
2624         * doc/sourcebuild.texi: Update front-end requirements.
2625
2626 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2627
2628         PR target/39226
2629         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
2630         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
2631         (booldi3_internal3): Use boolean_or_operator instead of
2632         boolean_operator.
2633
2634 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
2635
2636         PR c/39605
2637         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
2638         declarator whose size is not an integer constant expression but
2639         folds to an integer constant, then treat it as a constant
2640         subsequently.
2641
2642 2009-04-01  Richard Guenther  <rguenther@suse.de>
2643
2644         * fold-const.c (fold_plusminus_mult_expr): Do not fold
2645         i * 4 + 2 to (i * 2 + 1) * 2.
2646
2647 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2648
2649         PR c/37772
2650         * c-parser.c (c_parser_asm_statement): Skip until close paren and
2651         return if c_parser_asm_string_literal returned NULL.
2652
2653 2009-04-01  Nick Clifton  <nickc@redhat.com>
2654
2655         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
2656         already defined.
2657         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
2658         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
2659         other typedefs to avoid conflicts with libgcc2.c.  Define labels
2660         to gain 16-bit bit-manipulation functions from libgcc2.c and then
2661         include it.
2662         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
2663         to gain 16-bit trapping arithmetic functions from libgcc2.c and
2664         then include it.
2665
2666 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
2667
2668         * varasm.c (default_function_rodata_section): Declare DOT as
2669         const char*.
2670
2671 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
2672             Andrey Galkin <agalkin@hypercom.com>
2673
2674         PR/39492
2675         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
2676         Make object_name unique for each process.
2677
2678 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2679
2680         PR other/39591
2681         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
2682         addressable variables in the parallel that could go out of scope while
2683         running queued tasks.
2684
2685 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
2686
2687         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
2688         (CASE_VALUES_THRESHOLD): Redefine.
2689         * config/avr/avr.c (avr_override_options): Remove initialization of
2690         avr_case_values_threshold variable.
2691         (avr_case_values_threshold): Remove variable. Add new function.
2692         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
2693         * config/avr/avr.opt (mno-tablejump): Remove option.
2694         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
2695
2696 2009-04-01  DJ Delorie  <dj@redhat.com>
2697
2698         * varasm.c (default_function_rodata_section): Don't assume
2699         anything about where the first '.' in the section name is.
2700
2701 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
2702
2703         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
2704         rs6000_emit_stack_tie.
2705
2706 2009-03-31  Ian Lance Taylor  <iant@google.com>
2707
2708         * tree-eh.c (tree_remove_unreachable_handlers): Compare
2709         gimple_code with GIMPLE_RESX, not RESX.
2710
2711 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2712
2713         * c-common.c (c_get_ident): New.
2714         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
2715
2716 2009-04-01  Ben Elliston  <bje@au.ibm.com>
2717
2718         * config/rs6000/sysv4.opt (msdata): Improve option description.
2719
2720 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
2721
2722         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
2723         (divdf3_internal_lat): Remove.
2724         (divxf3_internal_lat): Remove.
2725         (divxf3_internal_thr): Remove.
2726         (divxf): Use divxf3_internal.
2727         * config/ia64/div.md (divsf3_internal_lat): New.
2728         (divdf3_internal_lat): New.
2729         (divxf3_internal): New.
2730
2731 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2732
2733         PR c/448
2734         * Makefile.in (USE_GCC_STDINT): Define.
2735         (stmp-int-hdrs): Install stdint.h if applicable.
2736         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
2737         if known.
2738         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
2739         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
2740         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2741         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2742         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2743         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2744         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2745         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2746         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2747         (c_common_nodes_and_builtins): Initialize
2748         underlying_wchar_type_node.  Do not initialize
2749         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
2750         nodes for new types.
2751         (c_stddef_cpp_builtins): Define macros for new types.
2752         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
2753         Remove.
2754         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
2755         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
2756         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
2757         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
2758         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
2759         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
2760         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
2761         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
2762         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
2763         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
2764         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
2765         int16_type_node, int32_type_node, int64_type_node,
2766         uint8_type_node, uint16_type_node, c_uint32_type_node,
2767         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
2768         int_least32_type_node, int_least64_type_node,
2769         uint_least8_type_node, uint_least16_type_node,
2770         uint_least32_type_node, uint_least64_type_node,
2771         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
2772         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
2773         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
2774         uintptr_type_node): Define.
2775         * c-cppbuiltin.c (builtin_define_constants,
2776         builtin_define_type_minmax): New.
2777         (builtin_define_stdint_macros): Define more macros.
2778         (c_cpp_builtins): Define more limit macros.
2779         (type_suffix): New.
2780         (builtin_define_type_max): Define in terms of
2781         builtin_define_type_minmax.  Remove is_long parameter.  All
2782         callers changed.
2783         * config.gcc (use_gcc_stdint): Define.
2784         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
2785         Add newlib-stdint.h for generic targets.
2786         * config/glibc-stdint.h, config/newlib-stdint.h,
2787         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
2788         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
2789         * config/score/score.h (UINTPTR_TYPE): Define.
2790         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2791         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2792         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2793         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2794         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2795         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2796         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2797         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2798         * config/spu/spu.h (STDINT_LONG32): Define.
2799         * configure.ac (use_gcc_stdint): Substitute.
2800         * configure: Regenerate.
2801         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
2802         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
2803         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
2804         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
2805         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
2806         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
2807         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
2808         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
2809         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
2810         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
2811         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
2812         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
2813         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
2814         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
2815         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
2816         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
2817         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
2818         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
2819         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
2820         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
2821         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
2822         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
2823         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2824         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2825         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2826         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2827         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2828         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2829         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
2830
2831 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2832
2833         * loop-iv.c (suitable_set_for_replacement): Renamed from
2834         simplify_using_assignment; changed to return bool and to accept new
2835         args DEST and SRC.  Return true iff we find a source/destination pair
2836         that can be used to make a replacement, and fill SRC and DEST if so.
2837         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
2838         changed.
2839         (simplify_using_initial_values): Deal with altered regs here and track
2840         more precisely the effect they have on the validity of our expression.
2841
2842         * loop-iv.c (simplify_using_condition): A condition of the form
2843         (EQ REG CONST) can be used to simply make a substitution.
2844         (simplify_using_initial_values): Keep track of conditions we have seen
2845         and keep using them to simplify new expressions, while applying the
2846         same substitutions to them as to the expression.
2847
2848         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2849         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
2850         GEU/LTU reversed.
2851
2852         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
2853         changed.  Use this when trying to improve the upper bound.
2854         Generate the comparison by using simplify_gen_relational.
2855
2856         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
2857
2858         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
2859         functions.
2860         (simplify_using_assignment, simplify_using_initial_values): Call 
2861         replace_in_expr to make replacements.  Call replace_single_def_regs
2862         once on the initial version of the expression.
2863
2864 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2865
2866         PR target/27237
2867         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2868         
2869 2009-03-31  Richard Guenther  <rguenther@suse.de>
2870
2871         PR middle-end/31029
2872         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
2873         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
2874
2875 2009-03-31  Richard Guenther  <rguenther@suse.de>
2876
2877         * tree.h (div_if_zero_remainder): Declare.
2878         * fold-const.c (div_if_zero_remainder): Export.
2879         * tree-ssa-forwprop.c
2880         (forward_propagate_addr_into_variable_array_index): Handle
2881         constant array index addition outside of the variable index.
2882
2883 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2884
2885         PR target/39592
2886         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
2887         define_splits, floatunssi<mode>2): Require x87 conversions from
2888         DImode to be permitted.
2889
2890 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2891
2892         PR preprocessor/15638
2893         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
2894
2895 2009-03-31  Richard Guenther  <rguenther@suse.de>
2896
2897         PR middle-end/23401
2898         PR middle-end/27810
2899         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
2900         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
2901         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
2902         a separate statement.
2903         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
2904         (lookup_tmp_var): Likewise.
2905         (is_gimple_formal_tmp_or_call_rhs): Remove.
2906         (is_gimple_reg_or_call_rhs): Rename to ...
2907         (is_gimple_reg_rhs_or_call): ... this.
2908         (is_gimple_mem_or_call_rhs): Rename to ...
2909         (is_gimple_mem_rhs_or_call): ... this.
2910         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
2911         DECL_GIMPLE_REG_P only if is_formal is true.
2912         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
2913         for non-proper post-modify expression gimplification.
2914         (gimplify_self_mod_expr): For post-modify expressions gimplify
2915         the lvalue to a minimal lvalue.
2916         (rhs_predicate_for): Remove formal temp case.
2917         (gimplify_modify_expr_rhs): Likewise.
2918         (gimplify_addr_expr): Use is_gimple_reg.
2919         (gimplify_expr): Remove formal temp cases.
2920         (gimple_regimplify_operands): Likewise.
2921         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
2922         and FILTER_EXPR like constants.
2923         * gimple.c (walk_gimple_op): Fix val_only initialization, use
2924         is_gimple_reg.
2925         (is_gimple_formal_tmp_rhs): Remove.
2926         (is_gimple_reg_rhs): Remove special casing.
2927         (is_gimple_mem_rhs): Fix.
2928         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
2929         (is_gimple_formal_tmp_var): Remove.
2930         (is_gimple_formal_tmp_reg): Likewise.
2931         (is_gimple_min_lval): Allow invariant component ref parts.
2932         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
2933         is_gimple_formal_tmp_reg): Remove declarations.
2934         * tree-cfg.c (verify_expr): Verify that variables with address
2935         taken do not have DECL_GIMPLE_REG_P set.
2936         * tree-mudflap.c (mf_build_check_statement_for): Use
2937         force_gimple_operand instead of gimplify_expr.
2938
2939 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
2940
2941         * modulo-sched.c (sms_schedule_by_order): Pass the actual
2942         schedulable rows to compute_split_row.
2943
2944 2009-03-31  Ben Elliston  <bje@au.ibm.com>
2945
2946         PR target/31635
2947         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
2948         OPT_mvrsave.
2949
2950 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2951
2952         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
2953         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
2954         * configure: Regenerate.
2955         * config.in: Regenerate.
2956         * config/rs6000/rs6000.opt (mtls-markers): Add.
2957         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
2958         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
2959         (tls_ld_aix, tls_ld_sysv): Likewise.
2960         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
2961         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
2962
2963 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2964
2965         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
2966
2967 2009-03-30  Jan Hubicka  <jh@suse.cz>
2968
2969         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
2970         out of RESX.
2971         (tree_remove_unreachable_handlers): Cleanup EH predecestor
2972         detection and label handling.
2973
2974 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2975
2976         * ira-int.h (ira_allocno): Rename left_conflicts_num to
2977         left_conflicts_size.
2978         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
2979         ALLOCNO_LEFT_CONFLICTS_SIZE.
2980
2981         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
2982         remove_allocno_from_bucket_and_push,
2983         allocno_spill_priority_compare, push_allocnos_to_stack,
2984         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2985         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
2986         (setup_allocno_left_conflicts_num): Ditto.  Rename to
2987         setup_allocno_left_conflicts_size.
2988         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2989         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
2990         setup_allocno_left_conflicts_size instead of
2991         setup_allocno_left_conflicts_num.
2992
2993         * ira-build.c (ira_create_allocno): Use
2994         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
2995         ALLOCNO_LEFT_CONFLICTS_NUM.
2996                 
2997 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2998
2999         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
3000         instead of DF_LR_OUT.
3001
3002         * ira-lives.c (process_bb_node_lives): Ditto.
3003
3004         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
3005         instead of DF_LR_{OUT,IN}.
3006
3007         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
3008
3009         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
3010
3011 2009-03-30  Jan Hubicka  <jh@suse.cz>
3012
3013         * except.c (label_to_region_map): Fix thinko.
3014
3015 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
3016
3017         PR middle-end/38237
3018         * tree.h (tree_find_value): New declaration.
3019         * tree.c (tree_find_value): New function.
3020         * varasm.c (assemble_external): Avoid duplicate entries on lists.
3021
3022 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
3023
3024         PR debug/39563
3025         * c-decl.c (struct c_binding): Add locus field.
3026         (bind): Add locus argument, set locus field from it.
3027         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
3028         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
3029         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
3030         implicitly_declare, undeclared_variable, lookup_label,
3031         declare_label, c_make_fname_decl, c_builtin_function,
3032         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
3033         bind callers.
3034
3035 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
3036
3037         PR target/38781
3038         * config/i386/i386.c (classify_argument): Check total size of
3039         structure.
3040
3041 2009-03-30  Martin Jambor  <mjambor@suse.cz>
3042
3043         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
3044         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
3045         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
3046         respectively.
3047
3048         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
3049         seen_variable_array_ref while also traversing a union.
3050
3051         * tree-inline.c (optimize_inline_calls): Do not call
3052         cgraph_node_remove_callees.
3053         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
3054         (pass_remove_cgraph_callee_edges): New variable.
3055         * passes.c (init_optimization_passes): Add
3056         pass_remove_cgraph_callee_edges after early inlining and before all
3057         late intraprocedural passes.
3058
3059         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
3060
3061 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3062
3063         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
3064         Fix typos in names.
3065
3066 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3067
3068         * combine.c (simplify_comparison): Use have_insn_for.
3069         * dojump.c (do_jump): Likewise.
3070
3071 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3072
3073         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
3074         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
3075         sparc_compare_op0 like sparc_compare_emitted used to be handled.
3076         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
3077         instead of sparc_compare_emitted.
3078         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
3079         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
3080         instead of sparc_compare_emitted.
3081
3082 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3083
3084         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
3085         enter/exit cfglayout mode.
3086         (pass_partition_block): Require it.
3087         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
3088         (combine_instructions): Track basic blocks instead of labels.
3089         (update_cfg_for_uncondjump): New.
3090         (try_combine): Use it.  Update jumps after rescanning.
3091         (pass_combine): Require PROP_cfglayout.
3092         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
3093
3094 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3095
3096         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
3097         Provide/destroy PROP_cfglayout respectively.
3098         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
3099         * tree-pass.h (PROP_cfglayout): New.
3100
3101 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
3102
3103         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
3104         fold_convert_const_fixed_from_fixed,
3105         fold_convert_const_fixed_from_int,
3106         fold_convert_const_fixed_from_real, fold_negate_const): Do not
3107         set TREE_CONSTANT_OVERFLOW.
3108         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
3109         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
3110
3111 2009-03-30  Ira Rosen  <irar@il.ibm.com>
3112
3113         * tree-vect-loop-manip.c: New file.
3114         * tree-vectorizer.c: Update documentation and included files.
3115         (vect_loop_location): Make extern.
3116         (rename_use_op): Move to tree-vect-loop-manip.c
3117         (rename_variables_in_bb, rename_variables_in_loop, 
3118         slpeel_update_phis_for_duplicate_loop, 
3119         slpeel_update_phi_nodes_for_guard1,
3120         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
3121         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
3122         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
3123         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
3124         find_loop_location): Likewise.
3125         (new_stmt_vec_info): Move to tree-vect-stmts.c.
3126         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
3127         get_vectype_for_scalar_type, vect_is_simple_use,
3128         supportable_widening_operation, supportable_narrowing_operation):
3129         Likewise.
3130         (bb_in_loop_p): Move to tree-vect-loop.c.
3131         (new_loop_vec_info, destroy_loop_vec_info, 
3132         reduction_code_for_scalar_code, report_vect_op, 
3133         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
3134         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
3135         (vect_supportable_dr_alignment): Likewise.
3136         * tree-vectorizer.h (tree-data-ref.h): Include.
3137         (vect_loop_location): Declare.
3138         Reorganize function declarations according to the new file structure.
3139         * tree-vect-loop.c: New file.
3140         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
3141         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
3142         * tree-vect-data-refs.c: New file.
3143         * tree-vect-patterns.c (timevar.h): Don't include.
3144         * tree-vect-stmts.c: New file.
3145         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
3146         tree-vect-slp.c, tree-vect-loop.c.
3147         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
3148         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
3149         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
3150         (tree-vect-analyze.o): Remove.
3151         (tree-vect-transform.o): Likewise.
3152         (tree-vect-data-refs.o): Add rule.
3153         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
3154         tree-vect-slp.o): Likewise.
3155         (tree-vect-patterns.o): Remove redundant dependencies.
3156         (tree-vectorizer.o): Likewise.
3157         * tree-vect-slp.c: New file.
3158
3159 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3160
3161         * optc-gen.awk: Warn if an option flag has multiple different
3162         help strings.
3163
3164 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
3165
3166         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
3167         -floop-block): Document dependences on PPL, CLooG and Graphite.
3168
3169 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
3170
3171         PR rtl-optimization/323
3172         * c-common.c (c_fully_fold, convert_and_check,
3173         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
3174         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
3175         * c-common.def (EXCESS_PRECISION_EXPR): New.
3176         * c-cppbuiltin.c (builtin_define_float_constants): Define
3177         constants with enough digits for long double.
3178         * c-lex.c (interpret_float): Interpret constant with excess
3179         precision where appropriate.
3180         * c-opts.c (c_common_post_options): Set
3181         flag_excess_precision_cmdline.  Give an error for
3182         -fexcess-precision=standard for C++ for processors where the
3183         option is significant.
3184         * c-parser.c (c_parser_conditional_expression): Handle excess
3185         precision in condition.
3186         * c-typeck.c (convert_arguments): Handle arguments with excess
3187         precision.
3188         (build_unary_op): Move excess precision outside operation.
3189         (build_conditional_expr): Likewise.
3190         (build_compound_expr): Likewise.
3191         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
3192         (build_modify_expr): Handle excess precision in RHS.
3193         (convert_for_assignment): Handle excess precision in converted
3194         value.
3195         (digest_init, output_init_element, process_init_element): Handle
3196         excess precision in initializer.
3197         (c_finish_return): Handle excess precision in return value.
3198         (build_binary_op): Handle excess precision in operands and add
3199         excess precision as needed for operation.
3200         * common.opt (-fexcess-precision=): New option.
3201         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
3202         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
3203         For standard excess precision, output explicit conversion to and
3204         truncation from XFmode.
3205         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
3206         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
3207         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
3208         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
3209         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
3210         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
3211         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
3212         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
3213         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
3214         define_splits, sqrt<mode>2): Disable where appropriate for
3215         standard excess precision.
3216         * convert.c (convert_to_real): Do not shorten arithmetic to type
3217         for which excess precision would be used.
3218         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
3219         * doc/invoke.texi (-fexcess-precision=): Document option.
3220         (-mfpmath=): Correct index entry.
3221         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
3222         flag_excess_precision): New.
3223         * langhooks.c (lhd_post_options): Set
3224         flag_excess_precision_cmdline.
3225         * opts.c (common_handle_option): Handle -fexcess-precision=.
3226         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
3227         init_excess_precision): New.
3228         (lang_dependent_init_target): Call init_excess_precision.
3229         * tree.c (excess_precision_type): New.
3230         * tree.h (excess_precision_type): Declare.
3231
3232 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
3233
3234         PR c/35235
3235         * c-typeck.c (build_component_ref): Do not copy qualifiers from
3236         non-lvalue to component.
3237
3238 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
3239
3240         PR preprocessor/34695
3241         * Makefile.in (c-opts.o): Depend on c-tree.h.
3242         * c-common.c: Move down include of diagnostic.h.
3243         (done_lexing, c_cpp_error): New.
3244         * c-common.h (done_lexing): Declare.
3245         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
3246         (parse_in).
3247         * c-opts.c: Include c-tree.h.
3248         (c_common_init_options): Set preprocessor error callback.
3249         (c_common_handle_option): Do not set preprocessor
3250         inhibit_warnings, warnings_are_errors, warn_system_headers,
3251         pedantic_errors or inhibit_warnings flags.
3252         (c_common_post_options): Do not check cpp_errors (parse_in).
3253         (c_common_finish): Do not output dependencies if there were
3254         errors.  Do not check return value of cpp_finish.
3255         * c-ppoutput.c (pp_file_change): Set input_location.
3256         * c-tree.h (c_cpp_error): Declare.
3257         * diagnostic.c (diagnostic_set_info_translated): Also initialize
3258         override_column.
3259         (diagnostic_build_prefix): Check override_column.
3260         * diagnostic.h (diagnostic_info): Add override_column field.
3261         (diagnostic_override_column): Define.
3262
3263 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
3264
3265         * c-common.c (c_expand_expr, c_staticp): Remove.
3266         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
3267         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
3268         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
3269         * c-gimplify.c (gimplify_compound_literal_expr,
3270         optimize_compound_literals_in_ctor): Remove.
3271         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
3272         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
3273         * c-semantics.c (emit_local_var): Remove.
3274
3275         * langhooks-def.h (lhd_expand_expr): Remove.
3276         * langhooks.c (lhd_expand_expr): Remove.
3277         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
3278
3279         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
3280         handling from c-semantics.c; don't call into langhook.
3281         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
3282         * gimplify.c (gimplify_compound_literal_expr,
3283         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
3284         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
3285         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
3286         as was done in c-gimplify.c.
3287         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
3288         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
3289         Move from c-common.h.
3290         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
3291
3292         * tree.c (staticp): Do not call langhook.
3293         * langhooks.c (lhd_staticp): Delete.
3294         * langhooks-def.h (lhd_staticp): Delete prototype.
3295         (LANG_HOOKS_STATICP): Delete.
3296         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
3297
3298         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
3299         instead of DECL_STMTs.
3300
3301 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
3302
3303         PR c/456
3304         PR c/5675
3305         PR c/19976
3306         PR c/29116
3307         PR c/31871
3308         PR c/35198
3309         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
3310         void_type_node.
3311         (fold_call_expr): Return a NOP_EXPR from folding rather than the
3312         contained expression.
3313         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
3314         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
3315         conditional expressions for C.
3316         (decl_constant_value_for_optimization): Move from
3317         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
3318         whether optimizing and that the expression is a VAR_DECL not of
3319         array type instead of doing such checks in the caller.  Do not
3320         check pedantic.  Call gcc_unreachable for C++.
3321         * c-common.def (C_MAYBE_CONST_EXPR): New.
3322         * c-common.h (c_fully_fold, c_save_expr,
3323         decl_constant_value_for_optimization): New prototypes.
3324         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
3325         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
3326         EXPR_INT_CONST_OPERANDS): Define.
3327         * c-convert.c (convert): Strip nops from expression.
3328         * c-decl.c (groktypename): Take extra parameters expr and
3329         expr_const_operands.  Update call to grokdeclarator.
3330         (start_decl): Update call to grokdeclarator.  Add statement for
3331         expressions used in type of decl.
3332         (grokparm): Update call to grokdeclarator.
3333         (push_parm_decl): Update call to grokdeclarator.
3334         (build_compound_literal): Add parameter non_const and build a
3335         C_MAYBE_COSNT_EXPR if applicable.
3336         (grokdeclarator): Take extra parameters expr and
3337         expr_const_operands.  Track expressions used in declaration
3338         specifiers and declarators.  Fold array sizes and track whether
3339         they are constant expressions and whether they are integer
3340         constant expressions.
3341         (parser_xref_tag): Set expr and expr_const_operands fields in
3342         return value.
3343         (grokfield): Update call to grokdeclarator.
3344         (start_function): Update call to grokdeclarator.
3345         (build_null_declspecs): Set expr and expr_const_operands fields in
3346         return value.
3347         (declspecs_add_type): Handle expressions in typeof specifiers.
3348         * c-parser.c (c_parser_declspecs): Set expr and
3349         expr_const_operands fields for declaration specifiers.
3350         (c_parser_enum_specifier): Likewise.
3351         (c_parser_struct_or_union_specifier): Likewise.
3352         (c_parser_typeof_specifier): Likewise.  Update call to
3353         groktypename.  Fold expression as needed.  Return expressions with
3354         type instead of adding statements.
3355         (c_parser_attributes): Update calls to c_parser_expr_list.
3356         (c_parser_statement_after_labels): Fold expression before passing
3357         to objc_build_throw_stmt.
3358         (c_parser_condition): Fold expression.
3359         (c_parser_asm_operands): Fold expression.
3360         (c_parser_conditional_expression): Use c_save_expr.  Update call
3361         to build_conditional_expr.
3362         (c_parser_alignof_expression): Update call to groktypename.
3363         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
3364         original_code.  Fold expression argument of va_arg.  Create
3365         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
3366         argument to va_arg.  Update calls to groktypename.  Fold array
3367         index for offsetof.  Verify that first argument to
3368         __builtin_choose_expr has integer type.
3369         (c_parser_postfix_expression_after_paren_type): Update calls to
3370         groktypename and build_compound_literal.  Handle expressions with
3371         side effects in type name.
3372         (c_parser_postfix_expression_after_primary): Update call to
3373         c_parser_expr_list.  Set original_code for calls to
3374         __builtin_constant_p.
3375         (c_parser_expr_list): Take extra parameter fold_p.  Fold
3376         expressions if requested.
3377         (c_parser_objc_type_name): Update call to groktypename.
3378         (c_parser_objc_synchronized_statement): Fold expression.
3379         (c_parser_objc_receiver): Fold expression.