OSDN Git Service

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