OSDN Git Service

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