OSDN Git Service

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