OSDN Git Service

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