OSDN Git Service

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