OSDN Git Service

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