OSDN Git Service

2009-04-17 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-17  Richard Guenther  <rguenther@suse.de>
2
3         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
4         (fold_stmt_r): Likewise.
5         (maybe_fold_reference): New function.
6         (fold_gimple_assign): Handle cases fold_stmt_r did.
7         (fold_stmt): Do not use fold_stmt_r.
8         (fold_stmt_inplace): Likewise.
9
10 2009-04-17  Richard Guenther  <rguenther@suse.de>
11
12         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
13         (record_equivalences_from_stmt): Remove useless checks and
14         simplifications.
15         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
16         the type is already suitable.
17
18 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
19
20         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
21
22 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
23
24         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
25         (CMPtype): Define as __gcc_CMPtype.
26
27 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
28
29         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
30         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
31
32 2009-04-17  Richard Guenther  <rguenther@suse.de>
33
34         PR tree-optimization/39746
35         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
36         special-casing for builtins and static variable use/def.
37         (call_may_clobber_ref_p_1): Likewise.
38
39 2009-04-16  Ian Lance Taylor  <iant@google.com>
40
41         * df.h: Include "timevar.h".
42         (struct df_problem): Change tv_id field to timevar_id_t.
43         * tree-pass.h: Include "timevar.h".
44         (struct opt_pass): Change tv_id field to timevar_id_t.
45         * timevar.h (timevar_id_t): Define TV_NONE.
46         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
47         TV_NONE rather than tv_id != 0.
48         (execute_one_pass): Likewise.
49         * Makefile.in (DF_H): Add $(TIMEVAR_H).
50         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
51         dependencies to $(TREE_PASS_H).
52         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
53         to TV_NONE.
54         (pass_branch_target_load_optimize2): Likewise.
55         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
56         (pass_outof_cfg_layout_mode): Likewise.
57         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
58         (pass_rebuild_cgraph_edges): Likewise.
59         (pass_remove_cgraph_callee_edges): Likewise.
60         * df-core.c (pass_df_initialize_opt): Likewise.
61         (pass_df_initialize_no_opt): Likewise.
62         (pass_df_finish): Likewise.
63         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
64         * except.c (pass_set_nothrow_function_flags): Likewise.
65         (pass_convert_to_eh_region_ranges): Likewise.
66         * final.c (pass_compute_alignments): Likewise.
67         * function.c (pass_instantiate_virtual_regs): Likewise.
68         (pass_init_function): Likewise.
69         (pass_leaf_regs): Likewise.
70         (pass_match_asm_constraints): Likewise.
71         * gimple-low.c (pass_lower_cf): Likewise.
72         (pass_mark_used_blocks): Likewise.
73         * init-regs.c (pass_initialize_regs): Likewise.
74         * integrate.c (pass_initial_value_sets): Likewise.
75         * ira.c (pass_ira): Likewise.
76         * jump.c (pass_cleanup_barriers): Likewise.
77         * omp-low.c (pass_expand_omp): Likewise.
78         (pass_lower_omp): Likewise.
79         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
80         * recog.c (pass_split_all_insns): Likewise.
81         (pass_split_after_reload): Likewise.
82         (pass_split_before_regstack): Likewise.
83         (pass_split_before_sched2): Likewise.
84         (pass_split_for_shorten_branches): Likewise.
85         * reginfo.c (pass_reginfo_init): Likewise.
86         (pass_subregs_of_mode_init): Likewise.
87         (pass_subregs_of_mode_finish): Likewise.
88         * passes.c (pass_postreload): Likewise.
89         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
90         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
91         (pass_warn_function_return): Likewise.
92         (pass_warn_function_noreturn): Likewise.
93         * tree-complex.c (pass_lower_complex): Likewise.
94         (pass_lower_complex_O0): Likewise.
95         * tree-if-conv.c (pass_if_conversion): Likewise.
96         * tree-into-ssa.c (pass_build_ssa): Likewise.
97         * tree-mudflap.c (pass_mudflap_1): Likewise.
98         (pass_mudflap_2): Likewise.
99         * tree-nomudflap.c (pass_mudflap_1): Likewise.
100         (pass_mudflap_2): Likewise.
101         * tree-nrv.c (pass_return_slot): Likewise.
102         * tree-object-size.c (pass_object_sizes): Likewise.
103         * tree-optimize.c (pass_all_optimizations): Likewise.
104         (pass_early_local_passes): Likewise.
105         (pass_all_early_optimizations): Likewise.
106         (pass_cleanup_cfg): Likewise.
107         (pass_cleanup_cfg_post_optimizing): Likewise.
108         (pass_free_datastructures): Likewise.
109         (pass_free_cfg_annotations): Likewise.
110         (pass_fixup_cfg): Likewise.
111         (pass_init_datastructures): Likewise.
112         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
113         (pass_late_warn_uninitialized): Likewise.
114         (pass_update_address_taken): Likewise.
115         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
116         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
117         (pass_cse_sincos): Likewise.
118         (pass_convert_to_rsqrt): Likewise.
119         * tree-ssa-structalias.c (pass_build_alias): Likewise.
120         * tree-stdarg.c (pass_stdarg): Likewise.
121         * tree-tailcall.c (pass_tail_recursion): Likewise.
122         (pass_tail_calls): Likewise.
123         * tree-vect-generic.c (pass_lower_vector): Likewise.
124         (pass_lower_vector_ssa): Likewise.
125         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
126
127 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
128
129         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
130         XLR entry.
131         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
132         Handle -march=xlr.
133         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
134         logical and signext.
135
136 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
137
138         PR target/39767
139         * config/sh/predicates.md (arith_operand): Check if the operand
140         of TRUNCATE is a REG.
141
142 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
143
144         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
145         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
146
147 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
148
149         * tree-iterator.c (tsi_split_statement_list_after,
150         tsi_split_statement_list_before): Remove.
151         * tree-iterator.h: Remove the prototypes for
152         tsi_split_statement_list_after and tsi_split_statement_list_before.
153
154 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
155
156         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
157         * tree-ssa-propagate.h: Remove the prototype for
158         stmt_makes_single_load.
159
160 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
161
162         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
163         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
164
165 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
166
167         * tree-iterator.c (EXPR_LAST_BODY): Remove.
168
169 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
170
171         * except.c (eh_region_outer_p): Remove.
172         * except.h: Remove the prototype for eh_region_outer_p.
173
174 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
175
176         * function.c (current_function_assembler_name): Remove.
177         * function.h: Remove the prototype for
178         current_function_assembler_name.
179
180 2009-04-16  Ian Lance Taylor  <iant@google.com>
181
182         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
183         (add_reg_note): Call alloc_reg_note.
184         * rtl.h (alloc_reg_note): Declare.
185         * combine.c (try_combine): Use alloc_reg_note.
186         (recog_for_combine, move_deaths): Likewise.
187         (distribute_notes): Use alloc_reg_note and add_reg_note.
188         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
189         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
190         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
191
192 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
193
194         PR rtl-optimization/39762
195         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
196         ira_may_move_out_cost): Add comments about way of their usage.
197         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
198         
199         * ira-conflicts.c (process_regs_for_copy): Use function
200         ira_get_register_move_cost instead of global
201         ira_register_move_cost.
202
203         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
204         color_pass, move_spill_restore, update_curr_costs): Ditto.
205
206         * ira-lives.c (process_single_reg_class_operands): Ditto.
207
208         * ira-emit.c (emit_move_list): Ditto.
209
210         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
211         (record_reg_classes): Ditto.  Use functions
212         ira_get_register_move_cost and ira_get_may_move_cost instead of
213         global vars ira_register_move_cost, ira_may_move_out_cost and
214         ira_may_move_in_cost.
215         (record_address_regs): Don't call ira_init_register_move_cost.
216         Use function ira_get_may_move_cost instead of global
217         ira_may_move_in_cost.
218         (process_bb_node_for_hard_reg_moves): Use function
219         ira_get_register_move_cost instead of global ira_register_move_cost.
220         (ira_costs): Don't call ira_init_register_move_cost.
221         
222 2009-04-16  Richard Guenther  <rguenther@suse.de>
223
224         * tree-cfg.c (verify_gimple_assign_binary):
225         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
226         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
227         (create_general_new_stmt): Note that this function is broken.
228
229 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
230
231         * common.opt (fhelp): Add Var(help_flag).
232         * gcc-plugin.h (plugin_info): Add help.
233         * plugin.c (plugin_name_args): Add help.
234         (register_plugin_info): Set plugin->help.
235         (print_help_one_plugin): New.
236         (print_plugins_help): New.
237         * plugin.h (print_plugins_help): New.
238         * toplev.c (toplev_main): Call print_plugins_help if needed.
239
240 2009-04-16  Richard Guenther  <rguenther@suse.de>
241
242         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
243         (gimple_ior_addresses_taken_1): New function.
244         (gimple_ior_addresses_taken): Likewise.
245         * gimple.h (struct gimple_statement_with_ops_base): Remove
246         addresses_taken member.
247         (gimple_ior_addresses_taken): Declare.
248         (gimple_addresses_taken, gimple_addresses_taken_ptr,
249         gimple_set_addresses_taken): Remove.
250         * ipa-reference.c (mark_address): New function.
251         (scan_stmt_for_static_refs): Use it for marking addresses taken.
252         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
253         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
254         (gimple_add_to_addresses_taken): Remove.
255         (get_tmr_operands): Call mark_address_taken.
256         (get_asm_expr_operands): Likewise.
257         (get_expr_operands): Likewise.
258         (build_ssa_operands): Do not clear the addresses_taken bitmap.
259         (free_stmt_operands): Do not free it.
260         * tree-ssa.c (delete_tree_ssa): Likewise.
261         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
262
263 2009-04-16  Richard Guenther  <rguenther@suse.de>
264
265         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
266         (walk_stmt_load_store_ops): Likewise.
267         * gimple.c (get_base_loadstore): New function.
268         (walk_stmt_load_store_addr_ops): Likewise.
269         (walk_stmt_load_store_ops): Likewise.
270         * ipa-pure-const.c (check_op): Simplify.
271         (check_load, check_store): New functions.
272         (check_stmt): Use walk_stmt_load_store_ops.
273         * ipa-reference.c (mark_load): Adjust signature.
274         (mark_store): Likewise.
275         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
276
277 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
278
279         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
280         (plugin_info): New.
281         * opts.c (common_handle_option): Don't call print_version.
282         * plugin.c (plugin_name_args): Add version.
283         (register_plugin_info): New.
284         (register_callback): Handle PLUGIN_INFO.
285         (try_init_one_plugin): New.
286         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
287         if failed to init.
288         (finalize_one_plugin): New.
289         (finalize_plugins): New.
290         (print_one_plugin): New.
291         (print_plugins_versions): New.
292         * plugin.h (print_plugins_versions): New.
293         (finalize_plugins): New.
294         * toplev.c (compile_file): Don't call initialize_plugins.
295         (print_version): Call print_plugins_versions.
296         (toplev_main): Call initialize_plugins. Print version if needed.
297         Call finalize_plugins.
298
299 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
300
301         * common.opt (fversion): New.
302         * gcc.c (print_version): New.
303         (process_command): Don't print the version. Just set print_version.
304         (main): Print version. Call subprocesses if print_version and
305         verbose_flag are set.
306         * opts.c (common_handle_option): Handle OPT_fversion.
307
308 2009-04-16  Richard Guenther  <rguenther@suse.de>
309             Ira Rosen  <irar@il.ibm.com>
310
311         PR tree-optimization/39698
312         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
313         type of the reduction variable.  Only generate the def if
314         it is needed.
315
316         * omp-low.c (expand_omp_for_generic): When converting to a pointer
317         make sure to first convert to an integer of the same precision.
318         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
319         the type of the evolution correctly in computing the new
320         induction variable base.
321
322 2009-04-16  Richard Guenther  <rguenther@suse.de>
323
324         PR middle-end/39625
325         * tree-cfg.c (make_blocks): Split statements with to-be
326         abnormal SSA names on the lhs.
327
328 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
329
330         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
331         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
332         * c-typeck.c (really_start_incremental_init): Likewise.
333         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
334         (TARGET_INITIALIZER): Remove it.
335         * target.h (struct target): Remove vector_opaque_p.
336         * tree.c (build_opaque_vector_type): New.
337         * tree.h (TYPE_VECTOR_OPAQUE): New.
338         (build_opaque_vector_type): Declare.
339         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
340         * config/rs6000/rs6000.c (build_opaque_vector_type,
341         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
342         (rs6000_init_builtins): Use build_opaque_vector_type for
343         opaque_V4SI_type_node.
344
345 2009-04-15  Catherine Moore  <clm@codesourcery.com>
346
347         * debug.h (set_name):  Declare.
348         * dwarf2out.c (dwarf2out_set_name): Declare.
349         (dwarf2_debug_hooks): Add set_name.
350         (find_AT_string): New.
351         (add_AT_string): Call find_AT_string.
352         (dwarf2out_set_name): New.
353         * cp/decl.c (grokdeclarator): Call set_name.
354         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
355         * debug.c (do_nothing_debug_hooks):  Likewise.
356         * dbxout.c (dbx_debug_hooks): Likewise.
357         * sdbout.c (sdb_debug_hooks): Likewise.
358
359 2009-04-15  Michael Eager <eager@eagercon.com>
360
361         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
362         reg for single-precision FPU.
363         * config/rs6000/rs6000.md (movsi_internal1): Only for
364         !TARGET_SINGLE_FPU.
365         (movsi_internal1_single): New. Add pattern to move SI values to/from
366         single-precision FP regs.
367
368 2009-04-15  Richard Guenther  <rguenther@suse.de>
369
370         * omp-low.c (lower_rec_input_clauses): Build correct address
371         expressions.
372         (expand_omp_for_generic): Fix multiplication type.
373         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
374         (generate_memset_zero): Fix types.
375         * tree-profile.c (prepare_instrumented_value): Correctly
376         widen a pointer.
377
378 2009-04-15  Ian Lance Taylor  <iant@google.com>
379
380         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
381         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
382         for -Wall and for -Wc++-compat.
383         (c_common_post_options): For C++, set warn_enum_compare if not
384         already set.
385         * c-tree.h (struct c_expr): Add field original_type.
386         (build_external_ref): Update declaration.
387         * c-parser.c (c_parser_braced_init): Set original_type.
388         (c_parser_initelt): Likewise.
389         (c_parser_expr_no_commas): Likewise.
390         (c_parser_conditional_expression): Likewise.
391         (c_parser_cast_expression): Likewise.
392         (c_parser_unary_expression): Likewise.  Pull setting of
393         original_code to top of function.
394         (c_parser_sizeof_expression): Set original_type.
395         (c_parser_alignof_expression): Likewise.
396         (c_parser_postfix_expression): Likewise.  Pull setting of
397         original_code to top of function.
398         (c_parser_postfix_expression_after_paren_type): Set original_type.
399         (c_parser_postfix_expression_after_primary): Likewise.
400         (c_parser_expression): Likewise.
401         * c-typeck.c (build_external_ref): Add type parameter.  Change all
402         callers.
403         (c_expr_sizeof_expr): Set original_type field.
404         (parser_build_unary_op): Likewise.
405         (parser_build_binary_op): Likewise.  Optionally warn about
406         comparisons of enums of different types.
407         (digest_init): Set original_type field.
408         (really_start_incremental_init): Likewise.
409         (push_init_level, pop_init_level): Likewise.
410         * doc/invoke.texi (Warning Options): -Wenum-compare now
411         supported in C.
412
413 2009-04-15  Richard Guenther  <rguenther@suse.de>
414
415         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
416         out a necessary conversion.
417         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
418         names we didn't value number.
419         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
420
421 2009-04-15  Richard Guenther  <rguenther@suse.de>
422
423         PR tree-optimization/39764
424         * tree-ssa-ccp.c (get_value): Canonicalize value with
425         canonicalize_float_value.
426
427 2009-04-15  Jan Hubicka  <jh@suse.cz>
428
429         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
430         Wrong version of patch.
431
432 2009-04-15  Jan Hubicka  <jh@suse.cz>
433
434         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
435
436 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
437
438         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
439         our distinct integral and vector types.
440
441 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
442
443         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
444         * init.c (build_vtbl_address): Remove call to assemble_external.
445
446 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
447
448         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
449         output for other floating point modes.
450
451 2009-04-14  Diego Novillo  <dnovillo@google.com>
452
453         * diagnostic.c (diagnostic_report_diagnostic): Do not
454         warn about loaded plugins for DK_ERROR and DK_WARNING.
455         * c-decl.c (declspecs_add_type): Move call to
456         invoke_plugin_callbacks ...
457         * c-parser.c (c_parser_declspecs): ... here.
458         * plugin.c (dump_active_plugins): Tidy output.
459
460 2009-04-14  Diego Novillo  <dnovillo@google.com>
461             Le-Chun Wu  <lcwu@google.com>
462
463         * configure.ac: Add --enable-plugin support.
464         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
465         * Makefile.in (PLUGIN_H): Define.
466         Export ENABLE_PLUGIN and GMPINC to site.exp.
467         Add PLUGINLIBS to link command.
468         Add/modify dependencies for plugin.o and files including plugin.h.
469         (plugin.o): New.
470         * config.in: Regenerate.
471         
472         * opts.c (common_handle_option): Handle OPT_fplugin_ and
473         OPT_fplugin_arg_.
474
475 2009-04-14  Le-Chun Wu  <lcwu@google.com>
476
477         * tree-pass.h (register_one_dump_file): Add a prototype for
478         register_one_dump_file.
479         * toplev.c (compile_file): Call initialize_plugins.
480         (do_compile): Call invoke_plugin_callbacks.
481         (toplev_main): Call invoke_plugin_callbacks.
482         * common.opt: Add -fplugin= and -fplugin-arg-.
483         * gcc-plugin.h: New public header file for plugins to include.
484         * plugin.c: New source file.
485         * plugin.h: New internal header file.
486         * passes.c (register_one_dump_file): Make it external.
487         
488         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
489
490 2009-04-14  Diego Novillo  <dnovillo@google.com>
491
492         * doc/plugins.texi: New.
493         * doc/gccint.texi: Add reference to Plugins chapter.
494         * doc/invoke.texi: Document -fplugin and -fplugin-arg
495         * diagnostic.c (diagnostic_report_diagnostic): Warn about
496         loaded plugins, if any.
497         * timevar.def (TV_PLUGIN_INIT): Define.
498         (TV_PLUGIN_RUN): Define.
499         * plugin.c: Include timevar.h
500         (plugins_active_p): New.
501         (dump_active_plugins): New.
502         (debug_active_plugins): New.
503
504 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
505
506         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
507         library paths.
508         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
509
510 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
511
512         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
513         the same as a minus without a shift.
514
515 2009-04-14  Nick Clifton  <nickc@redhat.com>
516
517         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
518         comparisons with small integers will always produce a short
519         branch.
520
521 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
522
523         Merge:
524         2008-12-19  Diego Novillo  <dnovillo@google.com>
525
526         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
527
528 2000-04-14  Richard Guenther  <rguenther@suse.de>
529
530         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
531         verification.
532         (verify_gimple_assign_binary): Likewise.  Handle shifts and
533         rotates correctly.
534         (verify_gimple_phi): Print the mismatched argument position.
535         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
536         Fix types.
537         (vect_update_init_of_dr): Likewise.
538         * matrix-reorg.c (transform_access_sites): Do what the
539         comment suggests.
540         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
541
542 2009-04-13  Michael Eager <eager@eagercon.com>
543
544         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
545         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
546         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
547         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, 
548         remove duplicate config
549
550 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
551
552         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
553         file_name:line_number type locator of the call site.
554         
555 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
556
557         * genautomata.c: Put blank after comma.
558         (automaton_decls): New.
559         (struct unit_usage): Add comments to member next.
560         (store_alt_unit_usage): Keep the list ordered.
561         (unit_present_on_list_p, equal_alternatives_p): New.
562         (check_regexp_units_distribution): Check units distribution
563         correctness correctly.
564         (main): Don't write automata if error is found.  Return correct
565         exit code.
566         
567         * config/m68k/cf.md (cfv4_ds): Remove.
568         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
569         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
570
571         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
572         power4-load-ext, power4-store, power4-store-update,
573         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
574         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
575         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
576         power4-sqrt, power4-isync): Modify reservation to make correct
577         unit distribution to automata.
578
579         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
580         power5-store-update, power5-two, power5-three, power5-lmul,
581         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
582         
583 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
584
585         * except.c (pass_set_nothrow_function_flags): Set name and add
586         TODO_dump_func.
587         (set_nothrow_function_flags): Mention in the dump file when
588         changing a function to nothrow.
589
590 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
591
592         PR/39066
593         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
594         instead of unsigned long.
595
596 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
597
598         * config/arm/arm.c (return_used_this_function): Remove.
599         (arm_output_function_prologue): Remove use of
600         return_used_this_function.
601         (output_return_instruction): Replace use of
602         return_used_this_function
603         by cfun->machine->return_used_this_function.
604         (arm_output_epilogue): Likewise.
605         (arm_output_function_epilogue): Likewise.
606         (thumb_unexpanded_epilogue): Likewise.
607         * config/arm/arm.h (struct machine_function):
608         New member return_used_this_function.
609
610 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
611
612         * doc/install.texi: Correct description of default directory for
613         --with-gxx-include-dir.
614
615 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
616
617         * fold-const.c (build_range_check): Properly deal with enumeral and
618         boolean base types.
619
620 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
621
622         * doc/invoke.texi (max_gcse_passes): Remove documentation.
623         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
624         * params.h (MAX_GCSE_PASSES): Remove.
625         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
626         in sequence.  Remove ability to run multiple passes.
627         (bypass_jumps): Report run as third CPROP pass.
628
629 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
630
631         PR middle-end/39651
632         * except.c (can_throw_external): Look at each insn in a SEQUENCE
633         when deciding whether the whole SEQUENCE can throw.
634
635 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
636
637         PR target/39740
638         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
639         offseted label references.
640
641 2009-04-11  Jan Hubicka  <jh@suse.cz>
642
643         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
644
645 2009-04-11  Richard Guenther  <rguenther@suse.de>
646
647         PR middle-end/39732
648         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
649         return variables as TREE_ADDRESSABLE.
650
651 2009-04-11  Richard Guenther  <rguenther@suse.de>
652
653         PR tree-optimization/39713
654         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
655         reference trees have SSA_NAME operands.
656
657 2009-04-11  Richard Guenther  <rguenther@suse.de>
658
659         PR c/39712
660         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
661         address expressions.
662
663 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
664
665         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
666         match changes in Cygwin 1.7
667         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
668         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
669
670 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
671
672         PR tree-optimization/39701
673         * doc/invoke.texi (Optimization Options): Document change in
674         meaning and initialization of -fdelete-null-pointer-checks.
675
676 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
677
678         PR middle-end/39701
679         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
680
681         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
682         here.
683
684         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
685
686 2009-04-10  Chao-ying Fu  <fu@mips.com>
687
688         * doc/tm.texi (Instruction Output): Document
689         TARGET_ASM_FINAL_POSTSCAN_INSN.
690         * target.h (final_postscan_insn): New field in asm_out.
691         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
692         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
693         * final.c (final_scan_insn): Call
694         targetm.asm_out.final_postscan_insn after outputting
695         an asm macro and a normal instruction.
696
697         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
698         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
699         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
700         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
701         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
702
703 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
704
705         PR middle-end/39701
706         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
707         variables as non-NULL even with -fdelete-null-pointer-checks.
708
709 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
710
711         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
712
713 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
714
715         PR target/39678
716         * config/i386/i386.c (classify_argument): Handle SCmode with
717         (bit_offset % 64) != 0.
718
719 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
720
721         * doc/invoke.texi (Optimize Options): Add cross-reference to
722         -Q --help=optimizers examples.
723
724 2009-04-10  Ben Elliston  <bje@au.ibm.com>
725
726         PR target/36800
727         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
728         regalign for the reg == fpr and TDmode case.
729
730 2009-04-09  David Ayers  <ayers@fsfe.org>
731
732         PR objc/29200
733         * objc/objc-act.c (warn_with_method): Remove helper function.
734         (check_duplicates): Call warning and inform directly.
735         (really_start_method): Likewise.
736
737 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
738
739         * expmed.c (expand_divmod): Always use a comparison for a division
740         by a large unsigned integer.
741
742         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
743         for things others than variables or functions as nonzero.
744
745 2009-04-09  Nick Clifton  <nickc@redhat.com>
746
747         * unwind-compat.c: Change copyright header to refer to version
748         3 of the GNU General Public License with version 3.1 of the
749         GCC Runtime Library Exception and to point readers at the
750         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
751         * config/alpha/crtfastmath.c: Likewise.
752         * config/alpha/linux-unwind.h: Likewise.
753         * config/alpha/qrnnd.asm: Likewise.
754         * config/alpha/vms-crt0-64.c: Likewise.
755         * config/alpha/vms-crt0.c: Likewise.
756         * config/alpha/vms-dwarf2.asm: Likewise.
757         * config/alpha/vms-dwarf2eh.asm: Likewise.
758         * config/alpha/vms-psxcrt0-64.c: Likewise.
759         * config/alpha/vms-psxcrt0.c: Likewise.
760         * config/alpha/vms_tramp.asm: Likewise.
761         * config/arc/initfini.c: Likewise.
762         * config/arc/lib1funcs.asm: Likewise.
763         * config/arm/bpabi-v6m.S: Likewise.
764         * config/arm/bpabi.S: Likewise.
765         * config/arm/bpabi.c: Likewise.
766         * config/arm/crti.asm: Likewise.
767         * config/arm/crtn.asm: Likewise.
768         * config/arm/ieee754-df.S: Likewise.
769         * config/arm/ieee754-sf.S: Likewise.
770         * config/arm/lib1funcs.asm: Likewise.
771         * config/arm/libunwind.S: Likewise.
772         * config/arm/linux-atomic.c: Likewise.
773         * config/arm/mmintrin.h: Likewise.
774         * config/arm/pr-support.c: Likewise.
775         * config/arm/unaligned-funcs.c: Likewise.
776         * config/arm/unwind-arm.c: Likewise.
777         * config/arm/unwind-arm.h: Likewise.
778         * config/avr/libgcc.S: Likewise.
779         * config/bfin/crti.s: Likewise.
780         * config/bfin/crtlibid.s: Likewise.
781         * config/bfin/crtn.s: Likewise.
782         * config/bfin/lib1funcs.asm: Likewise.
783         * config/bfin/linux-unwind.h: Likewise.
784         * config/cris/arit.c: Likewise.
785         * config/cris/cris_abi_symbol.c: Likewise.
786         * config/darwin-64.c: Likewise.
787         * config/darwin-crt2.c: Likewise.
788         * config/darwin-crt3.c: Likewise.
789         * config/darwin.h: Likewise.
790         * config/dbxelf.h: Likewise.
791         * config/dfp-bit.c: Likewise.
792         * config/dfp-bit.h: Likewise.
793         * config/elfos.h: Likewise.
794         * config/fixed-bit.c: Likewise.
795         * config/fixed-bit.h: Likewise.
796         * config/fp-bit.c: Likewise.
797         * config/fp-bit.h: Likewise.
798         * config/fr30/crti.asm: Likewise.
799         * config/fr30/crtn.asm: Likewise.
800         * config/fr30/lib1funcs.asm: Likewise.
801         * config/freebsd-spec.h: Likewise.
802         * config/frv/cmovd.c: Likewise.
803         * config/frv/cmovh.c: Likewise.
804         * config/frv/cmovw.c: Likewise.
805         * config/frv/frvbegin.c: Likewise.
806         * config/frv/frvend.c: Likewise.
807         * config/frv/lib1funcs.asm: Likewise.
808         * config/glibc-stdint.h: Likewise.
809         * config/h8300/clzhi2.c: Likewise.
810         * config/h8300/crti.asm: Likewise.
811         * config/h8300/crtn.asm: Likewise.
812         * config/h8300/ctzhi2.c: Likewise.
813         * config/h8300/fixunssfsi.c: Likewise.
814         * config/h8300/lib1funcs.asm: Likewise.
815         * config/h8300/parityhi2.c: Likewise.
816         * config/h8300/popcounthi2.c: Likewise.
817         * config/i386/ammintrin.h: Likewise.
818         * config/i386/att.h: Likewise.
819         * config/i386/avxintrin.h: Likewise.
820         * config/i386/biarch64.h: Likewise.
821         * config/i386/bmmintrin.h: Likewise.
822         * config/i386/cpuid.h: Likewise.
823         * config/i386/cross-stdarg.h: Likewise.
824         * config/i386/crtfastmath.c: Likewise.
825         * config/i386/crtprec.c: Likewise.
826         * config/i386/cygming-crtbegin.c: Likewise.
827         * config/i386/cygming-crtend.c: Likewise.
828         * config/i386/cygwin.asm: Likewise.
829         * config/i386/emmintrin.h: Likewise.
830         * config/i386/gmm_malloc.h: Likewise.
831         * config/i386/gthr-win32.c: Likewise.
832         * config/i386/i386.h: Likewise.
833         * config/i386/immintrin.h: Likewise.
834         * config/i386/linux-unwind.h: Likewise.
835         * config/i386/linux64.h: Likewise.
836         * config/i386/mm3dnow.h: Likewise.
837         * config/i386/mmintrin-common.h: Likewise.
838         * config/i386/mmintrin.h: Likewise.
839         * config/i386/nmmintrin.h: Likewise.
840         * config/i386/pmm_malloc.h: Likewise.
841         * config/i386/pmmintrin.h: Likewise.
842         * config/i386/smmintrin.h: Likewise.
843         * config/i386/sol2-c1.asm: Likewise.
844         * config/i386/sol2-ci.asm: Likewise.
845         * config/i386/sol2-cn.asm: Likewise.
846         * config/i386/sol2-gc1.asm: Likewise.
847         * config/i386/tmmintrin.h: Likewise.
848         * config/i386/unix.h: Likewise.
849         * config/i386/w32-unwind.h: Likewise.
850         * config/i386/wmmintrin.h: Likewise.
851         * config/i386/x86-64.h: Likewise.
852         * config/i386/x86intrin.h: Likewise.
853         * config/i386/xmmintrin.h: Likewise.
854         * config/ia64/crtbegin.asm: Likewise.
855         * config/ia64/crtend.asm: Likewise.
856         * config/ia64/crtfastmath.c: Likewise.
857         * config/ia64/crti.asm: Likewise.
858         * config/ia64/crtn.asm: Likewise.
859         * config/ia64/fde-glibc.c: Likewise.
860         * config/ia64/lib1funcs.asm: Likewise.
861         * config/ia64/linux-unwind.h: Likewise.
862         * config/ia64/quadlib.c: Likewise.
863         * config/ia64/unwind-ia64.c: Likewise.
864         * config/linux.h: Likewise.
865         * config/m32c/m32c-lib1.S: Likewise.
866         * config/m32c/m32c-lib2-trapv.c: Likewise.
867         * config/m32c/m32c-lib2.c: Likewise.
868         * config/m32r/initfini.c: Likewise.
869         * config/m68hc11/larith.asm: Likewise.
870         * config/m68hc11/m68hc11-crt0.S: Likewise.
871         * config/m68k/cf.md: Likewise.
872         * config/m68k/crti.s: Likewise.
873         * config/m68k/crtn.s: Likewise.
874         * config/m68k/lb1sf68.asm: Likewise.
875         * config/m68k/linux-unwind.h: Likewise.
876         * config/mcore/crti.asm: Likewise.
877         * config/mcore/crtn.asm: Likewise.
878         * config/mcore/lib1.asm: Likewise.
879         * config/mips/linux-unwind.h: Likewise.
880         * config/mips/loongson.h: Likewise.
881         * config/mips/mips16.S: Likewise.
882         * config/mmix/crti.asm: Likewise.
883         * config/mmix/crtn.asm: Likewise.
884         * config/pa/fptr.c: Likewise.
885         * config/pa/hpux-unwind.h: Likewise.
886         * config/pa/lib2funcs.asm: Likewise.
887         * config/pa/linux-atomic.c: Likewise.
888         * config/pa/linux-unwind.h: Likewise.
889         * config/pa/milli64.S: Likewise.
890         * config/pa/quadlib.c: Likewise.
891         * config/pa/stublib.c: Likewise.
892         * config/picochip/libgccExtras/adddi3.asm: Likewise.
893         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
894         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
895         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
896         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
897         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
898         * config/picochip/libgccExtras/divmod15.asm: Likewise.
899         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
900         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
901         * config/picochip/libgccExtras/longjmp.asm: Likewise.
902         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
903         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
904         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
905         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
906         * config/picochip/libgccExtras/setjmp.asm: Likewise.
907         * config/picochip/libgccExtras/subdi3.asm: Likewise.
908         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
909         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
910         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
911         * config/rs6000/750cl.h: Likewise.
912         * config/rs6000/altivec.h: Likewise.
913         * config/rs6000/biarch64.h: Likewise.
914         * config/rs6000/crtresfpr.asm: Likewise.
915         * config/rs6000/crtresgpr.asm: Likewise.
916         * config/rs6000/crtresxfpr.asm: Likewise.
917         * config/rs6000/crtresxgpr.asm: Likewise.
918         * config/rs6000/crtsavfpr.asm: Likewise.
919         * config/rs6000/crtsavgpr.asm: Likewise.
920         * config/rs6000/darwin-asm.h: Likewise.
921         * config/rs6000/darwin-fallback.c: Likewise.
922         * config/rs6000/darwin-fpsave.asm: Likewise.
923         * config/rs6000/darwin-ldouble.c: Likewise.
924         * config/rs6000/darwin-tramp.asm: Likewise.
925         * config/rs6000/darwin-unwind.h: Likewise.
926         * config/rs6000/darwin-vecsave.asm: Likewise.
927         * config/rs6000/darwin-world.asm: Likewise.
928         * config/rs6000/e500crtres32gpr.asm: Likewise.
929         * config/rs6000/e500crtres64gpr.asm: Likewise.
930         * config/rs6000/e500crtres64gprctr.asm: Likewise.
931         * config/rs6000/e500crtrest32gpr.asm: Likewise.
932         * config/rs6000/e500crtrest64gpr.asm: Likewise.
933         * config/rs6000/e500crtresx32gpr.asm: Likewise.
934         * config/rs6000/e500crtresx64gpr.asm: Likewise.
935         * config/rs6000/e500crtsav32gpr.asm: Likewise.
936         * config/rs6000/e500crtsav64gpr.asm: Likewise.
937         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
938         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
939         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
940         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
941         * config/rs6000/eabi-ci.asm: Likewise.
942         * config/rs6000/eabi-cn.asm: Likewise.
943         * config/rs6000/eabi.asm: Likewise.
944         * config/rs6000/linux-unwind.h: Likewise.
945         * config/rs6000/linux64.h: Likewise.
946         * config/rs6000/paired.h: Likewise.
947         * config/rs6000/paired.md: Likewise.
948         * config/rs6000/ppc64-fp.c: Likewise.
949         * config/rs6000/ppu_intrinsics.h: Likewise.
950         * config/rs6000/rs6000.h: Likewise.
951         * config/rs6000/si2vmx.h: Likewise.
952         * config/rs6000/sol-ci.asm: Likewise.
953         * config/rs6000/sol-cn.asm: Likewise.
954         * config/rs6000/spe.h: Likewise.
955         * config/rs6000/spu2vmx.h: Likewise.
956         * config/rs6000/sysv4.h: Likewise.
957         * config/rs6000/tramp.asm: Likewise.
958         * config/rs6000/vec_types.h: Likewise.
959         * config/s390/linux-unwind.h: Likewise.
960         * config/s390/tpf-unwind.h: Likewise.
961         * config/score/crti.asm: Likewise.
962         * config/score/crtn.asm: Likewise.
963         * config/sh/crt1.asm: Likewise.
964         * config/sh/crti.asm: Likewise.
965         * config/sh/crtn.asm: Likewise.
966         * config/sh/divtab-sh4-300.c: Likewise.
967         * config/sh/divtab-sh4.c: Likewise.
968         * config/sh/divtab.c: Likewise.
969         * config/sh/lib1funcs-4-300.asm: Likewise.
970         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
971         * config/sh/lib1funcs.asm: Likewise.
972         * config/sh/lib1funcs.h: Likewise.
973         * config/sh/linux-atomic.asm: Likewise.
974         * config/sh/linux-unwind.h: Likewise.
975         * config/sh/shmedia.h: Likewise.
976         * config/sh/sshmedia.h: Likewise.
977         * config/sh/ushmedia.h: Likewise.
978         * config/sparc/crtfastmath.c: Likewise.
979         * config/sparc/linux-unwind.h: Likewise.
980         * config/sparc/sol2-c1.asm: Likewise.
981         * config/sparc/sol2-ci.asm: Likewise.
982         * config/sparc/sol2-cn.asm: Likewise.
983         * config/spu/divmodti4.c: Likewise.
984         * config/spu/divv2df3.c: Likewise.
985         * config/spu/float_disf.c: Likewise.
986         * config/spu/float_unsdidf.c: Likewise.
987         * config/spu/float_unsdisf.c: Likewise.
988         * config/spu/float_unssidf.c: Likewise.
989         * config/spu/mfc_multi_tag_release.c: Likewise.
990         * config/spu/mfc_multi_tag_reserve.c: Likewise.
991         * config/spu/mfc_tag_release.c: Likewise.
992         * config/spu/mfc_tag_reserve.c: Likewise.
993         * config/spu/mfc_tag_table.c: Likewise.
994         * config/spu/multi3.c: Likewise.
995         * config/spu/spu_internals.h: Likewise.
996         * config/spu/spu_intrinsics.h: Likewise.
997         * config/spu/spu_mfcio.h: Likewise.
998         * config/spu/vec_types.h: Likewise.
999         * config/spu/vmx2spu.h: Likewise.
1000         * config/stormy16/stormy16-lib2.c: Likewise.
1001         * config/svr4.h: Likewise.
1002         * config/sync.c: Likewise.
1003         * config/v850/lib1funcs.asm: Likewise.
1004         * config/vxlib-tls.c: Likewise.
1005         * config/vxlib.c: Likewise.
1006         * config/vxworks-dummy.h: Likewise.
1007         * config/xtensa/crti.asm: Likewise.
1008         * config/xtensa/crtn.asm: Likewise.
1009         * config/xtensa/ieee754-df.S: Likewise.
1010         * config/xtensa/ieee754-sf.S: Likewise.
1011         * config/xtensa/lib1funcs.asm: Likewise.
1012         * config/xtensa/lib2funcs.S: Likewise.
1013         * config/xtensa/linux-unwind.h: Likewise.
1014         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
1015         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
1016         * coretypes.h: Likewise.
1017         * crtstuff.c: Likewise.
1018         * defaults.h: Likewise.
1019         * dwarf2.h: Likewise.
1020         * emutls.c: Likewise.
1021         * gbl-ctors.h: Likewise.
1022         * gcov-io.h: Likewise.
1023         * ginclude/float.h: Likewise.
1024         * ginclude/iso646.h: Likewise.
1025         * ginclude/stdarg.h: Likewise.
1026         * ginclude/stdbool.h: Likewise.
1027         * ginclude/stddef.h: Likewise.
1028         * ginclude/stdfix.h: Likewise.
1029         * ginclude/stdint-gcc.h: Likewise.
1030         * ginclude/tgmath.h: Likewise.
1031         * gthr-aix.h: Likewise.
1032         * gthr-dce.h: Likewise.
1033         * gthr-gnat.c: Likewise.
1034         * gthr-gnat.h: Likewise.
1035         * gthr-lynx.h: Likewise.
1036         * gthr-mipssde.h: Likewise.
1037         * gthr-nks.h: Likewise.
1038         * gthr-posix.c: Likewise.
1039         * gthr-posix.h: Likewise.
1040         * gthr-posix95.h: Likewise.
1041         * gthr-rtems.h: Likewise.
1042         * gthr-single.h: Likewise.
1043         * gthr-solaris.h: Likewise.
1044         * gthr-tpf.h: Likewise.
1045         * gthr-vxworks.h: Likewise.
1046         * gthr-win32.h: Likewise.
1047         * gthr.h: Likewise.
1048         * libgcc2.c: Likewise.
1049         * libgcc2.h: Likewise.
1050         * libgcov.c: Likewise.
1051         * tsystem.h: Likewise.
1052         * typeclass.h: Likewise.
1053         * unwind-c.c: Likewise.
1054         * unwind-compat.h: Likewise.
1055         * unwind-dw2-fde-compat.c: Likewise.
1056         * unwind-dw2-fde-darwin.c: Likewise.
1057         * unwind-dw2-fde-glibc.c: Likewise.
1058         * unwind-dw2-fde.c: Likewise.
1059         * unwind-dw2-fde.h: Likewise.
1060         * unwind-dw2.c: Likewise.
1061         * unwind-dw2.h: Likewise.
1062         * unwind-generic.h: Likewise.
1063         * unwind-pe.h: Likewise.
1064         * unwind-sjlj.c: Likewise.
1065         * unwind.inc: Likewise.
1066         * config/arm/neon-gen.ml: Change generated copyright header to
1067         refer to version 3 of the GNU General Public License with
1068         version 3.1 of the GCC Runtime Library Exception and to point
1069         readers at the COPYING3 and COPYING3.RUNTIME files and the
1070         FSF's license web page.
1071         * config/arm/arm_neon.h: Regenerate.
1072
1073 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1074
1075         * config/cris/cris.md: Change copyright header to refer to version
1076         3 of the GNU General Public License.
1077         * doc/install.texi2html: Change copyright header to refer to version
1078         3 of the GNU General Public License and to point readers at the
1079         COPYING3 file and the FSF's license web page.
1080         * config/vax/linux.h: Likewise.
1081
1082 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
1083
1084         * config/i386/i386.md (cmpcc): New.
1085         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
1086         (sync_compare_and_swap_cc*): Delete.
1087
1088         * config/s390/s390.c (s390_compare_emitted): Remove.
1089         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
1090         s390_compare_emitted used to be handled.  Assert that modes match.
1091         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
1092         refer to sync_compare_and_swap_ccsi.
1093         * config/s390/s390.h (s390_compare_emitted): Remove.
1094         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
1095         instead of s390_compare_emitted.
1096         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
1097         instead of s390_compare_emitted.
1098         * config/s390/s390.md (cmpcc): New.
1099         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
1100         CC_REGNUM, do not pretend it's set.
1101         (sync_compare_and_swap_cc*): Delete.
1102         * config/s390/predicates.md (cc_reg_operand): New.
1103
1104         * expr.c (sync_compare_and_swap_cc): Delete.
1105         * optabs.h (sync_compare_and_swap_cc): Delete.
1106         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
1107         is being used with can_compare_p.
1108         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
1109         (find_cc_set): New.
1110         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
1111         look for a MODE_CC set instead.  Use emit_store_flag.
1112         (expand_compare_and_swap_loop): Likewise, with some additional
1113         complication to avoid a force_reg when useless.  Use
1114         emit_cmp_and_jump_insns.
1115         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
1116         * doc/md.texi (sync_compare_and_swap_cc): Merge with
1117         sync_compare_and_swap documentation.
1118
1119 2009-04-09  Jan Hubicka  <jh@suse.cz>
1120
1121         * except.c (find_prev_try): Break out from ....
1122         (duplicate_eh_regions): ... here; properly update prev_try pointers
1123         when duplication part of tree.
1124         (dump_eh_tree): Improve dumping.
1125         (verify_eh_region): New.
1126         (verify_eh_tree): Use it.
1127
1128 2009-04-06  Richard Guenther  <rguenther@suse.de>
1129
1130         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
1131         &ARRAY addresses by adjusting their types and prepending
1132         a conversion.
1133         * tree-cfg.c (verify_gimple_assign_single): Verify that
1134         addresses are correct.
1135
1136 2009-04-09  Richard Guenther  <rguenther@suse.de>
1137
1138         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
1139         indices into an array reference if possible.
1140         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
1141         Fold POINTER_PLUS_EXPR statements with invariant address.
1142
1143 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
1144
1145         PR target/39634
1146         * config.gcc (powerpc64-*-linux*): Always build biarch.
1147
1148 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
1149
1150         PR c/39613
1151         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
1152         it and pedwarn if this results in an INTEGER_CST.
1153
1154 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1155
1156         * doc/install.texi: Update minimum GMP version.  Remove obsolete
1157         text in MPFR section.
1158
1159 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
1160
1161         * dwarf2out.c (class_scope_p): New static inline.
1162         (class_or_namespace_scope_p): Use it.
1163         (gen_variable_die): Use DW_TAG_member tag for static data member
1164         declarations instead of DW_TAG_variable.
1165
1166         PR middle-end/39573
1167         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
1168         variables.
1169
1170 2009-04-08  Richard Guenther  <rguenther@suse.de>
1171
1172         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
1173         valueize random data.
1174
1175 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
1176
1177         * config.gcc (aix tm_file):  Add aix-stdint.h.
1178         (aix tm clause use_gcc_stdint):  Set to wrap.
1179         * config/rs6000/aix-stdint.h:  New file.
1180         
1181 2009-04-08  Richard Guenther  <rguenther@suse.de>
1182
1183         PR middle-end/36291
1184         * tree-dfa.c (add_referenced_var): Do not recurse into
1185         global initializers.
1186         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
1187         exposed variables.
1188         (fold_const_aggregate_ref): Likewise.
1189
1190 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
1191
1192         * recog.c (ordered_comparison_operator): New.
1193         * gensupport.c (std_preds): Add it.
1194         * doc/md.texi (Machine-Independent Predicates): Document it.
1195
1196 2009-04-08  Jan Hubicka  <jh@suse.cz>
1197
1198         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
1199         * function.h (rtl_eh): Remove exception_handler_label_map.
1200         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
1201         remove_exception_handler_label, for_each_eh_label_1): Remove.
1202         (rtl_remove_unreachable_regions): Remove.
1203         (convert_from_eh_region_ranges): Do not remove unreachable regions.
1204         (find_exception_handler_labels): Don't build the hashtable.
1205         (maybe_remove_eh_handler): Remove.
1206         (for_each_eh_label): Rewrite to walk the tree.
1207         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
1208         * except.h (maybe_remove_eh_handler): Remove.
1209         * passes.c (init_optimization_passes): Schedule second EH cleanup
1210         before out-of-ssa.
1211         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
1212         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
1213
1214 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
1215
1216         * genoutput.c (validate_optab_operands): New.
1217         (gen_insn, gen_expand): Call it.
1218
1219         * genflags.c (gen_insn): Detect misused iterators.
1220         (main): Pass line_no to gen_insn, exit with status 1 on error.
1221
1222         * genextract.c (line_no): Make global.
1223         (VEC_safe_set_locstr): Change assertion to error message.
1224         (main): Exit with status 1 on error.
1225
1226 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
1227
1228         PR c/39614
1229         PR c/39673
1230         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
1231         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
1232         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
1233         * c-convert.c (convert): Do not call fold on results of conversion
1234         functions when the result is a C_MAYBE_CONST_EXPR.
1235         * c-parser.c (c_parser_postfix_expression): Do not fold condition
1236         of __builtin_choose_expr.
1237         * c-typeck.c (remove_c_maybe_const_expr): New.
1238         (build_unary_op, build_conditional_expr, build_compound_expr,
1239         build_binary_op, c_objc_common_truthvalue_conversion): Call
1240         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
1241         integer operands.
1242
1243 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
1244
1245         * fold-const.c (const_binop): Combine two VECTOR_CST under operation 
1246         CODE to produce a new one. Add a prototype to use fold_convert_const
1247
1248 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
1249
1250         PR bootstrap/39660
1251         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
1252         mix declarations and code.
1253
1254 2009-04-08  Ben Elliston  <bje@au.ibm.com>
1255
1256         * gcc.c: Replace `CC' with `GCC' throughout.
1257
1258 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1259
1260         * doc/invoke.texi: Document Atom support.
1261
1262 2009-04-07  Jason Merrill  <jason@redhat.com>
1263
1264         PR c++/25185
1265         * c-common.h, c-common.c: Add flag_pretty_templates.
1266         * c-opts.c (c_common_handle_option): Set it.
1267         * c.opt: Add -fno-pretty-templates.
1268         * doc/invoke.texi (C++ Dialect Options): Likewise.
1269
1270 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
1271
1272         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
1273         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
1274         (ia64_expand_builtin): Likewise.
1275
1276 2009-04-07  Martin Jambor  <mjambor@suse.cz>
1277
1278         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
1279         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
1280         ADDR_EXPRS are include too.
1281
1282 2009-04-07  Richard Guenther  <rguenther@suse.de>
1283
1284         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
1285         decls are only used if passes as parameters or if they are
1286         local statics and the call is not to a builtin.
1287         (call_may_clobber_ref_p_1): Likewise.
1288
1289 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1290
1291         * expr.c (do_store_flag): Remove last argument.  Simplify code
1292         to avoid duplication of tests already done by can_compare_p.
1293         (expand_expr_real_1): Adjust caller.
1294
1295 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1296
1297         * optabs.c (can_compare_p): Test the predicate of a
1298         cbranch and cstore pattern.
1299
1300 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1301
1302         * expr.c (convert_move): Use emit_store_flag instead of
1303         "emulating" it.
1304
1305 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
1306
1307         * config/i386/i386.c (ix86_compare_emitted): Remove.
1308         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
1309         ix86_compare_op0 like ix86_compare_emitted used to be handled.
1310         * config/i386/i386.h (ix86_compare_emitted): Remove.
1311         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
1312         instead of ix86_compare_emitted.
1313         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
1314
1315 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
1316
1317         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
1318         Add t-sysroot-suffix to tmake_file.
1319         * config/print-sysroot-suffix.sh: New file.
1320         * config/t-sysroot-suffix: New file.
1321
1322 2009-04-07  Ben Elliston  <bje@au.ibm.com>
1323
1324         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
1325         as the latter produces a warning when the target does not support
1326         infinity.
1327
1328 2009-04-07  Ben Elliston  <bje@au.ibm.com>
1329
1330         * dfp.c: Replace type punning assignments with memcpy throughout.
1331         * Makefile.in (dfp.o-warn): Remove.
1332         
1333 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
1334
1335         PR target/39634
1336         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
1337         Include soft-fp/t-softfp after rs6000/t-linux64.
1338
1339 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
1340
1341         * stor-layout.c (set_sizetype): Use the full precision of their
1342         machine mode for bitsize types.
1343
1344 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
1345
1346         * config/i386/i386.md: Revert 2 accidental checkins.
1347
1348 2009-04-06  Joey Ye  <joey.ye@intel.com>
1349             Xuepeng Guo <xuepeng.guo@intel.com>
1350             H.J. Lu  <hongjiu.lu@intel.com>
1351
1352         Atom pipeline model, tuning and insn selection.
1353         * config.gcc (atom): Add atom config options and target.
1354
1355         * config/i386/atom.md: New.
1356
1357         * config/i386/i386.c (atom_cost): New cost.
1358         (m_ATOM): New macro flag.
1359         (initial_ix86_tune_features): Set m_ATOM.
1360         (x86_accumulate_outgoing_args): Likewise.
1361         (x86_arch_always_fancy_math_387): Likewise.
1362         (processor_target): Add Atom cost.
1363         (cpu_names): Add Atom cpu name.
1364         (override_options): Set Atom ISA.
1365         (ix86_issue_rate): New case PROCESSOR_ATOM.
1366         (ix86_adjust_cost): Likewise.
1367
1368         * config/i386/i386.h (TARGET_ATOM): New target macro.
1369         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
1370         (TARGET_OPT_AGU): New target option.
1371         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
1372         (processor_type): Add PROCESSOR_ATOM.
1373
1374         * config/i386/i386.md (cpu): Add new value "atom".
1375         (use_carry, movu): New attr.
1376         (atom.md): Include atom.md.
1377         (adddi3_carry_rex64): Set attr "use_carry".
1378         (addqi3_carry): Likewise.
1379         (addhi3_carry): Likewise.
1380         (addsi3_carry): Likewise.
1381         (*addsi3_carry_zext): Likewise.
1382         (subdi3_carry_rex64): Likewise.
1383         (subqi3_carry): Likewise.
1384         (subhi3_carry): Likewise.
1385         (subsi3_carry): Likewise.
1386         (x86_movdicc_0_m1_rex64): Likewise.
1387         (*x86_movdicc_0_m1_se): Likewise.
1388         (x86_movsicc_0_m1): Likewise.
1389         (*x86_movsicc_0_m1_se): Likewise.
1390         (*adddi_1_rex64): Emit add insn as much as possible.
1391         (*addsi_1): Likewise.
1392         (return_internal): Set atom_unit.
1393         (return_internal_long): Likewise.
1394         (return_pop_internal): Likewise.
1395         (*rcpsf2_sse): Set atom_sse_attr attr.
1396         (*qrt<mode>2_sse): Likewise.
1397         (*prefetch_sse): Likewise.
1398
1399         * config/i386/i386-c.c (ix86_target_macros_internal): New case
1400         PROCESSOR_ATOM.
1401         (ix86_target_macros_internal): Likewise.
1402
1403         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
1404         (*prefetch_sse_rex): Likewise.
1405         (sse_rcpv4sf2): Likewise.
1406         (sse_vmrcpv4sf2): Likewise.
1407         (sse_sqrtv4sf2): Likewise.
1408         (<sse>_vmsqrt<mode>2): Likewise.
1409         (sse_ldmxcsr): Likewise.
1410         (sse_stmxcsr): Likewise.
1411         (*sse_sfence): Likewise.
1412         (sse2_clflush): Likewise.
1413         (*sse2_mfence): Likewise.
1414         (*sse2_lfence): Likewise.
1415         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
1416         (<sse>_movup<ssemodesuffixf2c>): Likewise.
1417         (avx_movdqu<avxmodesuffix>): Likewise.
1418         (avx_lddqu<avxmodesuffix>): Likewise.
1419         (sse2_movntv2di): Change attr "type" to "ssemov".
1420         (sse2_movntsi): Likewise.
1421         (rsqrtv8sf2): Change attr "type" to "sseadd".
1422         (sse3_addsubv2df3): Set attr "atom_unit".
1423         (sse3_h<plusminus_insn>v4sf3): Likewise.
1424         (*sse2_pmaddwd): Likewise.
1425         (*vec_extractv2di_1_rex64): Likewise.
1426         (*vec_extractv2di_1_avx): Likewise.
1427         (sse2_psadbw): Likewise.
1428         (ssse3_phaddwv8hi3): Likewise.
1429         (ssse3_phaddwv4hi3): Likewise.
1430         (ssse3_phadddv4si3): Likewise.
1431         (ssse3_phadddv2si3): Likewise.
1432         (ssse3_phaddswv8hi3): Likewise.
1433         (ssse3_phaddswv4hi3): Likewise.
1434         (ssse3_phsubwv8hi3): Likewise.
1435         (ssse3_phsubwv4hi3): Likewise.
1436         (ssse3_phsubdv4si3): Likewise.
1437         (ssse3_phsubdv2si3): Likewise.
1438         (ssse3_phsubswv8hi3): Likewise.
1439         (ssse3_phsubswv4hi3): Likewise.
1440         (ssse3_pmaddubsw128): Likewise.
1441         (sse3_pmaddubsw: Likewise.
1442         (ssse3_palignrti): Likewise.
1443         (ssse3_palignrdi): Likewise.
1444
1445 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
1446
1447         * doc/install.texi (Specific): Fix two cross-references to MinGW.
1448
1449 2009-04-06  Richard Guenther  <rguenther@suse.de>
1450
1451         PR tree-optimization/28868
1452         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
1453         of which PHI results we inserted.
1454         (insert_into_preds_of_block): Record inserted PHIs.
1455         (eliminate): Eliminate redundant PHI nodes.
1456         (init_pre): Init inserted_phi_names.
1457
1458 2009-04-06  Richard Guenther  <rguenther@suse.de>
1459
1460         PR tree-optimization/39643
1461         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
1462         IMAGPART_EXPRs of complex constants.
1463         (execute_fold_all_builtins): If we folded a call queue
1464         TODO_update_address_taken.
1465
1466 2009-04-06  Jan Hubicka  <jh@suse.cz>
1467
1468         PR middle-end/39659
1469         * except.c (remove_unreachable_regions): Propagate may_contain_throw
1470         flag.
1471
1472 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
1473
1474         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
1475         delay slot.
1476         (ic_invalidate_array): Likewise.
1477
1478 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
1479
1480         * calls.c (emit_library_call_value_1): Fix a problem with parameter
1481         alignment for library calls.
1482
1483 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
1484
1485         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
1486         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
1487         * config/i386/mingw-stdint.h:  New file.
1488
1489 2009-04-05  Richard Guenther  <rguenther@suse.de>
1490
1491         PR tree-optimization/39648
1492         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
1493         our &A vs. &A[0] IL deficiencies.
1494
1495 2009-04-04  Jan Hubicka  <jh@suse.cz>
1496
1497         * except.c (sjlj_find_directly_reachable_regions): Be ready for
1498         removed toplevel regions.
1499         (sjlj_mark_call_sites): Likewise.
1500
1501 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
1502
1503         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
1504         (cygwin tm clause use_gcc_stdint):  Set to wrap.
1505         * config/i386/cygwin-stdint.h:  New file.
1506
1507 2009-04-04  Richard Guenther  <rguenther@suse.de>
1508
1509         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
1510         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
1511         single-argument PHIs if we are in loop-closed SSA form.
1512         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
1513         for the pre-condition.
1514         (slpeel_tree_peel_loop_to_edge): Likewise.
1515         (vect_build_loop_niters): Take an optional sequence to append stmts.
1516         (vect_generate_tmps_on_preheader): Likewise.
1517         (vect_do_peeling_for_loop_bound): Take extra guards for the
1518         pre-condition.
1519         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
1520         the cost model check.
1521         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
1522         guards if we are going to peel.  Do not apply versioning in that case.
1523         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
1524         (vect_do_peeling_for_loop_bound): Likewise.
1525         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
1526         loop bound only record extra pre-conditions, do not apply loop
1527         versioning.
1528
1529 2009-04-04  Richard Guenther  <rguenther@suse.de>
1530
1531         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
1532         renaming code.
1533
1534 2009-04-04  Jan Hubicka  <jh@suse.cz>
1535
1536         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
1537         last_basic_block for size of bb->index indexed array.
1538         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
1539         compute_out, link_btr_uses, build_btr_def_use_webs,
1540         build_btr_def_use_webs, migrate_btr_defs): Likewise.
1541
1542 2009-04-04  Jan Hubicka  <jh@suse.cz>
1543
1544         * except.c (remove_eh_handler_and_replace): Break out from ...
1545         (remove_eh_handler): ... here.
1546         (bring_to_root): New function.
1547         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
1548         handled ones, bring others to root of tree.
1549
1550 2009-04-04  Jan Hubicka  <jh@suse.cz>
1551
1552         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
1553         (all_phis_safe_to_merge): New function.
1554         (update_info): New structure.
1555         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
1556         (cleanup_empty_eh): Update SSA if possible.
1557
1558 2009-04-04  Richard Guenther  <rguenther@suse.de>
1559
1560         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
1561         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
1562         (append_vuse): Likewise.
1563
1564 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
1565
1566         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
1567         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
1568         instead of REG_UNSAVED for DW_CFA_undefined.
1569         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
1570         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
1571         outermost frame.
1572
1573 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
1574
1575         PR target/39501
1576         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
1577         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
1578         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
1579
1580 2009-04-04  Richard Guenther  <rguenther@suse.de>
1581
1582         PR tree-optimization/8781
1583         PR tree-optimization/37892
1584         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
1585         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
1586         (valueize_refs): Call it for *& valueizations.
1587         (shared_reference_ops_from_ref): Rename to ...
1588         (valueize_shared_reference_ops_from_ref): ... this and valueize.
1589         (shared_reference_ops_from_call): Rename to ...
1590         (valueize_shared_reference_ops_from_call): ... this and valueize.
1591         (vn_reference_lookup): Update.
1592         (visit_reference_op_call): Likewise.
1593         * tree-ssa-pre.c (phi_translate_1): Fold *&.
1594         (eliminate): Value-replace the call address in call statements.
1595
1596 2009-04-04  Richard Guenther  <rguenther@suse.de>
1597
1598         PR tree-optimization/39636
1599         * tree-ssa-forwprop.c
1600         (forward_propagate_addr_into_variable_array_index): Check for
1601         GIMPLE_ASSIGN before accessing the rhs code.
1602
1603 2009-04-03  Jason Merrill  <jason@redhat.com>
1604
1605         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
1606
1607 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
1608
1609         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
1610         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
1611         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
1612         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
1613         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
1614         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
1615         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
1616         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
1617         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
1618         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
1619         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
1620         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
1621         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
1622         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
1623         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
1624         Use fr_reg_or_fp01_operand instead of fr_register_operand
1625
1626         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
1627         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
1628         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
1629
1630 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
1631
1632         PR rtl-optimization/39607
1633         PR rtl-optimization/39631
1634
1635         Revert:
1636         
1637         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1638         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
1639         instead of DF_LR_OUT.
1640         * ira-lives.c (process_bb_node_lives): Ditto.
1641         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
1642         instead of DF_LR_{OUT,IN}.
1643         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
1644         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
1645
1646 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
1647
1648         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
1649         (execute_lower_omp): Always run but take the short way out if -fopenmp
1650         is not given.
1651         (gate_lower_omp): Remove, forcing the pass manager to always run the
1652         pass and always set PROP_gimple_lomp.
1653         (pass_lower_omp): Remove gate function.
1654         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
1655         PROP_trees.  Instead, require it.
1656         * ipa-cp.c (pass_ipa_cp): Likewise.
1657         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
1658         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
1659         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
1660         and PROP_gimple_leh.
1661
1662 2009-04-03  Richard Guenther  <rguenther@suse.de>
1663
1664         PR middle-end/13146
1665         PR tree-optimization/23940
1666         PR tree-optimization/33237
1667         PR middle-end/33974
1668         PR middle-end/34093
1669         PR tree-optimization/36201
1670         PR tree-optimization/36230
1671         PR tree-optimization/38049
1672         PR tree-optimization/38207
1673         PR tree-optimization/38230
1674         PR tree-optimization/38301
1675         PR tree-optimization/38585
1676         PR middle-end/38895
1677         PR tree-optimization/38985
1678         PR tree-optimization/39299
1679         * tree-ssa-structalias.h: Remove.
1680         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
1681         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
1682         (struct vuse_element_d): Remove.
1683         (struct vuse_vec_d): Likewise.
1684         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
1685         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
1686         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
1687         VUSE_ELEMENT_VAR): Likewise.
1688         (struct voptype_d): Likewise.
1689         (NUM_VOP_FREE_BUCKETS): Likewise.
1690         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
1691         (struct stmt_operands_d): Remove.
1692         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
1693         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
1694         VDEF_NUM, VDEF_VECT): Likewise.
1695         (copy_virtual_operands): Remove.
1696         (operand_build_cmp): Likewise.
1697         (create_ssa_artificial_load_stmt): Likewise.
1698         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
1699         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
1700         vuse_index and mayuse_index members.  Pack and move done and iter_type
1701         members to the front.
1702         (SSA_OP_VMAYUSE): Remove.
1703         (SSA_OP_VIRTUAL_USES): Adjust.
1704         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
1705         (unlink_stmt_vdef): Declare.
1706         (add_to_addressable_set): Remove.
1707         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
1708         (vrp_visit_stmt): Likewise.
1709         * doc/tree-ssa.texi (Alias analysis): Update.
1710         * doc/invoke.texi (max-aliased-vops): Remove docs.
1711         (avg-aliased-vops): Likewise.
1712         * tree-into-ssa.c (syms_to_rename): Remove.
1713         (need_to_update_vops_p): Likewise.
1714         (need_to_initialize_update_ssa_p): Rename to ...
1715         (update_ssa_initialized_fn): ... this.  Track function we are
1716         initialized for.
1717         (symbol_marked_for_renaming): Simplify.
1718         (add_new_name_mapping): Do not set need_to_update_vops_p.
1719         (dump_currdefs): Use SYMS_TO_RENAME.
1720         (rewrite_update_stmt): Always walk all uses/defs.
1721         (dump_update_ssa): Adjust.
1722         (init_update_ssa): Take function argument.  Track what we are
1723         initialized for.
1724         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
1725         (create_new_def_for): Initialize for cfun, assert we are initialized
1726         for cfun.
1727         (mark_sym_for_renaming): Simplify.
1728         (mark_set_for_renaming): Do not initialize update-ssa.
1729         (need_ssa_update_p): Simplify.  Take function argument.
1730         (name_mappings_registered_p): Assert we ask for the correct function.
1731         (name_registered_for_update_p): Likewise.
1732         (ssa_names_to_replace): Likewise.
1733         (release_ssa_name_after_update_ssa): Likewise.
1734         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
1735         (dump_decl_set): Do not print a newline.
1736         (debug_decl_set): Do it here.
1737         (dump_update_ssa): And here.
1738         * tree-ssa-loop-im.c (move_computations): Adjust.
1739         (movement_possibility): Likewise.
1740         (determine_max_movement): Likewise.
1741         (gather_mem_refs_stmt): Likewise.
1742         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
1743         or NAME_MEMORY_TAG.
1744         * tree-complex.c (update_all_vops): Remove.
1745         (expand_complex_move): Adjust.
1746         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
1747         Simplify test for memory referencing statement.  Exclude
1748         non-invariant ADDR_EXPRs.
1749         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
1750         * tree-loop-distribution.c (generate_memset_zero): Adjust.
1751         (rdg_flag_uses): Likewise.
1752         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
1753         related code.
1754         (tree_optimize_tail_calls_1): Also split the
1755         edge from the entry block if we have degenerate PHI nodes in
1756         the first basic block.
1757         * tree.c (init_ttree): Remove memory-tag related code.
1758         (tree_code_size): Likewise.
1759         (tree_node_structure): Likewise.
1760         (build7_stat): Re-write to be build6_stat.
1761         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
1762         (SSA_VAR_P): Adjust.
1763         (struct tree_memory_tag): Remove.
1764         (struct tree_memory_partition_tag): Likewise.
1765         (union tree_node): Adjust.
1766         (build7): Re-write to be build6.
1767         * tree-pass.h (pass_reset_cc_flags): Remove.
1768         (TODO_update_address_taken): New flag.
1769         (pass_simple_dse): Remove.
1770         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
1771         * params.h (MAX_ALIASED_VOPS): Remove.
1772         (AVG_ALIASED_VOPS): Likewise.
1773         * omp-low.c (expand_omp_taskreg): Update SSA form.
1774         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
1775         aliases the lhs in a copy stmt.
1776         * tree-ssa-dse.c (struct address_walk_data): Remove.
1777         (memory_ssa_name_same): Likewise.
1778         (memory_address_same): Likewise.
1779         (get_kill_of_stmt_lhs): Likewise.
1780         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
1781         unused stores.  Look through PHI nodes into post-dominated regions.
1782         (dse_optimize_stmt): Simplify.  Properly remove stores.
1783         (tree_ssa_dse): Compute dominators.
1784         (execute_simple_dse): Remove.
1785         (pass_simple_dse): Likewise.
1786         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
1787         gimple_loaded_syms and gimple_stored_syms computation.
1788         * toplev.c (dump_memory_report): Dump alias and pta stats.
1789         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
1790         (vn_reference_eq): Likewise.
1791         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
1792         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
1793         valueize_vuses): Remove.
1794         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
1795         (get_def_ref_stmt_vuse): ... this.
1796         (vn_reference_lookup_2): New function.
1797         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
1798         walking equivalent vuses.  Simplify.
1799         (vn_reference_lookup): Likewise.
1800         (vn_reference_insert): Likewise.
1801         (vn_reference_insert_pieces): Likewise.
1802         (visit_reference_op_call): Simplify.
1803         (visit_reference_op_load): Likewise.
1804         (visit_reference_op_store): Likewise.
1805         (init_scc_vn): Remove shared_lookup_vuses initialization.
1806         (free_scc_vn): Remove shared_lookup_vuses freeing.
1807         (sort_vuses, sort_vuses_heap): Remove.
1808         (get_ref_from_reference_ops): Export.
1809         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
1810         vector with single vuse pointer.
1811         (vn_reference_lookup_pieces, vn_reference_lookup,
1812         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
1813         (shared_vuses_from_stmt): Remove.
1814         (get_ref_from_reference_ops): Declare.
1815         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
1816         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
1817         memory-tag related code.
1818         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
1819         (likely_value): Add comment, skip static-chain of call statements.
1820         (surely_varying_stmt_p): Adjust.
1821         (gimplify_and_update_call_from_tree): Likewise.
1822         (execute_fold_all_builtins): Do not rebuild alias info.
1823         (gimplify_and_update_call_from_tree): Properly update VOPs.
1824         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
1825         (copy_ref_info): Remove memory-tag related code.
1826         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
1827         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
1828         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
1829         computation.
1830         * tree-ssa-dom.c (gimple_p): Remove typedef.
1831         (eliminate_redundant_computations): Adjust.
1832         (record_equivalences_from_stmt): Likewise.
1833         (avail_expr_hash): Likewise.
1834         (avail_expr_eq): Likewise.
1835         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
1836         (stmt_makes_single_load): Likewise.
1837         (stmt_makes_single_store): Likewise.
1838         * tree-ssa-alias.c: Rewrite completely.
1839         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
1840         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
1841         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
1842         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
1843         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
1844         Remove public functions.
1845         (pass_reset_cc_flags): Remove.
1846         (pass_build_alias): Move ...
1847         * tree-ssa-structalias.c (pass_build_alias): ... here.
1848         * tree-ssa-alias.c (may_be_aliased): Move ...
1849         * tree-flow-inline.h (may_be_aliased): ... here.
1850         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
1851         count_uses_and_derefs): Move ...
1852         * gimple.c: ... here.
1853         * gimple.h (count_uses_and_derefs): Declare.
1854         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
1855         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
1856         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
1857         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
1858         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
1859         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
1860         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
1861         New functions.
1862         * tree-dfa.c (refs_may_alias_p): Move ...
1863         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
1864         * tree-ssa-alias.h: New file.
1865         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
1866         (statement_sink_location): Likewise.
1867         * opts.c (decode_options): Do not adjust max-aliased-vops or
1868         avg-aliased-vops values.
1869         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
1870         (TV_CALL_CLOBBER): Likewise.
1871         (TV_FLOW_SENSITIVE): Likewise.
1872         (TV_FLOW_INSENSITIVE): Likewise.
1873         (TV_MEMORY_PARTITIONING): Likewise.
1874         (TV_ALIAS_STMT_WALK): New timevar.
1875         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
1876         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
1877         (get_address_description): Remove memory-tag related code.
1878         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
1879         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
1880         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
1881         and immediate uses in statements.  Document.
1882         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
1883         (dump_symbols): Remove.
1884         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
1885         * alias.c (get_deref_alias_set): New function split out from ...
1886         (get_alias_set): ... here.
1887         * alias.h (get_deref_alias_set): Declare.
1888         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
1889         type parameter.  Remove restrict pointer handling.  Create a
1890         ref-all pointer in case type-based alias sets do not conflict.
1891         (vect_analyze_data_refs): Remove SMT related code.
1892         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
1893         (vectorizable_load): Likewise.
1894         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
1895         (DR_SYMBOL_TAG, DR_VOPS): Remove.
1896         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
1897         Ignore vops and SMTs.
1898         (dr_analyze_alias): Likewise..
1899         (free_data_ref): Likewise.
1900         (create_data_ref): Likewise.
1901         (analyze_all_data_dependences): Likewise.
1902         (get_references_in_stmt): Adjust.
1903         * tree-flow-inline.h (gimple_aliases_computed_p,
1904         gimple_addressable_vars, gimple_call_clobbered_vars,
1905         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
1906         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
1907         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
1908         gimple_mem_ref_stats): Remove.
1909         (gimple_vop): New function.
1910         (op_iter_next_use): Remove vuses and mayuses cases.
1911         (op_iter_next_def): Remove vdefs case.
1912         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
1913         (clear_and_done_ssa_iter): Do not set removed fields.
1914         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
1915         Assert we are not iterating over vuses or vdefs if not also
1916         iterating over uses or defs.
1917         (op_iter_init_use): Likewise.
1918         (op_iter_init_def): Likewise.
1919         (op_iter_next_vdef): Remove.
1920         (op_iter_next_mustdef): Likewise.
1921         (op_iter_init_vdef): Likewise.
1922         (compare_ssa_operands_equal): Likewise.
1923         (link_use_stmts_after): Handle vuse operand.
1924         (is_call_used): Use is_call_clobbered.
1925         (is_call_clobbered): Global variables are always call clobbered,
1926         query the call-clobbers bitmap.
1927         (mark_call_clobbered): Ignore global variables.
1928         (clear_call_clobbered): Likewise.
1929         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
1930         virtual operands sanity check.
1931         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
1932         Remove.
1933         (TARGET_MEM_REF): Remove TMR_TAG operand.
1934         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
1935         Remove call-clobber related code.
1936         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
1937         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
1938         partitions or escape reason.
1939         (get_single_def_stmt, get_single_def_stmt_from_phi,
1940         get_single_def_stmt_with_phi): Remove.
1941         (dump_referenced_vars): Tidy.
1942         (get_ref_base_and_extent): Allow bare decls.
1943         (collect_dfa_stats): Adjust.
1944         * graphite.c (rename_variables_in_stmt): Adjust.
1945         (graphite_copy_stmts_from_block): Likewise.
1946         (translate_clast): Likewise.
1947         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
1948         (EXPR_DIES): New.
1949         (translate_vuse_through_block): Use the oracle.
1950         (phi_translate_1): Adjust.
1951         (value_dies_in_block_x): Use the oracle.  Cache the outcome
1952         in EXPR_DIES.
1953         (valid_in_sets): Check if the VUSE for
1954         a REFERENCE is available.
1955         (eliminate): Do not remove stmts during elimination,
1956         instead queue and remove them afterwards.
1957         (do_pre): Do not rebuild alias info.
1958         (pass_pre): Run TODO_rebuild_alias before PRE.
1959         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
1960         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
1961         (mark_all_v_defs_stmt): Remove.
1962         (mark_all_v_defs_seq): Adjust.
1963         (sra_replace): Likewise.
1964         (scalarize_use): Likewise.
1965         (scalarize_copy): Likewise.
1966         (scalarize_init): Likewise.
1967         (scalarize_ldst): Likewise.
1968         (todoflags): Remove.
1969         (tree_sra): Do not rebuild alias info.
1970         (tree_sra_early): Adjust.
1971         (pass_sra): Run TODO_update_address_taken before SRA.
1972         * tree-predcom.c (set_alias_info): Remove.
1973         (prepare_initializers_chain): Do not call it.
1974         (mark_virtual_ops_for_renaming): Adjust.
1975         (mark_virtual_ops_for_renaming_list): Remove.
1976         (initialize_root_vars): Adjust.
1977         (initialize_root_vars_lm): Likewise.
1978         (prepare_initializers_chain): Likewise.
1979         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
1980         (may_propagate_copy_into_stmt): Likewise.
1981         (merge_alias_info): Do nothing for now.
1982         (propagate_tree_value_into_stmt): Adjust.
1983         (stmt_may_generate_copy): Likewise.
1984         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
1985         not mark symbols for renaming.
1986         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
1987         with the same statement, make sure to update the new pointed-to one.
1988         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
1989         call statements, do not mark symbols for renaming.
1990         (mark_operand_necessary): Dump something.
1991         (ref_may_be_aliased): New function.
1992         (mark_aliased_reaching_defs_necessary_1): New helper function.
1993         (mark_aliased_reaching_defs_necessary): Likewise.
1994         (mark_all_reaching_defs_necessary_1): Likewise.
1995         (mark_all_reaching_defs_necessary): Likewise.
1996         (propagate_necessity): Do not process virtual PHIs.  For
1997         non-aliased loads mark all reaching definitions as necessary.
1998         For aliased loads and stores mark the immediate dominating
1999         aliased clobbers as necessary.
2000         (visited): New global static.
2001         (perform_tree_ssa_dce): Free visited bitmap after propagating
2002         necessity.
2003         (remove_dead_phis): Perform simple dead virtual PHI removal.
2004         (remove_dead_stmt): Properly unlink virtual operands when
2005         removing stores.
2006         (eliminate_unnecessary_stmts): Schedule PHI removal after
2007         stmt removal.
2008         * tree-ssa-ter.c (is_replaceable_p): Adjust.
2009         (process_replaceable): Likewise.
2010         (find_replaceable_in_bb): Likewise.
2011         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
2012         based on the single gimple vop.
2013         (verify_flow_insensitive_alias_info): Remove.
2014         (verify_flow_sensitive_alias_info): Likewise.
2015         (verify_call_clobbering): Likewise.
2016         (verify_memory_partitions): Likewise.
2017         (verify_alias_info): Likewise.
2018         (verify_ssa): Adjust..
2019         (execute_update_addresses_taken): Export.  Update SSA
2020         manually.  Optimize only when optimizing.  Use a local bitmap.
2021         (pass_update_address_taken): Remove TODO_update_ssa, add
2022         TODO_dump_func.
2023         (pass_update_address_taken): Just use TODO_update_address_taken.
2024         (init_tree_ssa): Do not initialize addressable_vars.
2025         (verify_ssa): Verify new VUSE / VDEF properties.
2026         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
2027         Do not call verify_alias_info.
2028         (delete_tree_ssa): Clear the VUSE, VDEF operands.
2029         Do not free the loaded and stored syms bitmaps.  Reset the escaped
2030         and callused solutions.  Do not free addressable_vars.
2031         Remove memory-tag related code.
2032         (warn_uninitialized_var): Aliases are always available.
2033         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
2034         * lambda-code.c (can_put_in_inner_loop): Adjust.
2035         (can_put_after_inner_loop): Likewise.
2036         (perfect_nestify): Likewise.
2037         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
2038         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
2039         (vectorizable_conversion): Do not mark symbols for renaming.
2040         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
2041         (expand_call_inline): Unlink the calls virtual operands before
2042         replacing it.
2043         (tree_function_versioning): Do not call update_ssa if we are not
2044         updating clones.  Simplify.
2045         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
2046         (propagate_with_phi): Likewise..
2047         * tree-outof-ssa.c (create_temp): Remove memory tag and call
2048         clobber code.  Assert we are not aliased or global.
2049         * tree-flow.h: Include tree-ssa-alias.h
2050         (enum escape_type): Remove.
2051         (struct mem_sym_stats_d): Likewise.
2052         (struct mem_ref_stats_d): Likewise.
2053         (struct gimple_df): Add vop member.  Remove global_var,
2054         call_clobbered_vars, call_used_vars, addressable_vars,
2055         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
2056         escaped and callused members.
2057         (struct ptr_info_def): Remove all members, add points-to solution
2058         member pt.
2059         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
2060         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
2061         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
2062         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
2063         (tree-ssa-alias.o): Likewise.
2064         (toplev.o): Add tree-ssa-alias.h
2065         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
2066         * gimple.c (gimple_set_bb): Fix off-by-one error.
2067         (is_gimple_reg): Do not handle memory tags.
2068         (gimple_copy): Also copy virtual operands.
2069         Delay updating the statement.  Do not reset loaded and stored syms.
2070         (gimple_set_stored_syms): Remove.
2071         (gimple_set_loaded_syms): Likewise.
2072         (gimple_call_copy_skip_args): Copy the virtual operands
2073         and mark the new statement modified.
2074         * tree-ssa-structalias.c (may_alias_p): Remove.
2075         (set_uids_in_ptset): Take the alias set to prune with as
2076         parameter.  Fold in the alias test of may_alias_p.
2077         (compute_points_to_sets): Compute whether a ptr is dereferenced
2078         in a local sbitmap.
2079         (process_constraint): Deal with &ANYTHING on the lhs, reject all
2080         other ADDRESSOF constraints on the lhs.
2081         (get_constraint_for_component_ref): Assert that we don't get
2082         ADDRESSOF constraints from the base of the reference.
2083         Properly generate UNKNOWN_OFFSET for DEREF if needed.
2084         (struct variable_info): Remove collapsed_to member.
2085         (get_varinfo_fc): Remove.
2086         (new_var_info): Do not set collapsed_to.
2087         (dump_constraint): Do not follow cycles.
2088         (dump_constraint_graph): Likewise.
2089         (build_pred_graph): Likewise.
2090         (build_succ_graph): Likewise.
2091         (rewrite_constraints): Likewise.
2092         (do_simple_structure_copy): Remove.
2093         (do_rhs_deref_structure_copy): Remove.
2094         (do_lhs_deref_structure_copy): Remove.
2095         (collapse_rest_of_var): Remove.
2096         (do_structure_copy): Re-implement.
2097         (pta_stats): New global variable.
2098         (dump_pta_stats): New function.
2099         (struct constraint_expr): Make offset signed.
2100         (UNKNOWN_OFFSET): Define special value.
2101         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
2102         (solution_set_expand): New helper function split out from ...
2103         (do_sd_constraint): ... here.
2104         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
2105         (do_ds_constraint): Likewise.
2106         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
2107         and CALLUSED = *CALLUSED.
2108         (set_union_with_increment): Make inc argument signed.
2109         (type_safe): Remove.
2110         (get_constraint_for_ptr_offset): Handle unknown and negative
2111         constant offsets.
2112         (first_vi_for_offset): Handle offsets before start.  Bail
2113         out early for offsets beyond the variable extent.
2114         (first_or_preceding_vi_for_offset): New function.
2115         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
2116         Together with ESCAPED = *ESCAPED this properly computes reachability.
2117         (find_what_var_points_to): New function.
2118         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
2119         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
2120         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
2121         pt_solutions_intersect): New functions.
2122         (compute_call_used_vars): Remove.
2123         (compute_may_aliases): New main entry into PTA computation.
2124         * gimple.h (gimple_p): New typedef.
2125         (struct gimple_statement_base): Remove references_memory_p.
2126         (struct gimple_statement_with_memory_ops_base): Remove
2127         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
2128         members.
2129         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
2130         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
2131         gimple_set_references_memory): Remove.
2132         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
2133         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
2134         New functions.
2135         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
2136         (verify_expr): Allow RESULT_DECL.
2137         (gimple_duplicate_bb): Do not copy virtual operands.
2138         (gimple_duplicate_sese_region): Adjust.
2139         (gimple_duplicate_sese_tail): Likewise.
2140         (mark_virtual_ops_in_region): Remove.
2141         (move_sese_region_to_fn): Do not call it.
2142         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
2143         and pass_simple_dse.
2144         (execute_function_todo): Handle TODO_update_address_taken,
2145         call execute_update_addresses_taken for TODO_rebuild_alias.
2146         (execute_todo): Adjust.
2147         (execute_one_pass): Init dump files early.
2148         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
2149         call-clobbered.
2150         (create_general_new_stmt): Clear vops.
2151         * tree-ssa-reassoc.c (get_rank): Adjust.
2152         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
2153         symbols for renaming.
2154         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
2155         (PARAM_AVG_ALIASED_VOPS): Likewise.
2156         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
2157         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
2158         * tree-ssa-operands.c: Simplify for new virtual operand representation.
2159         (operand_build_cmp, copy_virtual_operands,
2160         create_ssa_artificial_load_stmt, add_to_addressable_set,
2161         gimple_add_to_addresses_taken): Remove public functions.
2162         (unlink_stmt_vdef): New function.
2163
2164 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
2165
2166         * config.gcc (powerpc-*-linux*): Merge variants.
2167
2168 2009-04-02  Chao-ying Fu  <fu@mips.com>
2169             James Grosbach <james.grosbach@microchip.com>
2170
2171         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
2172         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
2173         cop0_sp_offset.
2174         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
2175         keep_interrupts_masked_p, use_debug_exception_return_p.
2176         (mips_attribute_table): Add interrupt, use_shadow_register_set,
2177         keep_interrupts_masked, use_debug_exception_return.
2178         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
2179         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
2180         New functions.
2181         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
2182         (mips_print_operand): Process COP0 registers to print $0 .. $31
2183         correctly for GAS to process.
2184         (mips_interrupt_extra_call_saved_reg_p): New function.
2185         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
2186         extra registers.
2187         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
2188         (mips_compute_frame_info): Add supports for interrupt context that
2189         includes doubleword accumulators and COP0 registers.
2190         (mips_for_each_saved_acc): New function.
2191         (mips_for_each_saved_gpr_and_fpr): Change the function name from
2192         mips_for_each_saved_reg.
2193         (mips_save_reg): Save accumulators.
2194         (mips_kernel_reg_p): A new for_each_rtx callback.
2195         (mips_expand_prologue): Support interrupt handlers.
2196         (mips_restore_reg): Restore accumulators.
2197         (mips_expand_epilogue): Support interrupt handlers.
2198         (mips_can_use_return_insn): Return false for interrupt handlers.
2199         (mips_epilogue_uses): New function.
2200         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
2201         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
2202         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
2203         cop0_move): New instructions.
2204         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
2205         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
2206         defines.
2207         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
2208         New defines.
2209         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
2210         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
2211         interrupt handlers, we use K0 as the temporary register.
2212         (EPILOGUE_USES): Change to a function call.
2213         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
2214         handlers, we use K0 as the temporary register.
2215         
2216         * doc/extend.texi (Function Attributes): Document interrupt,
2217         use_shadow_register_set, keep_interrupts_masked,
2218         use_debug_exception_return for MIPS attributes.
2219
2220 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
2221
2222         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
2223         Remove a number of t-files from tmake_file.
2224         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
2225         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
2226         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2227         target_prototype, not TARGET_PROTOTYPE.
2228         (LINK_OS_GNU_SPEC): Define.
2229         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
2230         and darwin-ldoubdle.c.
2231
2232 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2233
2234         PR driver/39293
2235         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
2236         (cpp_options): Ditto.
2237         (default_compilers): Ditto.
2238         (display_help): Ditto.
2239         (process_command): Ditto.
2240         (do_spec_1): Ditto.
2241         (set_input): Use lbasename instead of duplicate code.
2242         (save_temps_prefix): New static for -save-temps=obj.
2243         (save_temps_length): Ditto.
2244         
2245         * doc/invoke.texi (-save-temps=obj): Document new variant to
2246         -save-temps switch.
2247
2248 2009-04-02  Jeff Law  <law@redhat.com>
2249
2250         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
2251         variable.
2252
2253 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2254
2255         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
2256         * configure: Regenerated.
2257
2258 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2259
2260         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
2261         share the argument list.
2262
2263 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2264
2265         Merge
2266
2267         2009-02-12  Diego Novillo  <dnovillo@google.com>
2268
2269         * varpool.c (debug_varpool): New.
2270         * cgraph.h (debug_varpool): Declare.
2271
2272 2009-04-02  Jan Hubicka  <jh@suse.cz>
2273
2274         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
2275         pass.
2276
2277 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
2278
2279         * config/i386/i386.c (ix86_abi): Move initialization to ...
2280         (override_options): Here.
2281
2282 2009-04-02  Christian Bruel  <christian.bruel@st.com>
2283
2284         * config/sh/sh.c (sh_dwarf_register_span): New function.
2285         (TARGET_DWARF_REGISTER_SPAN): Define.
2286         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2287         
2288 2009-04-02  Ira Rosen  <irar@il.ibm.com>
2289
2290         PR tree-optimization/39595
2291         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
2292         interleaved loads group is not  greater than the SLP group size.
2293
2294 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
2295
2296         * builtins.c (is_builtin_name): New.
2297         (called_as_built_in): Use is_builtin_name.
2298         * tree.h (is_builtin_name): New.
2299         * varasm.c (incorporeal_function_p): Use is_builtin_name
2300
2301 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
2302
2303         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
2304
2305 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
2306
2307         PR c++/26693
2308         * c-decl.c (clone_underlying_type): Move this ...
2309         * c-common.c (set_underlying_type): ... here.
2310         Also, make sure the function properly sets TYPE_STUB_DECL() on
2311         the newly created typedef variant type.
2312         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
2313         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
2314         points.
2315
2316 2009-04-02  Richard Guenther  <rguenther@suse.de>
2317
2318         PR tree-optimization/37221
2319         * tree-flow.h (degenerate_phi_result): Declare.
2320         * tree-ssa-dom.c (degenerate_phi_result): Export.
2321         * tree-scalar-evolution.c (analyze_initial_condition): If
2322         the initial condition is defined by a degenerate PHI node
2323         use the degenerate value.
2324
2325 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
2326
2327         PR rtl-optimization/39588
2328         * combine.c (merge_outer_ops): Do not set the constant when this
2329         is not necessary.
2330         (simplify_shift_const_1): Do not modify it either in this case.
2331
2332 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
2333
2334         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
2335         tuning is deprecated if -mtune value is set to an Itanium1 variant.
2336
2337 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
2338
2339         PR c/29027
2340         * c-lex.c (interpret_float): Default (no suffix) is double.
2341
2342 2009-04-1  Xinliang David Li  <davidxl@google.com>
2343
2344         * config/i386/i386.c (legitimate_constant_p): Recognize
2345         all one vector constant.
2346
2347 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2348
2349         * gcc/config/vax/vax.c: Add #includes to silence warnings.
2350         Change #include order to silence two warnings.
2351
2352 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2353
2354         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
2355         (ASM_SPEC): Pass -k to the assembler for PIC code.
2356
2357 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2358
2359         * gcc/config.gcc: Add vax-*-linux* to the switch.
2360         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
2361         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
2362
2363 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2364
2365         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
2366         Use predicate macros instead of GET_CODE() == foo.
2367         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
2368         ashlsi3, rotrsi3, <unnamed>): Likewise.
2369
2370 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2371
2372         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
2373         jbbccihi, jbbccisi): Remova trailing whitespace.
2374         * gcc/config/vax/constraints.md: Likewise.
2375         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
2376         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
2377         * gcc/config/vax/predicates.md: Likewise.
2378         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
2379         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
2380         * gcc/config/vax/vax.h: Likewise.
2381         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
2382
2383 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2384
2385         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
2386         (indirectable_address_p, adjacent_operands_p): Add spaces around
2387         braces.
2388         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
2389
2390 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2391
2392         * gcc/config/vax/vax.c (legitimate_constant_address_p,
2393         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
2394         index_term_p, reg_plus_index_p, legitimate_address_p,
2395         vax_mode_dependent_address_p): Update comments to match functions
2396         modified by the recent int->bool conversion.
2397
2398 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2399
2400         * gcc/config/vax/builtins.md: Update copyright message.
2401         * gcc/config/vax/constraints.md: Likewise.
2402         * gcc/config/vax/netbsd-elf.h: Likewise.
2403         * gcc/config/vax/predicates.md: Likewise.
2404         * gcc/config/vax/vax-protos.h: Likewise.
2405         * gcc/config/vax/vax.c: Likewise.
2406         * gcc/config/vax/vax.h: Likewise.
2407         * gcc/config/vax/vax.md: Likewise.
2408         * gcc/config/vax/vax.opt: Likewise.
2409
2410 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
2411
2412         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
2413         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
2414         * gcc/config/vax/constraints.md (B, R): Likewise.
2415         * gcc/config/vax/predicates.md (external_memory_operand,
2416         nonimmediate_addsub_di_operand): Likewise.
2417         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
2418         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
2419         untyped_call): Likewise.
2420
2421 2009-04-01  Matt Thomas <matt@3am-software.com>
2422
2423         * config/vax/predicates.md: New file.
2424         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
2425         external_const_operand, nonsymbolic_operand, external_memory_operand,
2426         indirect_memory_operand, indexed_memory_operand,
2427         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
2428         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
2429         predicate.
2430         * config/vax/constraints.md: New file.
2431         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
2432         New constraint.
2433         * config/vax/builtins.md: New file.
2434         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
2435         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
2436         jbbccisi): Define.
2437         * config/vax/vax.opt (mqmath): Add option.
2438         * config/vax/vax.md (isfx): Extend with DI.
2439         (VAXintQH, VAXintQHSD): Define.
2440         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
2441         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
2442         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
2443         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
2444         (movdi): Update constraints and use vax_output_int_move().
2445         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
2446         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
2447         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
2448         nonlocal_goto): New.
2449         (mov<mode>): Extend accepted operand types.
2450         (subdi3_old): Rename from subdi3, change update constraints and use
2451         a new implementation.
2452         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
2453         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
2454         MOVE_RATIO, CLEAR_RATIO): Define.
2455         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
2456         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
2457         (PRINT_OPERAND): Redefine using a function instead of inlined code.
2458         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
2459         (split_quadword_operands): Make static and really allow variable
2460         splitting.
2461         (print_operand_address): Update for PIC generation.
2462         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
2463         indexable_address_p, fixup_mathdi_operand,
2464         vax_expand_addsub_di_operands, adjacent_operands_p): New.
2465         (vax_float_literal, legitimate_constant_p,
2466         indirectable_constant_address_p, index_term_p,
2467         reg_plus_index_p): Return bool instead of int.
2468         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
2469         where needed.
2470         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
2471         generation.
2472         (vax_output_conditional_branch): Indent.
2473         (legitimate_constant_address_p, indirectable_constant_address_p,
2474         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
2475         vax_mode_dependent_address_p): Return bool instead of int, update for
2476         PIC generation.
2477         * config/vax/vax-protos.h (legitimate_constant_address_p,
2478         legitimate_constant_p, legitimate_address_p,
2479         vax_mode_dependent_address_p): Change declaration to bool.
2480         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
2481         vax_expand_addsub_di_operands, vax_output_int_subtract,
2482         vax_output_movmemsi): Declare.
2483         (split_quadword_operands, vax_float_literal): Delete declaration.
2484         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
2485         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
2486         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
2487         ASM_OUTPUT_DWARF_PCREL): Define.
2488         (ASM_SPEC): Change definition to allow PIC generation.
2489
2490 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
2491
2492         * doc/sourcebuild.texi: Update front-end requirements.
2493
2494 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2495
2496         PR target/39226
2497         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
2498         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
2499         (booldi3_internal3): Use boolean_or_operator instead of
2500         boolean_operator.
2501
2502 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
2503
2504         PR c/39605
2505         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
2506         declarator whose size is not an integer constant expression but
2507         folds to an integer constant, then treat it as a constant
2508         subsequently.
2509
2510 2009-04-01  Richard Guenther  <rguenther@suse.de>
2511
2512         * fold-const.c (fold_plusminus_mult_expr): Do not fold
2513         i * 4 + 2 to (i * 2 + 1) * 2.
2514
2515 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2516
2517         PR c/37772
2518         * c-parser.c (c_parser_asm_statement): Skip until close paren and
2519         return if c_parser_asm_string_literal returned NULL.
2520
2521 2009-04-01  Nick Clifton  <nickc@redhat.com>
2522
2523         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
2524         already defined.
2525         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
2526         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
2527         other typedefs to avoid conflicts with libgcc2.c.  Define labels
2528         to gain 16-bit bit-manipulation functions from libgcc2.c and then
2529         include it.
2530         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
2531         to gain 16-bit trapping arithmetic functions from libgcc2.c and
2532         then include it.
2533
2534 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
2535
2536         * varasm.c (default_function_rodata_section): Declare DOT as
2537         const char*.
2538
2539 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
2540             Andrey Galkin <agalkin@hypercom.com>
2541
2542         PR/39492
2543         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
2544         Make object_name unique for each process.
2545
2546 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2547
2548         PR other/39591
2549         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
2550         addressable variables in the parallel that could go out of scope while
2551         running queued tasks.
2552
2553 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
2554
2555         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
2556         (CASE_VALUES_THRESHOLD): Redefine.
2557         * config/avr/avr.c (avr_override_options): Remove initialization of
2558         avr_case_values_threshold variable.
2559         (avr_case_values_threshold): Remove variable. Add new function.
2560         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
2561         * config/avr/avr.opt (mno-tablejump): Remove option.
2562         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
2563
2564 2009-04-01  DJ Delorie  <dj@redhat.com>
2565
2566         * varasm.c (default_function_rodata_section): Don't assume
2567         anything about where the first '.' in the section name is.
2568
2569 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
2570
2571         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
2572         rs6000_emit_stack_tie.
2573
2574 2009-03-31  Ian Lance Taylor  <iant@google.com>
2575
2576         * tree-eh.c (tree_remove_unreachable_handlers): Compare
2577         gimple_code with GIMPLE_RESX, not RESX.
2578
2579 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2580
2581         * c-common.c (c_get_ident): New.
2582         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
2583
2584 2009-04-01  Ben Elliston  <bje@au.ibm.com>
2585
2586         * config/rs6000/sysv4.opt (msdata): Improve option description.
2587
2588 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
2589
2590         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
2591         (divdf3_internal_lat): Remove.
2592         (divxf3_internal_lat): Remove.
2593         (divxf3_internal_thr): Remove.
2594         (divxf): Use divxf3_internal.
2595         * config/ia64/div.md (divsf3_internal_lat): New.
2596         (divdf3_internal_lat): New.
2597         (divxf3_internal): New.
2598
2599 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2600
2601         PR c/448
2602         * Makefile.in (USE_GCC_STDINT): Define.
2603         (stmp-int-hdrs): Install stdint.h if applicable.
2604         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
2605         if known.
2606         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
2607         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
2608         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2609         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2610         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2611         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2612         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2613         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2614         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2615         (c_common_nodes_and_builtins): Initialize
2616         underlying_wchar_type_node.  Do not initialize
2617         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
2618         nodes for new types.
2619         (c_stddef_cpp_builtins): Define macros for new types.
2620         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
2621         Remove.
2622         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
2623         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
2624         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
2625         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
2626         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
2627         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
2628         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
2629         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
2630         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
2631         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
2632         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
2633         int16_type_node, int32_type_node, int64_type_node,
2634         uint8_type_node, uint16_type_node, c_uint32_type_node,
2635         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
2636         int_least32_type_node, int_least64_type_node,
2637         uint_least8_type_node, uint_least16_type_node,
2638         uint_least32_type_node, uint_least64_type_node,
2639         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
2640         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
2641         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
2642         uintptr_type_node): Define.
2643         * c-cppbuiltin.c (builtin_define_constants,
2644         builtin_define_type_minmax): New.
2645         (builtin_define_stdint_macros): Define more macros.
2646         (c_cpp_builtins): Define more limit macros.
2647         (type_suffix): New.
2648         (builtin_define_type_max): Define in terms of
2649         builtin_define_type_minmax.  Remove is_long parameter.  All
2650         callers changed.
2651         * config.gcc (use_gcc_stdint): Define.
2652         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
2653         Add newlib-stdint.h for generic targets.
2654         * config/glibc-stdint.h, config/newlib-stdint.h,
2655         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
2656         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
2657         * config/score/score.h (UINTPTR_TYPE): Define.
2658         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
2659         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
2660         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2661         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2662         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2663         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2664         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2665         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
2666         * config/spu/spu.h (STDINT_LONG32): Define.
2667         * configure.ac (use_gcc_stdint): Substitute.
2668         * configure: Regenerate.
2669         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
2670         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
2671         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
2672         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
2673         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
2674         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
2675         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
2676         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
2677         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
2678         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
2679         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
2680         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
2681         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
2682         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
2683         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
2684         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
2685         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
2686         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
2687         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
2688         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
2689         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
2690         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
2691         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
2692         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2693         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
2694         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
2695         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
2696         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2697         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
2698
2699 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
2700
2701         * loop-iv.c (suitable_set_for_replacement): Renamed from
2702         simplify_using_assignment; changed to return bool and to accept new
2703         args DEST and SRC.  Return true iff we find a source/destination pair
2704         that can be used to make a replacement, and fill SRC and DEST if so.
2705         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
2706         changed.
2707         (simplify_using_initial_values): Deal with altered regs here and track
2708         more precisely the effect they have on the validity of our expression.
2709
2710         * loop-iv.c (simplify_using_condition): A condition of the form
2711         (EQ REG CONST) can be used to simply make a substitution.
2712         (simplify_using_initial_values): Keep track of conditions we have seen
2713         and keep using them to simplify new expressions, while applying the
2714         same substitutions to them as to the expression.
2715
2716         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2717         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
2718         GEU/LTU reversed.
2719
2720         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
2721         changed.  Use this when trying to improve the upper bound.
2722         Generate the comparison by using simplify_gen_relational.
2723
2724         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
2725
2726         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
2727         functions.
2728         (simplify_using_assignment, simplify_using_initial_values): Call 
2729         replace_in_expr to make replacements.  Call replace_single_def_regs
2730         once on the initial version of the expression.
2731
2732 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2733
2734         PR target/27237
2735         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2736         
2737 2009-03-31  Richard Guenther  <rguenther@suse.de>
2738
2739         PR middle-end/31029
2740         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
2741         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
2742
2743 2009-03-31  Richard Guenther  <rguenther@suse.de>
2744
2745         * tree.h (div_if_zero_remainder): Declare.
2746         * fold-const.c (div_if_zero_remainder): Export.
2747         * tree-ssa-forwprop.c
2748         (forward_propagate_addr_into_variable_array_index): Handle
2749         constant array index addition outside of the variable index.
2750
2751 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2752
2753         PR target/39592
2754         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
2755         define_splits, floatunssi<mode>2): Require x87 conversions from
2756         DImode to be permitted.
2757
2758 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
2759
2760         PR preprocessor/15638
2761         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
2762
2763 2009-03-31  Richard Guenther  <rguenther@suse.de>
2764
2765         PR middle-end/23401
2766         PR middle-end/27810
2767         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
2768         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
2769         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
2770         a separate statement.
2771         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
2772         (lookup_tmp_var): Likewise.
2773         (is_gimple_formal_tmp_or_call_rhs): Remove.
2774         (is_gimple_reg_or_call_rhs): Rename to ...
2775         (is_gimple_reg_rhs_or_call): ... this.
2776         (is_gimple_mem_or_call_rhs): Rename to ...
2777         (is_gimple_mem_rhs_or_call): ... this.
2778         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
2779         DECL_GIMPLE_REG_P only if is_formal is true.
2780         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
2781         for non-proper post-modify expression gimplification.
2782         (gimplify_self_mod_expr): For post-modify expressions gimplify
2783         the lvalue to a minimal lvalue.
2784         (rhs_predicate_for): Remove formal temp case.
2785         (gimplify_modify_expr_rhs): Likewise.
2786         (gimplify_addr_expr): Use is_gimple_reg.
2787         (gimplify_expr): Remove formal temp cases.
2788         (gimple_regimplify_operands): Likewise.
2789         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
2790         and FILTER_EXPR like constants.
2791         * gimple.c (walk_gimple_op): Fix val_only initialization, use
2792         is_gimple_reg.
2793         (is_gimple_formal_tmp_rhs): Remove.
2794         (is_gimple_reg_rhs): Remove special casing.
2795         (is_gimple_mem_rhs): Fix.
2796         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
2797         (is_gimple_formal_tmp_var): Remove.
2798         (is_gimple_formal_tmp_reg): Likewise.
2799         (is_gimple_min_lval): Allow invariant component ref parts.
2800         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
2801         is_gimple_formal_tmp_reg): Remove declarations.
2802         * tree-cfg.c (verify_expr): Verify that variables with address
2803         taken do not have DECL_GIMPLE_REG_P set.
2804         * tree-mudflap.c (mf_build_check_statement_for): Use
2805         force_gimple_operand instead of gimplify_expr.
2806
2807 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
2808
2809         * modulo-sched.c (sms_schedule_by_order): Pass the actual
2810         schedulable rows to compute_split_row.
2811
2812 2009-03-31  Ben Elliston  <bje@au.ibm.com>
2813
2814         PR target/31635
2815         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
2816         OPT_mvrsave.
2817
2818 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2819
2820         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
2821         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
2822         * configure: Regenerate.
2823         * config.in: Regenerate.
2824         * config/rs6000/rs6000.opt (mtls-markers): Add.
2825         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
2826         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
2827         (tls_ld_aix, tls_ld_sysv): Likewise.
2828         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
2829         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
2830
2831 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
2832
2833         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
2834
2835 2009-03-30  Jan Hubicka  <jh@suse.cz>
2836
2837         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
2838         out of RESX.
2839         (tree_remove_unreachable_handlers): Cleanup EH predecestor
2840         detection and label handling.
2841
2842 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2843
2844         * ira-int.h (ira_allocno): Rename left_conflicts_num to
2845         left_conflicts_size.
2846         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
2847         ALLOCNO_LEFT_CONFLICTS_SIZE.
2848
2849         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
2850         remove_allocno_from_bucket_and_push,
2851         allocno_spill_priority_compare, push_allocnos_to_stack,
2852         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2853         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
2854         (setup_allocno_left_conflicts_num): Ditto.  Rename to
2855         setup_allocno_left_conflicts_size.
2856         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
2857         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
2858         setup_allocno_left_conflicts_size instead of
2859         setup_allocno_left_conflicts_num.
2860
2861         * ira-build.c (ira_create_allocno): Use
2862         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
2863         ALLOCNO_LEFT_CONFLICTS_NUM.
2864                 
2865 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
2866
2867         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
2868         instead of DF_LR_OUT.
2869
2870         * ira-lives.c (process_bb_node_lives): Ditto.
2871
2872         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
2873         instead of DF_LR_{OUT,IN}.
2874
2875         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
2876
2877         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
2878
2879 2009-03-30  Jan Hubicka  <jh@suse.cz>
2880
2881         * except.c (label_to_region_map): Fix thinko.
2882
2883 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
2884
2885         PR middle-end/38237
2886         * tree.h (tree_find_value): New declaration.
2887         * tree.c (tree_find_value): New function.
2888         * varasm.c (assemble_external): Avoid duplicate entries on lists.
2889
2890 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
2891
2892         PR debug/39563
2893         * c-decl.c (struct c_binding): Add locus field.
2894         (bind): Add locus argument, set locus field from it.
2895         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
2896         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
2897         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
2898         implicitly_declare, undeclared_variable, lookup_label,
2899         declare_label, c_make_fname_decl, c_builtin_function,
2900         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
2901         bind callers.
2902
2903 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2904
2905         PR target/38781
2906         * config/i386/i386.c (classify_argument): Check total size of
2907         structure.
2908
2909 2009-03-30  Martin Jambor  <mjambor@suse.cz>
2910
2911         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
2912         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
2913         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
2914         respectively.
2915
2916         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
2917         seen_variable_array_ref while also traversing a union.
2918
2919         * tree-inline.c (optimize_inline_calls): Do not call
2920         cgraph_node_remove_callees.
2921         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
2922         (pass_remove_cgraph_callee_edges): New variable.
2923         * passes.c (init_optimization_passes): Add
2924         pass_remove_cgraph_callee_edges after early inlining and before all
2925         late intraprocedural passes.
2926
2927         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
2928
2929 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2930
2931         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
2932         Fix typos in names.
2933
2934 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2935
2936         * combine.c (simplify_comparison): Use have_insn_for.
2937         * dojump.c (do_jump): Likewise.
2938
2939 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2940
2941         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
2942         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
2943         sparc_compare_op0 like sparc_compare_emitted used to be handled.
2944         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
2945         instead of sparc_compare_emitted.
2946         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
2947         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
2948         instead of sparc_compare_emitted.
2949
2950 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2951
2952         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
2953         enter/exit cfglayout mode.
2954         (pass_partition_block): Require it.
2955         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
2956         (combine_instructions): Track basic blocks instead of labels.
2957         (update_cfg_for_uncondjump): New.
2958         (try_combine): Use it.  Update jumps after rescanning.
2959         (pass_combine): Require PROP_cfglayout.
2960         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
2961
2962 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2963
2964         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
2965         Provide/destroy PROP_cfglayout respectively.
2966         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
2967         * tree-pass.h (PROP_cfglayout): New.
2968
2969 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
2970
2971         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
2972         fold_convert_const_fixed_from_fixed,
2973         fold_convert_const_fixed_from_int,
2974         fold_convert_const_fixed_from_real, fold_negate_const): Do not
2975         set TREE_CONSTANT_OVERFLOW.
2976         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
2977         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
2978
2979 2009-03-30  Ira Rosen  <irar@il.ibm.com>
2980
2981         * tree-vect-loop-manip.c: New file.
2982         * tree-vectorizer.c: Update documentation and included files.
2983         (vect_loop_location): Make extern.
2984         (rename_use_op): Move to tree-vect-loop-manip.c
2985         (rename_variables_in_bb, rename_variables_in_loop, 
2986         slpeel_update_phis_for_duplicate_loop, 
2987         slpeel_update_phi_nodes_for_guard1,
2988         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
2989         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
2990         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2991         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
2992         find_loop_location): Likewise.
2993         (new_stmt_vec_info): Move to tree-vect-stmts.c.
2994         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
2995         get_vectype_for_scalar_type, vect_is_simple_use,
2996         supportable_widening_operation, supportable_narrowing_operation):
2997         Likewise.
2998         (bb_in_loop_p): Move to tree-vect-loop.c.
2999         (new_loop_vec_info, destroy_loop_vec_info, 
3000         reduction_code_for_scalar_code, report_vect_op, 
3001         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
3002         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
3003         (vect_supportable_dr_alignment): Likewise.
3004         * tree-vectorizer.h (tree-data-ref.h): Include.
3005         (vect_loop_location): Declare.
3006         Reorganize function declarations according to the new file structure.
3007         * tree-vect-loop.c: New file.
3008         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
3009         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
3010         * tree-vect-data-refs.c: New file.
3011         * tree-vect-patterns.c (timevar.h): Don't include.
3012         * tree-vect-stmts.c: New file.
3013         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
3014         tree-vect-slp.c, tree-vect-loop.c.
3015         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
3016         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
3017         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
3018         (tree-vect-analyze.o): Remove.
3019         (tree-vect-transform.o): Likewise.
3020         (tree-vect-data-refs.o): Add rule.
3021         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
3022         tree-vect-slp.o): Likewise.
3023         (tree-vect-patterns.o): Remove redundant dependencies.
3024         (tree-vectorizer.o): Likewise.
3025         * tree-vect-slp.c: New file.
3026
3027 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3028
3029         * optc-gen.awk: Warn if an option flag has multiple different
3030         help strings.
3031
3032 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
3033
3034         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
3035         -floop-block): Document dependences on PPL, CLooG and Graphite.
3036
3037 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
3038
3039         PR rtl-optimization/323
3040         * c-common.c (c_fully_fold, convert_and_check,
3041         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
3042         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
3043         * c-common.def (EXCESS_PRECISION_EXPR): New.
3044         * c-cppbuiltin.c (builtin_define_float_constants): Define
3045         constants with enough digits for long double.
3046         * c-lex.c (interpret_float): Interpret constant with excess
3047         precision where appropriate.
3048         * c-opts.c (c_common_post_options): Set
3049         flag_excess_precision_cmdline.  Give an error for
3050         -fexcess-precision=standard for C++ for processors where the
3051         option is significant.
3052         * c-parser.c (c_parser_conditional_expression): Handle excess
3053         precision in condition.
3054         * c-typeck.c (convert_arguments): Handle arguments with excess
3055         precision.
3056         (build_unary_op): Move excess precision outside operation.
3057         (build_conditional_expr): Likewise.
3058         (build_compound_expr): Likewise.
3059         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
3060         (build_modify_expr): Handle excess precision in RHS.
3061         (convert_for_assignment): Handle excess precision in converted
3062         value.
3063         (digest_init, output_init_element, process_init_element): Handle
3064         excess precision in initializer.
3065         (c_finish_return): Handle excess precision in return value.
3066         (build_binary_op): Handle excess precision in operands and add
3067         excess precision as needed for operation.
3068         * common.opt (-fexcess-precision=): New option.
3069         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
3070         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
3071         For standard excess precision, output explicit conversion to and
3072         truncation from XFmode.
3073         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
3074         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
3075         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
3076         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
3077         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
3078         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
3079         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
3080         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
3081         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
3082         define_splits, sqrt<mode>2): Disable where appropriate for
3083         standard excess precision.
3084         * convert.c (convert_to_real): Do not shorten arithmetic to type
3085         for which excess precision would be used.
3086         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
3087         * doc/invoke.texi (-fexcess-precision=): Document option.
3088         (-mfpmath=): Correct index entry.
3089         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
3090         flag_excess_precision): New.
3091         * langhooks.c (lhd_post_options): Set
3092         flag_excess_precision_cmdline.
3093         * opts.c (common_handle_option): Handle -fexcess-precision=.
3094         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
3095         init_excess_precision): New.
3096         (lang_dependent_init_target): Call init_excess_precision.
3097         * tree.c (excess_precision_type): New.
3098         * tree.h (excess_precision_type): Declare.
3099
3100 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
3101
3102         PR c/35235
3103         * c-typeck.c (build_component_ref): Do not copy qualifiers from
3104         non-lvalue to component.
3105
3106 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
3107
3108         PR preprocessor/34695
3109         * Makefile.in (c-opts.o): Depend on c-tree.h.
3110         * c-common.c: Move down include of diagnostic.h.
3111         (done_lexing, c_cpp_error): New.
3112         * c-common.h (done_lexing): Declare.
3113         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
3114         (parse_in).
3115         * c-opts.c: Include c-tree.h.
3116         (c_common_init_options): Set preprocessor error callback.
3117         (c_common_handle_option): Do not set preprocessor
3118         inhibit_warnings, warnings_are_errors, warn_system_headers,
3119         pedantic_errors or inhibit_warnings flags.
3120         (c_common_post_options): Do not check cpp_errors (parse_in).
3121         (c_common_finish): Do not output dependencies if there were
3122         errors.  Do not check return value of cpp_finish.
3123         * c-ppoutput.c (pp_file_change): Set input_location.
3124         * c-tree.h (c_cpp_error): Declare.
3125         * diagnostic.c (diagnostic_set_info_translated): Also initialize
3126         override_column.
3127         (diagnostic_build_prefix): Check override_column.
3128         * diagnostic.h (diagnostic_info): Add override_column field.
3129         (diagnostic_override_column): Define.
3130
3131 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
3132
3133         * c-common.c (c_expand_expr, c_staticp): Remove.
3134         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
3135         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
3136         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
3137         * c-gimplify.c (gimplify_compound_literal_expr,
3138         optimize_compound_literals_in_ctor): Remove.
3139         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
3140         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
3141         * c-semantics.c (emit_local_var): Remove.
3142
3143         * langhooks-def.h (lhd_expand_expr): Remove.
3144         * langhooks.c (lhd_expand_expr): Remove.
3145         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
3146
3147         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
3148         handling from c-semantics.c; don't call into langhook.
3149         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
3150         * gimplify.c (gimplify_compound_literal_expr,
3151         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
3152         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
3153         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
3154         as was done in c-gimplify.c.
3155         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
3156         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
3157         Move from c-common.h.
3158         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
3159
3160         * tree.c (staticp): Do not call langhook.
3161         * langhooks.c (lhd_staticp): Delete.
3162         * langhooks-def.h (lhd_staticp): Delete prototype.
3163         (LANG_HOOKS_STATICP): Delete.
3164         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
3165
3166         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
3167         instead of DECL_STMTs.
3168
3169 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
3170
3171         PR c/456
3172         PR c/5675
3173         PR c/19976
3174         PR c/29116
3175         PR c/31871
3176         PR c/35198
3177         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
3178         void_type_node.
3179         (fold_call_expr): Return a NOP_EXPR from folding rather than the
3180         contained expression.
3181         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
3182         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
3183         conditional expressions for C.
3184         (decl_constant_value_for_optimization): Move from
3185         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
3186         whether optimizing and that the expression is a VAR_DECL not of
3187         array type instead of doing such checks in the caller.  Do not
3188         check pedantic.  Call gcc_unreachable for C++.
3189         * c-common.def (C_MAYBE_CONST_EXPR): New.
3190         * c-common.h (c_fully_fold, c_save_expr,
3191         decl_constant_value_for_optimization): New prototypes.
3192         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
3193         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
3194         EXPR_INT_CONST_OPERANDS): Define.
3195         * c-convert.c (convert): Strip nops from expression.
3196         * c-decl.c (groktypename): Take extra parameters expr and
3197         expr_const_operands.  Update call to grokdeclarator.
3198         (start_decl): Update call to grokdeclarator.  Add statement for
3199         expressions used in type of decl.
3200         (grokparm): Update call to grokdeclarator.
3201         (push_parm_decl): Update call to grokdeclarator.
3202         (build_compound_literal): Add parameter non_const and build a
3203         C_MAYBE_COSNT_EXPR if applicable.
3204         (grokdeclarator): Take extra parameters expr and
3205         expr_const_operands.  Track expressions used in declaration
3206         specifiers and declarators.  Fold array sizes and track whether
3207         they are constant expressions and whether they are integer
3208         constant expressions.
3209         (parser_xref_tag): Set expr and expr_const_operands fields in
3210         return value.
3211         (grokfield): Update call to grokdeclarator.
3212         (start_function): Update call to grokdeclarator.
3213         (build_null_declspecs): Set expr and expr_const_operands fields in
3214         return value.
3215         (declspecs_add_type): Handle expressions in typeof specifiers.
3216         * c-parser.c (c_parser_declspecs): Set expr and
3217         expr_const_operands fields for declaration specifiers.
3218         (c_parser_enum_specifier): Likewise.
3219         (c_parser_struct_or_union_specifier): Likewise.
3220         (c_parser_typeof_specifier): Likewise.  Update call to
3221         groktypename.  Fold expression as needed.  Return expressions with
3222         type instead of adding statements.
3223         (c_parser_attributes): Update calls to c_parser_expr_list.
3224         (c_parser_statement_after_labels): Fold expression before passing
3225         to objc_build_throw_stmt.
3226         (c_parser_condition): Fold expression.
3227         (c_parser_asm_operands): Fold expression.
3228         (c_parser_conditional_expression): Use c_save_expr.  Update call
3229         to build_conditional_expr.
3230         (c_parser_alignof_expression): Update call to groktypename.
3231         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
3232         original_code.  Fold expression argument of va_arg.  Create
3233         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
3234         argument to va_arg.  Update calls to groktypename.  Fold array
3235         index for offsetof.  Verify that first argument to
3236         __builtin_choose_expr has integer type.
3237         (c_parser_postfix_expression_after_paren_type): Update calls to
3238         groktypename and build_compound_literal.  Handle expressions with
3239         side effects in type name.
3240         (c_parser_postfix_expression_after_primary): Update call to
3241         c_parser_expr_list.  Set original_code for calls to
3242         __builtin_constant_p.
3243         (c_parser_expr_list): Take extra parameter fold_p.  Fold
3244         expressions if requested.
3245         (c_parser_objc_type_name): Update call to groktypename.
3246         (c_parser_objc_synchronized_statement): Fold expression.
3247         (c_parser_objc_receiver): Fold expression.
3248         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
3249         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
3250         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
3251         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
3252         (struct c_typespec): Add elements expr and expr_const_operands.
3253         (struct c_declspecs): Add elements expr and expr_const_operands.
3254         (groktypename, build_conditional_expr, build_compound_literal):
3255         Update prototypes.
3256         (in_late_binary_op): Declare.
3257         * c-typeck.c (note_integer_operands): New function.
3258         (in_late_binary_op): New variable.
3259         (decl_constant_value_for_broken_optimization): Move to c-common.c
3260         and rename to decl_constant_value_for_optimization.
3261         (default_function_array_conversion): Do not strip nops.
3262         (default_conversion): Do not call
3263         decl_constant_value_for_broken_optimization.
3264         (build_array_ref): Do not fold result.
3265         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
3266         result when operand is a VLA.
3267         (c_expr_sizeof_type): Update call to groktypename.  Handle
3268         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
3269         result when operand names a VLA type.
3270         (build_function_call): Update call to build_compound_literal.
3271         Only fold result for calls to __builtin_* functions.  Strip
3272         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
3273         the function designator.
3274         (convert_arguments): Fold arguments.  Update call to
3275         convert_for_assignment.
3276         (build_unary_op): Handle increment and decrement of
3277         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
3278         decrement earlier.  Fold operand of increment and decrement.
3279         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
3280         built for integer operand.  Wrap returns that are INTEGER_CSTs
3281         without being integer constant expressions or that have integer
3282         constant operands without being INTEGER_CSTs.
3283         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
3284         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
3285         result is an integer constant expression or can be used in
3286         unevaluated parts of one and avoid folding and wrap as
3287         appropriate.  Fold operands before possibly doing -Wsign-compare
3288         warnings.
3289         (build_compound_expr): Wrap result for C99 if operands can be used
3290         in integer constant expressions.
3291         (build_c_cast): Update call to digest_init.  Do not ignore
3292         overflow from casting floating-point constants to integers.  Wrap
3293         results that could be confused with integer constant expressions,
3294         null pointer constants or floating-point constants.
3295         (c_cast_expr): Update call to groktypename.  Handle expressions
3296         included in type name.
3297         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
3298         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
3299         Update calls to convert_for_assignment.
3300         (convert_for_assignment): Take new parameter
3301         null_pointer_constant.  Do not strip nops or call
3302         decl_constant_value_for_broken_optimization.  Set
3303         in_late_binary_op for conversions to boolean.
3304         (store_init_value): Update call to digest_init.
3305         (digest_init): Take new parameter null_pointer_constant.  Do not
3306         call decl_constant_value_for_broken_optimization.  pedwarn for
3307         initializers not constant expressions.  Update calls to
3308         convert_for_assignment.
3309         (constructor_nonconst): New.
3310         (struct constructor_stack): Add nonconst element.
3311         (really_start_incremental_init, push_init_level, pop_init_level):
3312         Handle constructor_nonconst and nonconst element.
3313         (set_init_index): Call constant_expression_warning for array
3314         designators.
3315         (output_init_element): Fold value.  Set constructor_nonconst as
3316         applicable.  pedwarn for initializers not constant expressions.
3317         Update call to digest_init.  Call constant_expression_warning
3318         where constant initializers are required.
3319         (process_init_element): Use c_save_expr.
3320         (c_finish_goto_ptr): Fold expression.
3321         (c_finish_return): Fold return value.  Update call to
3322         convert_for_assignment.
3323         (c_start_case): Fold switch expression.
3324         (c_process_expr_stmt): Fold expression.
3325         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
3326         ensure statement expression is not evaluated in constant expression.
3327         (build_binary_op): Track whether results are integer constant
3328         expressions or may occur in such, disable folding and wrap results
3329         as applicable.  Fold operands for -Wsign-compare warnings unless
3330         in_late_binary_op.
3331         (c_objc_common_truthvalue_conversion): Handle results folded to
3332         integer constants that are not integer constant expressions.
3333         * doc/extend.texi: Document when typeof operands are evaluated,
3334         that condition of __builtin_choose_expr is an integer constant
3335         expression, and more about use of __builtin_constant_p in
3336         initializers.
3337
3338 2009-03-29  Richard Guenther  <rguenther@suse.de>
3339
3340         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
3341         propagate addresses of array references.
3342
3343 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
3344
3345         * regmove.c (perhaps_ends_bb_p): Remove.
3346         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
3347         from INSN and check that the main loop stays within that basic block.
3348         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
3349         (regmove_forward_pass): Split out from regmove_optimize.  Use
3350         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
3351         (regmove_backward_pass): Split out from regmove_optimize.  Use
3352         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
3353         (regmove_optimize): Simplify.
3354
3355 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
3356
3357         PR target/39545
3358         * config/i386/i386.c (classify_argument): Ignore flexible array
3359         member in struct and warn ABI change.
3360
3361 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
3362
3363         * config/i386/i386-protos.h (ix86_agi_dependent): New.
3364
3365         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
3366         (ix86_adjust_cost): Updated.
3367
3368 2009-03-29  Jan Hubicka  <jh@suse.cz>
3369
3370         PR middle-end/28850
3371         * tree-pass.h (pass_cleanup_eh): New function.
3372         (remove_unreachable_regions): Break code handling RTL
3373         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
3374         that can not be reached by runtime.
3375         (can_be_reached_by_runtime): New function.
3376         (label_to_region_map): New function.
3377         (num_eh_regions): New function.
3378         (rtl_remove_unreachable_regions): New function.
3379         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
3380         (remove_eh_region): New function.
3381         * except.h: Include sbitmap and vecprim.
3382         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
3383         num_eh_regions): Declare.
3384         * passes.c (init_optimization_passes): Schedule cleanup_eh.
3385         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
3386         * tree-eh.c (tree_remove_unreachable_handlers): New function.
3387         (tree_empty_eh_handler_p): New function.
3388         (cleanup_empty_eh): New function.
3389         (cleanup_eh): New function.
3390         (pass_cleanup_eh): New function.
3391
3392 2009-03-29  Jan Hubicka  <jh@suse.cz>
3393
3394         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
3395         for removed regions.
3396
3397 2009-03-29  Jan Hubicka  <jh@suse.cz>
3398
3399         * except.c (dump_eh_tree): Dump all datastructures.
3400
3401 2009-03-29  Jan Hubicka  <jh@suse.cz>
3402
3403         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
3404         (duplicate_eh_regions_1): Likewise.
3405         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
3406         vector; call EH verification.
3407         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
3408         Be ready for region being removed.
3409
3410 2009-03-29  Jan Hubicka  <jh@suse.cz>
3411
3412         * bitmap.c (bitmap_last_set_bit): New function.
3413         * bitmap.h (bitmap_last_set_bit): Declare.
3414
3415 2009-03-29  David Ayers  <ayers@fsfe.org>
3416
3417         PR objc/27377
3418         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
3419         by calling objc_compare_types and surpress warnings about
3420         incompatible C pointers that are compatible ObjC pointers.
3421         
3422 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
3423
3424         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
3425         call initialize_inline_failed.
3426         (initialize_inline_failed): Move it from here ...
3427         * cgraph.c (initialize_inline_failed): ... to here.
3428         (cgraph_create_edge): Call initialize_inline_failed rather than
3429         setting inline_failed directly.
3430
3431 2009-03-29  Ben Elliston  <bje@au.ibm.com>
3432
3433         PR target/32542
3434         * sysv4.opt (msdata): Improve comment.
3435         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
3436         * sysv4.h (SVR4_ASM_SPEC): Likewise.
3437
3438 2009-03-29  Ben Elliston  <bje@au.ibm.com>
3439
3440         PR target/30451
3441         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
3442         load and store attributes.
3443
3444 2009-03-29  Ben Elliston  <bje@au.ibm.com>
3445
3446         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
3447         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
3448         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
3449         * doc/extend.texi (X86 Built-in Functions): Add index entries for
3450         __builtin_infq and __builtin_huge_valq.
3451
3452 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
3453
3454         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
3455         atmega8m1 devices.
3456         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3457         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
3458
3459 2009-03-28  Xinliang David Li  <davidxl@google.com>
3460
3461         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
3462         (do_dbg_cnt): New function.
3463
3464 2009-03-28  Jan Hubicka  <jh@suse.cz>
3465
3466         Merge from pretty-ipa:
3467
3468         2009-03-27  Jan Hubicka  <jh@suse.cz>
3469
3470         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
3471         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
3472         * passes.c (function_called_by_processed_nodes_p): New.
3473         * ipa-pure-const.c (check_call): Fix handling of operands.
3474         (analyze_function): Dump debug output for skipped bodies.
3475         (local_pure_const): Use function_called_by_processed_nodes_p.
3476         * dwarf2out.c (reference_to_unused): Use output.
3477         * passes.c (do_per_function_toporder): Likewise.
3478
3479         2008-11-12  Jan Hubicka  <jh@suse.cz>
3480
3481         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
3482         * ipa-pure-const.c (funct_state_d): Add can throw field; make
3483         state_set_in_source enum
3484         (check_decl): Ignore memory tags; do not set fake looping flags;
3485         dump diagnostics.
3486         (check_operand, check_tree, check_rhs_var, check_lhs_var,
3487         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
3488         (check_call, analyze_function): Rewrite.
3489         (check_stmt): New.
3490         (add_new_function): Update call of analyze_function.
3491         (generate_summary): Add call of analyze_function.
3492         (propagate): Propagate can_throw; handle state_set_in_source correctly.
3493         (local_pure_const): New function.
3494         (pass_local_pure_const): New pass.
3495         * ipa-inline.c (inline_transform): Set after_inlining.
3496         * tree-eh.c (stmt_can_throw_external): New.
3497         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
3498         work with aliasing built.
3499         * tree-flow.h (stmt_can_throw_external): New.
3500         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
3501         and local pure/const pass in early and late optimization queue.
3502
3503 2009-03-28  Martin Jambor  <mjambor@suse.cz>
3504
3505         * fold-const.c (get_pointer_modulus_and_residue): New parameter
3506         allow_func_align.
3507         (fold_binary): Allow function decl aligment consideration is the
3508         second argument is integer constant one.
3509         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
3510         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
3511         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
3512
3513 2009-03-28  Jan Hubicka  <jh@suse.cz>
3514
3515         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
3516         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
3517         * function.h (rtl_data): Add nothrow flag.
3518         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
3519         set DECL_NOTHROW for AVAILABLE functions.
3520
3521 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
3522
3523         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
3524         following vector keyword has expansion starting with pixel or bool
3525         keyword, expand vector to __vector and pixel or bool to __pixel or
3526         __bool.
3527
3528         PR c++/39554
3529         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
3530         warn_if_disallowed_function_p): Removed.
3531         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
3532         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
3533         warning_if_disallowed_function_p.
3534         * flags.h (warn_if_disallowed_function_p,
3535         warn_disallowed_functions): Removed.
3536         * common.opt (Wdisallowed-function-list=): Removed.
3537         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
3538
3539 2009-03-28  Richard Guenther  <rguenther@suse.de>
3540
3541         PR tree-optimization/38723
3542         * tree-ssa-pre.c (compute_avail): Add all default definitions to
3543         the entry block.
3544
3545 2009-03-28  Jan Hubicka  <jh@suse.cz>
3546
3547         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
3548         test introduced by my previous patch.
3549
3550 2009-03-28  Richard Guenther  <rguenther@suse.de>
3551
3552         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
3553         the PHIs value undefined.
3554
3555 2009-03-28  Jan Hubicka  <jh@suse.cz>
3556
3557         * tree-pass.h (pass_fixup_cfg): New pass.
3558         * ipa-inline.c (inline_transform): Set
3559         always_inline_functions_inlined/after_inlining.
3560         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
3561         (pass_fixup_cfg): New pass.
3562         * passes.c (init_optimization_passes): Add fixup_cfg.
3563
3564 2009-03-28  Richard Guenther  <rguenther@suse.de>
3565
3566         PR tree-optimization/38458
3567         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
3568         argument use the arguments copy-of value.
3569
3570 2009-03-28  Richard Guenther  <rguenther@suse.de>
3571
3572         PR tree-optimization/38180
3573         * tree-ssa-ccp.c (get_default_value): Simplify.
3574         (likely_value): Likewise.
3575         (surely_varying_stmt_p): Properly handle VOP case.
3576         (ccp_initialize): Likewise.
3577         (ccp_fold): Handle propagating through *&.
3578         (fold_const_aggregate_ref): Also handle decls.
3579
3580 2009-03-28  Jan Hubicka  <jh@suse.cz>
3581
3582         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
3583         * cgraph.h (cgraph_node): Likewise.
3584         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
3585         (cgraph_reset_node): Use process flag.
3586         (cgraph_mark_functions_to_output): Likewise.
3587         (cgraph_expand_function): Likewise.
3588         (cgraph_expand_all_functions): Likewise.
3589         (cgraph_output_in_order): Likewise.
3590         * dwarf2out.c (reference_to_unused): Likewise.
3591         * passes.c do_per_function_toporder): Likewise.
3592
3593 2009-03-28  Jan Hubicka  <jh@suse.cz>
3594
3595         Bring from lto-branch:
3596
3597         2008-09-03  Doug Kwan  <dougkwan@google.com>
3598
3599         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
3600         enums instead of reason strings.
3601         * cgraph.c (cgraph_create_edge): Same.
3602         (cgraph_inline_failed_string): New function.
3603         * cgraph.h (cgraph_inline_failed_t): New enum type.
3604         (cgraph_inline_failed_string): New prototype.
3605         (struct cgraph_edge): Change type of INLINED_FAILED from constant
3606         char pointer to cgraph_inline_failed_t.
3607         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
3608         (cgraph_default_inline_p): Ditto.
3609         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
3610         to cgraph_inline_failed_t pointer.
3611         * cif-code.def: New file.
3612         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
3613         reason string.
3614         (cgraph_check_inline_limits): Change type of REASON to pointer to
3615         cgraph_inline_failed_t.  Replace reason strings with enums.
3616         (cgraph_default_inline_p): Ditto.
3617         (cgraph_recursive_inlining_p): Ditto.
3618         (update_caller_keys): Change type of FAILED_REASON to
3619         cgraph_inline_failed_t.
3620         (cgraph_set_inline_failed): Change type of REASON to pointer to
3621         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
3622         convert enums to strings for text output.
3623         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
3624         to be of type cgraph_inline_failed_t.  Replace reason strings with
3625         enums.  Call cgraph_inline_failed_string to covert enums
3626         to strings for text output.
3627         (cgraph_decide_inlining): Replace reason strings with enums.
3628         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
3629         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
3630         for text output.
3631         * tree-inline.c (expand_call_inline): Change type of REASON
3632         to cgraph_inline_failed_t.  Replace reason strings with enums.
3633         Call cgraph_inline_failed_string for text output.
3634         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
3635         (cgraph.o): Ditto.
3636
3637 2009-03-28  Jan Hubicka  <jh@suse.cz>
3638
3639         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
3640         cgraph_clone_node): Remove master clone handling.
3641         (cgraph_is_master_clone, cgraph_master_clone): Remove.
3642         * cgraph.h (master_clone): Remove.
3643         (cgraph_is_master_clone, cgraph_master_clone): Remove.
3644         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
3645         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
3646
3647 2009-03-28  Jan Hubicka  <jh@suse.cz>
3648
3649         * cgraph.c (cgraph_function_body_availability): Functions declared
3650         inline are always safe to assume that it is not going to be replaced.
3651
3652 2009-03-28  Richard Guenther  <rguenther@suse.de>
3653
3654         PR tree-optimization/38513
3655         * tree-ssa-pre.c (eliminate): Remove redundant stores.
3656         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
3657         EXC_PTR_EXPR and FILTER_EXPR.
3658         (get_ref_from_reference_ops): Likewise.
3659
3660 2009-03-28  Richard Guenther  <rguenther@suse.de>
3661
3662         PR tree-optimization/38968
3663         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
3664         Use FLOOR_MOD_EXPR to compute misalignment.
3665
3666 2009-03-28  Richard Guenther  <rguenther@suse.de>
3667
3668         PR tree-optimization/37795
3669         * tree.h (combine_comparisons): Declare.
3670         * fold-const.c (combine_comparisons): Export.
3671         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
3672         comparisons.
3673         (ifcombine_iforif): Use combine_comparisons.
3674
3675 2009-03-28  Jan Hubicka  <jh@suse.cz>
3676
3677         * tree-eh.c (inlinable_call_p): New function.
3678         (make_eh_edges): Use it.
3679         (verify_eh_edges): Use it.
3680         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
3681         * except.c (reachable_next_level): Add inlinable_function argument
3682         (sjlj_find_directly_reachable_regions): Update.
3683         (add_reachable_handler): Do not set saw_any_handlers.
3684         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
3685         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
3686         Add new inlinable call parameter.
3687         (can_throw_internal, can_throw_external): Update.
3688         * except.h (can_throw_internal_1, can_throw_external_1,
3689         foreach_reachable_handler): Update declaration.
3690
3691 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
3692
3693         * config/arm/t-arm-coff, config/h8300/coff.h,
3694         config/i386/i386-aout.h, config/i386/i386-coff.h,
3695         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
3696         config/pdp11/2bsd.h, config/rs6000/aix41.h,
3697         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
3698         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
3699         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
3700         sys-types.h: Remove.
3701         * Makefile.in: Remove protoize and fixproto support and references
3702         in comments.
3703         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
3704         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
3705         Remove.
3706         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
3707         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
3708         unprotoize$(exeext).
3709         (rest.encap): Don't depend on $(STMP_FIXPROTO)
3710         (.PHONY): Don't depend on proto.
3711         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
3712         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
3713         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
3714         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
3715         build/gen-protos.o, build/scan.o, xsys-protos.h,
3716         build/fix-header$(build_exeext), build/fix-header.o,
3717         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
3718         stmp-install-fixproto): Remove.
3719         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
3720         SYSCALLS.c or fixproto files.
3721         (install-common): Don't install protoize.
3722         (install-headers-tar, install-headers-cpio, install-headers-cp):
3723         Don't depend on $(STMP_FIXPROTO).
3724         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
3725         install fixproto files or write out fixproto settings.
3726         (uninstall): Don't uninstall protoize.
3727         * config.gcc (use_fixproto): Remove.
3728         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
3729         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
3730         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
3731         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
3732         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
3733         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
3734         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
3735         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
3736         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
3737         * config/t-vxworks (STMP_FIXPROTO): Remove.
3738         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
3739         STMP_FIXPROTO): Remove.
3740         * config.in, configure: Regenerate.
3741         * crtstuff.c (gid_t, uid_t): Don't undefine.
3742         * doc/install.texi: Change m68k-coff to m68k-elf in example.
3743         (arm-*-coff, arm-*-aout: Remove target entries.
3744         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
3745         Remove mention of AIX 4.1.
3746         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
3747         * doc/invoke.texi (Running Protoize): Remove.
3748         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
3749         (Protoize Caveats): Remove.
3750         * tsystem.h: Update comments on headers assumed to exist.
3751
3752 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3753
3754         * genautomata.c: Add a new year to the copyright.  Add a new
3755         reference.
3756         (struct insn_reserv_decl): Add comments for member bypass_list.
3757         (find_bypass): Remove.
3758         (insert_bypass): New.
3759         (process_decls): Use insert_bypass.
3760         (output_internal_insn_latency_func): Output all bypasses with the
3761         same input insn in one switch case.
3762
3763         * rtl.def (define_bypass): Describe bypass choice.
3764         * doc/md.texi (define_bypass): Ditto.
3765
3766 2009-03-27  Richard Guenther  <rguenther@suse.de>
3767
3768         * gimplify.c (mark_addressable): Export.
3769         * tree-flow.h (mark_addressable): Declare.
3770         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
3771         * tree-ssa.c (verify_phi_args): Verify that address taken
3772         variables have TREE_ADDRESSABLE set.
3773
3774 2009-03-27  Richard Guenther  <rguenther@suse.de>
3775
3776         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
3777         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
3778         Do not mark decls TREE_ADDRESSABLE.
3779         (build_fold_addr_expr): Adjust.
3780         (fold_addr_expr): Remove.
3781         (fold_unary): Use build_fold_addr_expr.
3782         (fold_comparison): Likewise.
3783         (split_address_to_core_and_offset): Likewise.
3784         * coverage.c (tree_coverage_counter_addr): Mark the array decl
3785         TREE_ADDRESSABLE.
3786         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
3787         (gimplify_modify_expr_to_memcpy): Mark source and destination
3788         addressable.
3789         * omp-low.c (create_omp_child_function): Mark the object decl
3790         TREE_ADDRESSABLE.
3791         (lower_rec_input_clauses): Mark the var we take the address of
3792         TREE_ADDRESSABLE.
3793         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
3794
3795 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3796
3797         PR middle-end/39315
3798         * cfgexpand.c (expand_one_stack_var_at): Change alignment
3799         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
3800
3801 2009-03-27  Richard Guenther  <rguenther@suse.de>
3802
3803         PR tree-optimization/39120
3804         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
3805         constraints.
3806         (handle_lhs_call): Process return constraints.  Add escape
3807         constraints if necessary.
3808         (handle_const_call): Fill out return constraints.  Make nested
3809         case more precise.  Avoid consttmp if possible.
3810         (handle_pure_call): Fill out return constraints.  Avoid
3811         callused if possible.
3812         (find_func_aliases): Simplify call handling.
3813
3814 2009-03-27  Richard Guenther  <rguenther@suse.de>
3815
3816         PR tree-optimization/39120
3817         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
3818         as a representative.
3819         (solve_graph): Do propagate CALLUSED.
3820         (handle_pure_call): Use a scalar constraint from CALLUSED for
3821         the return value.
3822         (find_what_p_points_to): CALLUSED shall not appear in poins-to
3823         solutions.
3824
3825 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3826
3827         PR c/39323
3828         * c-common.c (handle_aligned_attribute): Properly check alignment
3829         overflow.  Use (1U << i) instead of (1 << i).
3830
3831         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
3832
3833         * expr.h (get_mem_align_offset): Updated.
3834
3835         * tree.h (tree_decl_common): Change align to "unsigned int" and
3836         move it before pointer_alias_set.
3837
3838 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3839             Jakub Jelinek  <jakub@redhat.com>
3840
3841         PR target/38034
3842         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
3843         gr_register_operand with gr_reg_or_0_operand.
3844         (cmpxchg_rel_di): Likewise.
3845         (sync_lock_test_and_set<mode>): Likewise.
3846
3847 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3848
3849         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
3850         (true_regnum): Likewise.
3851
3852         * rtlanal.c (subreg_info): Moved to ...
3853         * rtl.h (subreg_info): Here.  New.
3854         (subreg_get_info): New.
3855
3856         * rtlanal.c (subreg_get_info): Make it extern.
3857
3858 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3859
3860         PR target/39472
3861         * config/i386/i386.c (ix86_abi): New.
3862         (override_options): Handle -mabi=.
3863         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
3864         (ix86_call_abi_override): Likewise.
3865         (init_cumulative_args): Likewise.
3866         (function_arg_advance): Likewise.
3867         (function_arg_64): Likewise.
3868         (function_arg): Likewise.
3869         (ix86_pass_by_reference): Likewise.
3870         (ix86_function_value_regno_p): Likewise.
3871         (ix86_build_builtin_va_list_abi): Likewise.
3872         (setup_incoming_varargs_64): Likewise.
3873         (is_va_list_char_pointer): Likewise.
3874         (ix86_init_machine_status): Likewise.
3875         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
3876         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
3877         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
3878         (ix86_function_abi): Make it static and return enum calling_abi.
3879         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
3880         with ix86_abi.
3881         (ix86_fn_abi_va_list): Updated.
3882
3883         * config/i386/i386.h (ix86_abi): New.
3884         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
3885         (CONDITIONAL_REGISTER_USAGE): Likewise.
3886         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
3887         (machine_function): Likewise.
3888
3889         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
3890         with ix86_abi.
3891         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
3892         (STACK_BOUNDARY): Likewise.
3893         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
3894
3895         * config/i386/i386.opt (mabi=): New.
3896
3897         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
3898         return enum calling_abi.
3899         (ix86_function_type_abi): Likewise.
3900         (ix86_function_abi): Removed.
3901
3902         * doc/invoke.texi: Document -mabi= option for x86.
3903
3904 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3905
3906         * builtins.c (real_dconstp): Delete.
3907         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
3908
3909 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
3910             Jakub Jelinek  <jakub@redhat.com>
3911
3912         PR debug/37959
3913         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
3914         (gen_subprogram_die): When a function is explicit, generate the
3915         DW_AT_explicit attribute.
3916         * langhooks.h (struct lang_hooks_for_decls): Add
3917         function_decl_explicit_p langhook.
3918         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
3919         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
3920
3921 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
3922
3923         * builtins.c (fold_builtin_memory_op): Optimize memmove
3924         into memcpy if we can prove source and destination don't overlap.
3925
3926         * tree-inline.c: Include gt-tree-inline.h.
3927         (clone_fn_id_num): New variable.
3928         (clone_function_name): New function.
3929         (tree_function_versioning): Use it.
3930         * Makefile.in (GTFILES): Add tree-inline.c.
3931
3932 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
3933
3934         * BASE-VER: Change to 4.5.0.
3935
3936 2009-03-27  Xinliang David Li  <davidxl@google.com>
3937
3938         PR tree-optimization/39557
3939         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
3940
3941 2009-03-27  Xinliang David Li  <davidxl@google.com>
3942
3943         PR tree-optimization/39548
3944         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
3945         candidate check.
3946
3947 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3948
3949         * c-common.c (pointer_int_sum): Use %wd on return from
3950         tree_low_cst.
3951
3952 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
3953
3954         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
3955         on return from tree_low_cst.
3956
3957 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3958
3959         PR c++/36799
3960         * ginclude/stdarg.h (va_copy): Define also for
3961         __GXX_EXPERIMENTAL_CXX0X__.
3962
3963 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3964
3965         PR c++/35652
3966         * builtins.h (c_strlen): Do not warn here.
3967         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
3968         * c-common.c (pointer_int_sum): Take an explicit location.
3969         Warn about offsets out of bounds.
3970         * c-common.h (pointer_int_sum): Adjust declaration.
3971
3972 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3973
3974         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
3975         markup glitch.
3976
3977 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
3978
3979         PR c++/39554
3980         * opts.c (warn_if_disallowed_function_p): Don't assume
3981         get_callee_fndecl must return non-NULL.
3982
3983 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3984
3985         PR rtl-optimization/39522
3986         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
3987         when reg_reloaded_valid is set.
3988
3989 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3990
3991         * config/spu/divv2df3.c: New file.
3992         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
3993         (DPBIT_FUNCS): Filter out _div_df.
3994
3995 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3996
3997         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
3998         a jump insn, count that jump in the distance to the loop start.
3999
4000 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
4001
4002         PR target/39523
4003         * config/sh/sh.c (calc_live_regs): Fix condition for global
4004         registers except PIC_OFFSET_TABLE_REGNUM.
4005
4006 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
4007
4008         PR/39518
4009         * doc/invoke.texi (-mconsole): New.
4010         (-mcygwin): New.
4011         (-mno-cygwin): New.
4012         (-mdll): New.
4013         (-mnop-fun-dllimport): New.
4014         (-mthread): New.
4015         (-mwin32): New.
4016         (-mwindows): New.
4017         (sub section "i386 and x86-64 Windows Options"): New.
4018
4019 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
4020
4021         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
4022         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
4023
4024 2009-03-25  Richard Guenther  <rguenther@suse.de>
4025
4026         PR middle-end/39497
4027         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
4028         of -Wno-error.
4029
4030 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
4031
4032         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
4033         neither of haifa/selective schedulers are working.
4034
4035 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4036
4037         * doc/invoke.texi (Debugging Options): Fix description of
4038         -fno-merge-debug-strings.
4039
4040 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
4041
4042         * config/cris/libgcc.ver: New version-script.
4043         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
4044
4045         * configure.ac <GAS features, nop mnemonic>: Add pattern
4046         crisv32-*-* for "nop".
4047         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
4048         * configure: Regenerate.
4049
4050 2009-03-24  Ira Rosen  <irar@il.ibm.com>
4051
4052         PR tree-optimization/39529
4053         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
4054         mark_sym_for_renaming for the tag copied to the new vector
4055         pointer.
4056
4057 2009-03-24  Arthur Loiret  <aloiret@debian.org>
4058
4059         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
4060         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
4061         EXTRA_SPEC_FUNCTIONS.
4062         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
4063         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
4064         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
4065         -march and -mtune options.
4066
4067 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
4068
4069         * config/m68k/t-rtems: Add m5329 multilib.
4070
4071 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
4072             Jakub Jelinek  <jakub@redhat.com>
4073
4074         PR debug/39524
4075         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
4076         nodes.
4077
4078 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
4079
4080         PR c/39495
4081         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
4082         instead of c_parser_expression_conv, if original_code isn't one of the
4083         4 allowed comparison codes, fail.
4084
4085 2009-03-23  Richard Guenther  <rguenther@suse.de>
4086
4087         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
4088         * tree.h (struct tree_type): Likewise.
4089         * reload.h (struct insn_chain): Likewise.
4090         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
4091         * function.h (struct function): Likewise.
4092         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
4093
4094 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
4095
4096         PR tree-optimization/39516
4097         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
4098
4099 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
4100
4101         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
4102         should be set true if BITS_PER_WORD of target is bigger than 32
4103
4104 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
4105
4106         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
4107         Translate -B-options to -rpath-link.  Correct existing
4108         rpath-link and conditionalize on !nostdlib.
4109
4110 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4111
4112         * doc/extend.texi (Function Attributes, Variable Attributes):
4113         Fix typos.
4114         * doc/invoke.texi (Debugging Options, Optimize Options)
4115         (i386 and x86-64 Options, MCore Options): Likewise.
4116
4117 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
4118
4119         PR debug/37890
4120         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
4121         it for block local namespace aliases.
4122         (gen_decl_die): Pass context_die to gen_namespace_die.
4123
4124 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
4125
4126         PR c/39495
4127         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
4128         minimum or maximum value.
4129
4130 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
4131
4132         * reginfo.c (globalize_reg): Recompute derived reg sets.
4133
4134 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
4135
4136         PR target/39063
4137         * libgcc2.c (mprotect): Do not use signed arguments for
4138         VirtualProtect, use DWORD arguments.  Also fix the 'may
4139         be used uninitialized' warning for the np variable.
4140
4141 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
4142
4143         PR target/39496
4144         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
4145         functions using regparm calling conventions when not optimizing.
4146         (ix86_function_sseregparm): Similarly for sseregparm calling
4147         conventions.
4148
4149 2009-03-19  Li Feng  <nemokingdom@gmail.com>
4150
4151         PR middle-end/39500
4152         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
4153         dependence if the first conflict is after niter iterations.
4154
4155 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
4156
4157         PR middle-end/38609
4158         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
4159         functions with dynamic stack-pointer adjustments.
4160
4161 2009-03-19  Ben Elliston  <bje@au.ibm.com>
4162
4163         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
4164         option; change to -msdata=data.
4165
4166 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4167
4168         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
4169         and -fopenmp.
4170
4171 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
4172
4173         PR target/35180
4174         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
4175
4176 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
4177
4178         * doc/invoke.texi (Code Gen Options): Expand discussion of
4179         -fno-common.
4180
4181 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
4182
4183         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
4184         * matrix-reorg.c (struct matrix_info): Likewise.
4185         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
4186         * rtl.h (struct mem_attrs): Likewise.
4187         * df.h (struct df): Likewise.
4188         * tree-data-ref.h (struct data_dependence_relation): Likewise.
4189         * ira-int.h (struct ira_allocno): Likewise.
4190         * df-scan.c (struct df_collection_rec): Likewise.
4191         * ira.c (struct equivalence): Likewise.
4192         * function.c (struct temp_slot): Likewise.
4193         * cfgloop.h (struct loop): Likewise.
4194
4195         PR debug/39485
4196         * function.c (use_register_for_decl): When not optimizing, disregard
4197         register keyword for variables with types containing methods.
4198
4199 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
4200
4201         PR middle-end/39447
4202         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
4203         (is_simple_operand): Call contains_component_ref_p before calling data
4204         reference analysis that would fail on COMPONENT_REFs.
4205
4206         * tree-vrp.c (search_for_addr_array): Fix formatting.
4207
4208 2009-03-18  Richard Guenther  <rguenther@suse.de>
4209
4210         * tree-vect-transform.c (vect_loop_versioning): Fold the
4211         generated comparisons.
4212         * tree-vectorizer.c (set_prologue_iterations): Likewise.
4213         (slpeel_tree_peel_loop_to_edge): Likewise.
4214
4215 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4216
4217         PR middle-end/37805
4218         * opts.c (print_specific_help): In addition to `undocumented',
4219         accept `separate' and `joined' flags if passed alone.  Describe
4220         output by the first matched one of those.
4221         (common_handle_option): Skip over empty strings.
4222         * gcc.c (display_help): Fix help string for `--help='.
4223         * doc/invoke.texi (Option Summary, Overall Options): With
4224         `--help=', classes and qualifiers can both be repeated, but
4225         only the latter can be negated.  One should not pass only
4226         negated qualifiers.  Fix markup and examples.
4227
4228         Revert
4229         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
4230         PR middle-end/37805
4231         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
4232         and -fhelp=separate.
4233
4234 2009-03-17  Jing Yu  <jingyu@google.com>
4235
4236         PR middle-end/39378
4237         * function.h (struct rtl_data): Move is_thunk from here...
4238         (struct function): ...to here.
4239         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
4240         * varasm.c (assemble_start_function): Change is_thunk from crtl to
4241         cfun.
4242         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
4243         cfun.
4244         (alpha_does_function_need_gp, alpha_start_function): Likewise.
4245         (alpha_output_function_end_prologue): Likewise.
4246         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
4247         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
4248         (rs6000_output_function_epilogue): Likewise.
4249         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
4250
4251 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
4252
4253         PR target/39482
4254         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
4255         from different units in a single alternative.
4256         (*truncdfsf_i387): Ditto.
4257         (*truncxfsf2_mixed): Ditto.
4258         (*truncxfdf2_mixed): Ditto.
4259
4260 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
4261
4262         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
4263         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
4264
4265         PR debug/39474
4266         * tree-ssa-live.c (remove_unused_locals): Don't remove local
4267         unused non-artificial variables when not optimizing.
4268
4269         PR debug/39471
4270         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
4271         DW_TAG_imported_module even if decl is IMPORTED_DECL with
4272         NAMESPACE_DECL in its DECL_INITIAL.
4273
4274         PR middle-end/39443
4275         * optabs.c (set_user_assembler_libfunc): New function.
4276         * expr.h (set_user_assembler_libfunc): New prototype.
4277         * c-common.c: Include libfuncs.h.
4278         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
4279         for memcmp, memset, memcpy, memmove and abort.
4280         * Makefile.in (c-common.o): Depend on libfuncs.h.
4281
4282         PR debug/39412
4283         * dwarf2out.c (gen_inlined_enumeration_type_die,
4284         gen_inlined_structure_type_die, gen_inlined_union_type_die,
4285         gen_tagged_type_instantiation_die): Removed.
4286         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
4287         do nothing.
4288
4289 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
4290
4291         PR testsuite/38526
4292         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
4293         its use.
4294         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
4295         (check-parallel-%): Ditto.
4296         (check-consistency): Ditto.
4297
4298 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
4299
4300         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
4301         local variable rhs by NULL_TREE.
4302
4303 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4304
4305         PR target/39477
4306         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
4307
4308 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4309
4310         PR target/39476
4311         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
4312
4313 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4314
4315         PR target/39473
4316         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
4317         for ms->sysv ABI calls only in 64bit mode.
4318
4319         * config/i386/i386.md (untyped_call): Support 32bit.
4320
4321 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
4322
4323         * doc/extend.texi: Replace x86_65 with x86_64.
4324
4325 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
4326
4327         PR tree-optimization/39455
4328         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
4329         mismatches for POINTER_TYPE_P (type).
4330         (number_of_iterations_le): Likewise.
4331
4332 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
4333
4334         * config/picochip/picochip.c: Removed profiling support.
4335         * config/picochip/picochip.md: Removed profiling instruction.
4336         * config/picochip/picochip.h: Removed profiling builtin.
4337
4338 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
4339
4340         * doc/install.texi (--with-host-libstdcxx): Document.
4341
4342 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
4343
4344         PR target/34299
4345         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
4346         generate a warning if the function name does not begin with
4347         "__vector" and the function has either the 'signal' or 'interrupt'
4348         attribute, from here to ...
4349         (avr_declare_function_name): ...here. New function.
4350         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
4351         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
4352
4353 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
4354
4355         PR bootstrap/39454
4356         * cse.c (fold_rtx): Don't modify original const_arg1 when
4357         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
4358         separate variable instead.
4359         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
4360         from out of range shift counts.
4361         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
4362
4363 2008-03-13  Catherine Moore  <clm@codesourcery.com>
4364
4365         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
4366         diagnostic.h with $(DIAGNOSTIC_H).
4367
4368 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
4369
4370         PR target/39431
4371         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
4372         predicate.
4373         * config/i386/sync.md (sync_compare_and_swap<mode>,
4374         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
4375         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
4376         into a register.
4377         (sync_double_compare_and_swapdi_pic,
4378         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
4379         cmpxchg8b_pic_memory_operand instead of just memory_operand.
4380
4381 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
4382
4383         PR target/39445
4384         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
4385
4386 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
4387
4388         PR target/39327
4389         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
4390         (avx_addsubv4df3): Likewise.
4391         (*avx_addsubv4sf3): Likewise.
4392         (sse3_addsubv4sf3): Likewise.
4393
4394 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
4395
4396         PR target/38824
4397         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
4398
4399 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
4400
4401         PR debug/39432
4402         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
4403         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
4404         registers for allocnos created from user-defined variables.
4405
4406 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4407
4408         PR target/39181
4409         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
4410         of non-integer mode as well.
4411
4412 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
4413
4414         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
4415         for functions for which the parameter types are unknown.
4416
4417 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
4418
4419         PR target/39137
4420         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
4421         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
4422         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
4423         * config/i386/i386.c (ix86_local_alignment): For
4424         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
4425         long long variables on the stack to avoid dynamic realignment.
4426         Allow the first argument to be a decl rather than type.
4427         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
4428
4429 2009-03-11  Nick Clifton  <nickc@redhat.com>
4430
4431         PR target/5362
4432         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
4433         options.
4434         Add description to mno-lsim option.
4435         * config/mcore/mcore.h: Remove comment about deprecated m4align
4436         option.
4437         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
4438         * doc/invoke.texi: Add description of mno-lsim and
4439         mstack-increment options.
4440
4441         * config/fr30/fr30.opt: Document the -mno-lsim option.
4442         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
4443         and -mno-lsim options.
4444
4445 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4446
4447         * fold-const.c (fold_comparison): Only call fold_inf_compare
4448         if the mode supports infinities.
4449
4450 2009-03-11  Jason Merrill  <jason@redhat.com>
4451
4452         PR debug/39086
4453         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
4454         end already did.  Notice GIMPLE_CALL modifications of the result.
4455         Don't copy debug information from an ignored decl or a decl from
4456         another function.
4457
4458 2009-03-10  Richard Guenther  <rguenther@suse.de>
4459             Nathan Froyd  <froydnj@codesourcery.com>
4460
4461         PR middle-end/37850
4462         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
4463         (__divMODE3): Likewise.
4464
4465 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
4466
4467         PR tree-optimization/39394
4468         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
4469         DECL_SIZE_UNIT of variable length FIELD_DECLs.
4470
4471 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4472
4473         * recog.c (verfiy_changes): Disallow renaming of hard regs in
4474         inline asms for register asm ("") declarations.
4475
4476 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
4477
4478         * fold-const.c (fold_unary): Fix comment.
4479
4480 2009-03-07  Jan Hubicka  <jh@suse.cz>
4481
4482         PR target/39361
4483         * tree-inline.c (setup_one_parameter): Do replacement of const
4484         argument by constant in SSA form.
4485
4486 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4487
4488         PR middle-end/38028
4489         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
4490         determine alignment passed to assign_stack_local.
4491         (assign_parms_unsplit_complex): Likewise.
4492         * except.c (sjlj_build_landing_pads): Likewise.
4493
4494 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
4495
4496         PR middle-end/39360
4497         * tree-flow.h (add_referenced_var): Return bool instead of void.
4498         * tree-dfa.c (add_referenced_var): Return result of
4499         referenced_var_check_and_insert call.
4500         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
4501         of referenced_var_check_and_insert.
4502
4503         PR debug/39372
4504         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
4505         (gen_variable_die): Emit DW_AT_location on abstract static variable's
4506         DIE, don't emit it if abstract origin already has it.
4507         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
4508         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
4509
4510 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
4511
4512         * genpreds.c (needs_variable): Fix parentheses at variable name
4513         detection.
4514         (write_tm_constrs_h): Indent generated code.
4515
4516 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4517
4518         * doc/extend.texi (Function Attributes): Add documentation
4519         for isr attributes.
4520
4521 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
4522
4523         PR debug/39387
4524         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
4525         take locus from its DECL_SOURCE_LOCATION instead of input_location.
4526
4527 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
4528
4529         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
4530         the loop as bad.
4531
4532 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
4533
4534         PR debug/39379
4535         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
4536         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
4537
4538 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
4539
4540         * config/i386/i386.md (R8_REG, R9_REG): New constants.
4541         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
4542         constants instead of magic numbers.
4543         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
4544         (QI_REG_P): Ditto.
4545         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
4546         (x86_64_ms_abi_int_parameter_registers): Ditto.
4547         (x86_64_int_return_registers): Ditto.
4548         (ix86_maybe_switch_abi): Ditto.
4549         (ix86_expand_call): Ditto for clobbered_registers array.
4550         (ix86_hard_regno_mode_ok): Ditto.
4551         (x86_extended_QIreg_mentioned_p): Ditto.
4552
4553 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
4554
4555         PR tree-optimization/39349
4556         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
4557
4558         * combine.c (gen_lowpart_for_combine): Use omode when generating
4559         clobber.
4560
4561 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
4562
4563         PR rtl-optimization/39235
4564         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
4565
4566 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
4567
4568         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
4569
4570 2009-03-04  Richard Guenther  <rguenther@suse.de>
4571
4572         PR tree-optimization/39362
4573         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
4574         that occur in abnormal PHIs should be varying.
4575
4576 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
4577
4578         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
4579         Extend comments.
4580         (simple_iv):  Take loop as an argument instead of statement.
4581         * tree-scalar-evolution.h (simple_iv): Declaration changed.
4582         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
4583         to simple_iv.
4584         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
4585         Ditto.
4586         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
4587         * matrix-reorg.c (analyze_transpose): Ditto.
4588         * tree-data-ref.c (dr_analyze_innermost): Ditto.
4589         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
4590         * tree-predcom.c (ref_at_iteration): Ditto.
4591         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
4592
4593 2009-03-04  Richard Guenther  <rguenther@suse.de>
4594
4595         PR tree-optimization/39358
4596         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
4597         escaped_id and callused_id.
4598         (solve_graph): Likewise.
4599
4600 2009-03-04  Richard Guenther  <rguenther@suse.de>
4601
4602         PR tree-optimization/39339
4603         * tree-sra.c (try_instantiate_multiple_fields): Make it
4604         no longer ICE on the above.
4605
4606 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
4607
4608         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
4609         that fits within Pmode.
4610
4611 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
4612
4613         PR middle-end/10109
4614         * tm.texi (LIBCALL_VALUE): Update description.
4615
4616 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
4617
4618         PR middle-end/34443
4619         * doc/extend.texi (section): Update description.
4620
4621 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
4622
4623         PR middle-end/39345
4624         * tree-inline.c (remapped_type): New.
4625         (can_be_nonlocal): Call remapped_type instead of remap_type.
4626
4627 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
4628
4629         PR fortran/39354
4630         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
4631         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
4632
4633 2009-03-03  Richard Guenther  <rguenther@suse.de>
4634
4635         PR middle-end/39272
4636         * tree.c (tree_nonartificial_location): New function.
4637         * tree.h (tree_nonartificial_location): Declare.
4638         * builtins.c (expand_builtin_memory_chk): Provide location
4639         of the call location for artificial function pieces.
4640         (maybe_emit_chk_warning): Likewise.
4641         (maybe_emit_sprintf_chk_warning): Likewise.
4642         (maybe_emit_free_warning): Likewise.
4643         * expr.c (expand_expr_real_1): Likewise.
4644
4645 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
4646
4647         PR tree-optimization/39343
4648         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
4649         COMPONENT_REF t has ARRAY_TYPE.
4650
4651 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
4652
4653         PR middle-end/39335
4654         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
4655         when the type precision of the induction variable should be
4656         larger than the type precision of nit.
4657         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
4658         * graphite.c (graphite_loop_normal_form): Same.
4659         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
4660
4661 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
4662
4663         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
4664         (*call_1_rex64_ms_sysv): Use named constants instead of magic
4665         numbers to describe clobbered registers.
4666         (*call_value_0_rex64_ms_sysv): Ditto.
4667         * config/i386/mmx.md (mmx_emms): Ditto.
4668         (mmx_femms): Ditto.
4669
4670 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
4671
4672         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
4673         of ABI_64.
4674
4675 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4676
4677         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
4678         (spu_section_type_flags): New function.
4679
4680 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
4681
4682         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
4683         reg_class_contents of FLOAT_REGS into a temporary.
4684
4685 2009-03-02  Richard Guenther  <rguenther@suse.de>
4686             Ira Rosen  <irar@il.ibm.com>
4687
4688         PR tree-optimization/39318
4689         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
4690         information to the vectorized statement.
4691
4692 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
4693
4694         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
4695         variable.  Use defined names instead of magic constants for REX SSE
4696         registers.
4697
4698 2009-03-01  Richard Guenther  <rguenther@suse.de>
4699
4700         PR tree-optimization/39331
4701         * omp-low.c (lower_send_shared_vars): Do not receive new
4702         values for the reference of DECL_BY_REFERENCE parms or results.
4703
4704 2009-03-01  Jan Hubicka  <jh@suse.cz>
4705
4706         PR debug/39267
4707         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
4708         BLOCK_NONLOCALIZED_VAR): New macros.
4709         (tree_block): Add nonlocalized_vars.
4710         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
4711         gen_decl_die): Add origin argument.  Allow generation of die with
4712         origin at hand only.
4713         (gen_member_die, gen_type_die_with_usage, force_decl_die,
4714         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
4715         of gen_*.
4716         (gen_block_die): Fix checking for unused blocks.
4717         (process_scope_var): Break out from .... ; work with origins only.
4718         (decls_for_scope) ... here; process nonlocalized list.
4719         (dwarf2out_ignore_block): Look for nonlocalized vars.
4720         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
4721         vars.
4722         (dump_scope_block): Dump them.
4723         * tree-inline.c (remap_decls): Handle nonlocalized vars.
4724         (remap_block): Likewise.
4725         (can_be_nonlocal): New predicate.
4726         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
4727
4728 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4729
4730         * configure: Regenerate.
4731
4732 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4733
4734         * optc-gen.awk: No need to duplicate option flags twice.
4735         Reuse help texts for duplicate options which do not have any.
4736
4737         * gcc.c (display_help): Document --version.
4738
4739         * gcc.c (main): If print_help_list and verbose_flag, ensure
4740         driver output comes before subprocess output.
4741
4742         * optc-gen.awk: Assign all remaining fields to help string,
4743         space-separated, for multi-line help in *.opt.
4744
4745         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
4746         -Wno-pedantic-ms-format is for MinGW targets only.
4747
4748         * doc/options.texi (Option file format): Fix bad indentation,
4749         restoring dropped sentence.
4750
4751 2009-02-28  Jan Hubicka  <jh@suse.cz>
4752
4753         * tree-inline.c (tree_function_versioning): Output debug info.
4754
4755 2009-02-28  Jan Hubicka  <jh@suse.cz>
4756
4757         PR debug/39267
4758         * tree-inline.c (setup_one_parameter): Do not copy propagate
4759         arguments when not optimizing.
4760
4761 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
4762
4763         PR target/39327
4764         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
4765         (avx_addsubv4df3): Likewise.
4766         (*avx_addsubv4sf3): Likewise.
4767         (sse3_addsubv4sf3): Likewise.
4768         (*avx_addsubv2df3): Likewise.
4769         (sse3_addsubv2df3): Likewise.
4770         (avx_unpckhps256): Correct item selectors.
4771         (avx_unpcklps256): Likewise.
4772         (avx_unpckhpd256): Likewise.
4773         (avx_unpcklpd256): Likewise.
4774
4775 2009-02-28  Jan Hubicka  <jh@suse.cz>
4776
4777         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
4778         static vars.
4779         (copy_arguments_for_versioning): If var is declared don't declare it.
4780         (tree_function_versioning): First setup substitutions and then copy
4781         args.
4782
4783 2009-02-27  Jan Hubicka  <jh@suse.cz>
4784
4785         PR debug/39267
4786         * cgraph.h (varpool_output_debug_info): Remove.
4787         * cgraphunit.c (varpool_output_debug_info): Remove.
4788         * dwarf2out.c (deferred_locations_struct): New struct
4789         (deferred_locations): New type.
4790         (deferred_locations_list): New static var.
4791         (deffer_location): New function.
4792         (gen_variable_die): Use it.
4793         (decls_for_scope): Output info on local static vars.
4794         (dwarf2out_finish): Process deferred locations.
4795         * varpool.c (varpool_output_debug_info): Remove.
4796
4797 2009-02-27  Jan Hubicka  <jh@suse.cz>
4798
4799         PR debug/39267
4800         * tree.h (TREE_PROTECTED): Fix comment.
4801         (BLOCK_HANDLER_BLOCK): Remove.
4802         (struct tree_block): Remove handler_block add body_block.
4803         (inlined_function_outer_scope_p): New.
4804         (is_body_block): Remove.
4805         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
4806         * dwarf2out.c (is_inlined_entry_point): Remove.
4807         (add_high_low_attributes): Use inlined_function_outer_scope_p.
4808         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
4809         code.
4810         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
4811         * gimplify.c (gimplify_expr): Gimplify body blocks.
4812         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
4813         block with multiple subblocks.
4814         (dump_scope_block): Prettier output; dump more flags and info.
4815         (dump_scope_blocks): New.
4816         (remove_unused_locals): Use dump_scope_blocks.
4817         * tree-flow.h (dump_scope_blocks): Declare.
4818         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
4819         * stmt.c (is_body_block): Remove.
4820         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
4821         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
4822
4823 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
4824
4825         PR middle-end/39308
4826         * graphite.c (graphite_loop_normal_form): Do not call 
4827         number_of_iterations_exit from a gcc_assert.
4828
4829 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4830
4831         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
4832         jumps if COND is NULL.
4833         (find_cond_jump): New function.
4834         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
4835         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
4836
4837 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
4838
4839         * config/alpha/alpha.h (alpha_expand_mov): Return false if
4840         force_const_mem returns NULL_RTX.
4841
4842 2009-02-26  Jan Hubicka  <jh@suse.cz>
4843
4844         PR debug/39267
4845         * cgraph.h (varpool_output_debug_info): Remove.
4846         * cgraphunit.c (varpool_output_debug_info): Remove.
4847         * dwarf2out.c (deferred_locations_struct): New struct
4848         (deferred_locations): New type.
4849         (deferred_locations_list): New static var.
4850         (deffer_location): New function.
4851         (gen_variable_die): Use it.
4852         (decls_for_scope): Output info on local static vars.
4853         (dwarf2out_finish): Process deferred locations.
4854         * varpool.c (varpool_output_debug_info): Remove.
4855
4856 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
4857
4858         PR rtl-optimization/39241
4859         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
4860         to subreg_offset_representable_p.
4861
4862 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4863
4864         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
4865         execute function prototype.  Get f and nregs from max_reg_num
4866         and get_insns.  Remove the first backward pass as it's dead,
4867         guard the forward pass by flag_expensive_optimizations.
4868         (rest_of_handle_regmove): Delete.
4869         (pass_regmove): Replace it with regmove_optimize.
4870
4871 2009-02-25  Martin Jambor  <mjambor@suse.cz>
4872
4873         PR tree-optimization/39259
4874         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
4875         calls_alloca function flags.
4876         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
4877         calls are detected.
4878
4879 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
4880
4881         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
4882         flags_set_1_rtx, flags_set_1_set): Delete.
4883         (regmove_optimize): Do not call mark_flags_life_zones.
4884
4885 2009-02-24  Julian Brown  <julian@codesourcery.com>
4886
4887         PR target/35965
4888         * config/arm/arm.c (require_pic_register): Only set
4889         cfun->machine->pic_reg once per function.
4890
4891 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
4892
4893         * doc/invoke.texi (Link Options): Document an easier way to pass
4894         options that take arguments to the GNU linker using -Xlinker and -Wl.
4895
4896 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
4897
4898         PR target/33785
4899         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
4900
4901 2009-02-24  Richard Guenther  <rguenther@suse.de>
4902
4903         PR debug/39285
4904         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
4905
4906 2009-02-24  Richard Guenther  <rguenther@suse.de>
4907             Zdenek Dvorak  <ook@ucw.cz>
4908
4909         PR tree-optimization/39233
4910         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
4911         from converting them to a generic type.
4912
4913 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
4914
4915         PR tree-optimization/39260
4916         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
4917         contains a condition with a real type.
4918         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
4919
4920 2009-02-23  Jason Merrill  <jason@redhat.com>
4921
4922         PR c++/38880
4923         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
4924         narrowing_initializer_constant_valid_p.
4925         (narrowing_initializer_constant_valid_p): Don't return 
4926         null_pointer_node for adding a pointer to itself.
4927
4928 2009-02-23  Jan Hubicka  <jh@suse.cz>
4929
4930         PR c/12245
4931         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
4932         resizing.
4933
4934 2009-02-23  Jan Hubicka  <jh@suse.cz>
4935
4936         PR tree-optimization/37709
4937         * tree.c (block_ultimate_origin): Move here from dwarf2out.
4938         * tree.h (block_ultimate_origin): Declare.
4939         * dwarf2out.c (block_ultimate_origin): Move to tree.c
4940         * tree-ssa-live.c (remove_unused_scope_block_p):
4941         Eliminate blocks containig no instructions nor live variables nor
4942         nested blocks.
4943         (dump_scope_block): New function.
4944         (remove_unused_locals): Enable removal of dead blocks by default;
4945         enable dumping at TDF_DETAILS.
4946
4947 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4948
4949         * config/i386/i386.c (classify_argument): Don't allow COImode
4950         and OImode.
4951         (function_arg_advance_32): Don't allow OImode.
4952         (function_arg_32): Likewise.
4953         (function_value_32): Likewise.
4954         (return_in_memory_32): Likewise.
4955         (function_arg_64): Remove OImode comment.
4956
4957 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4958
4959         PR target/39261
4960         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
4961         ix86_expand_vector_set for V4DImode in 64bit mode only.
4962         (ix86_expand_vector_init_one_var): Likewise.
4963
4964 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
4965
4966         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
4967
4968 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4969
4970         PR bootstrap/39257
4971         * loop-iv.c: Revert last change.
4972         * emit-rtl.c: Likewise.
4973
4974 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
4975
4976         PR target/39256
4977         * config/i386/i386.c (type_natural_mode): Remove an extra
4978         space in the warning message.
4979         (function_value_32): Handle 32-byte vector modes.
4980         (return_in_memory_32): Likewise.
4981
4982 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
4983
4984         * loop-iv.c (truncate_value): New function.
4985         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
4986         of lowpart_subreg.
4987         (lowpart_subreg): Move to...
4988         * emit-rtl.c: ...here.
4989
4990 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
4991
4992         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
4993         accidental and undocumented change at revision 140860.
4994
4995 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
4996
4997         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
4998         take gimple_seq * arguments.
4999         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
5000         types_compatible_p langhook.
5001
5002 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
5003             Joseph Myers  <joseph@codesourcery.com>
5004
5005         * config/arm/arm.c (arm_builtin_va_list): New function.
5006         (arm_expand_builtin_va_start): Likewise.
5007         (arm_gimplify_va_arg_expr): Likewise.
5008         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
5009         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
5010         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
5011         (va_list_type): New variable.
5012         (arm_mangle_type): Mangle va_list_type appropriately.
5013
5014 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
5015
5016         PR middle-end/39157
5017         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
5018         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
5019         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
5020         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
5021         parameter to 1000 for -O1 by default.
5022         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
5023         parameter.
5024         * loop-invariant.c: Include params.h.
5025         (move_loop_invariants): Don't call move_single_loop_invariants on
5026         very large loops.
5027
5028 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
5029
5030         * calls.c (emit_library_call_value_1): Use slot_offset instead of
5031         offset when calculating bounds for indexing stack_usage_map.  Fixes
5032         a buffer overflow with certain target setups.
5033
5034 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
5035
5036         PR target/39240
5037         * calls.c (expand_call): Clear try_tail_call if caller and callee
5038         disagree in promotion of function return value.
5039
5040 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
5041
5042         PR target/39175
5043         * c-common.c (c_determine_visibility): If visibility changed and
5044         DECL_RTL has been already set, call make_decl_rtl to update symbol
5045         flags.
5046
5047 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
5048
5049         PR c++/39188
5050         * varasm.c (assemble_variable): Don't check DECL_NAME when
5051         globalizing a variable.
5052
5053 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
5054
5055         PR c/38483
5056         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
5057         expression before any __builtin_trap call.
5058         * c-typeck.c (build_function_call): Convert and check function
5059         arguments before generating a call to a trap.  Evaluate the
5060         function arguments before the trap.
5061
5062 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
5063
5064         PR target/39228
5065         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
5066         (UNSPEC_FXAM_MEM): New unspec.
5067         (fxam<mode>2_i387_with_temp): New insn and split pattern.
5068         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
5069         memory using fxam<mode>2_i387_with_temp to remove excess precision.
5070
5071 2009-02-19  Richard Guenther  <rguenther@suse.de>
5072
5073         PR tree-optimization/39207
5074         PR tree-optimization/39074
5075         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
5076         storedanything_tree): New.
5077         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
5078         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
5079         (build_succ_graph): Add edges from STOREDANYTHING to all
5080         non-direct nodes.
5081         (init_base_vars): Initialize STOREDANYTHING.
5082         (compute_points_to_sets): Free substitution info after
5083         building the succ graph.
5084         (ipa_pta_execute): Likewise.
5085
5086         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
5087         field.
5088         (do_ds_constraint): Do not add to special var or non-pointer
5089         field solutions.
5090         (type_could_have_pointers): Split out from ...
5091         (could_have_pointers): ... here.  For arrays use the element type.
5092         (create_variable_info_for): Initialize may_have_pointers.
5093         (new_var_info): Likewise.
5094         (handle_lhs_call): Make the HEAP variable unknown-sized.
5095         (intra_create_variable_infos): Use a type with pointers for
5096         PARM_NOALIAS, make it unknown-sized.
5097
5098 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
5099
5100         PR target/39224
5101         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
5102
5103 2009-02-18  Jason Merrill  <jason@redhat.com>
5104
5105         PR target/39179
5106         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
5107         value if DECL_EXTERNAL.
5108         * tree-sra.c (sra_walk_gimple_assign): Likewise.
5109         * target.h (gcc_target::binds_local_p): Clarify "module".
5110         * tree.h (TREE_PUBLIC): Clarify "module".
5111
5112 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
5113
5114         PR target/38891
5115         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
5116         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
5117
5118 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
5119
5120         PR target/39082
5121         * c.opt (Wabi): Support C and ObjC.
5122         (Wpsabi): New.
5123
5124         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
5125
5126         * config/i386/i386.c (classify_argument): Warn once about the ABI
5127         change when passing union with long double.
5128
5129         * doc/invoke.texi: Update -Wabi for warning psABI changes.
5130
5131 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
5132
5133         PR c/35447
5134         * c-parser.c (c_parser_compound_statement): Always enter and leave
5135         a scope.
5136
5137 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5138
5139         PR target/34587
5140         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
5141
5142 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
5143
5144         PR tree-optimization/36922
5145         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
5146         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
5147         Likewise.
5148
5149 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
5150
5151         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
5152         to 0 for EABI64.
5153
5154 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
5155
5156         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
5157
5158 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
5159
5160         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
5161         tree sharing.
5162
5163 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
5164             Richard Sandiford  <rdsandiford@googlemail.com>
5165
5166         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
5167         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
5168         (loongson_biadd): ...this.
5169
5170 2009-02-17  Richard Guenther  <rguenther@suse.de>
5171
5172         PR tree-optimization/39202
5173         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
5174         a var make sure to follow existing collapses.
5175
5176 2009-02-17  Richard Guenther  <rguenther@suse.de>
5177
5178         PR middle-end/39214
5179         * langhooks.c (lhd_print_error_function): Check for NULL block.
5180
5181 2009-02-17  Richard Guenther  <rguenther@suse.de>
5182
5183         PR tree-optimization/39204
5184         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
5185         of the PHI arg.
5186
5187 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
5188
5189         * config/soft-fp/double.h: Update from glibc CVS.
5190
5191 2009-02-17  Richard Guenther  <rguenther@suse.de>
5192
5193         PR tree-optimization/39207
5194         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
5195         strict-aliasing warnings for pointers pointing to NULL.
5196
5197 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
5198
5199         PR c/35446
5200         * c-parser.c (c_parser_braced_init): Call pop_init_level when
5201         skipping until next close brace.
5202
5203 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
5204
5205         PR target/37049
5206         * config/i386/i386.c (ix86_expand_push): Set memory alignment
5207         to function argument boundary.
5208
5209 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
5210
5211         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
5212         in the lea_add. Reload eventually constraints it properly.
5213         * config/picochip/constraints.md : Remove the target constraint
5214         "b", since it is not needed anymore.
5215
5216 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
5217
5218         * gthr-dce.h: Uglify function parameter and local variable names.
5219         * gthr-gnat.h: Likewise.
5220         * gthr-mipssde.h: Likewise.
5221         * gthr-nks.h: Likewise.
5222         * gthr-posix95.h: Likewise.
5223         * gthr-posix.h: Likewise.
5224         * gthr-rtems.h: Likewise.
5225         * gthr-single.h: Likewise.
5226         * gthr-solaris.h: Likewise.
5227         * gthr-tpf.h: Likewise.
5228         * gthr-vxworks.h: Likewise.
5229         * gthr-win32.h: Likewise.
5230
5231 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
5232
5233         PR target/39196
5234         * config/i386/i386.md: Restrict the new peephole2 to move
5235         between MMX/SSE registers.
5236
5237 2009-02-15  Richard Guenther  <rguenther@suse.de>
5238
5239         Revert
5240         2009-02-13  Richard Guenther  <rguenther@suse.de>
5241
5242         * configure.ac: Enable LFS.
5243         * configure: Re-generate.
5244         * config.in: Likewise.
5245
5246 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5247
5248         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
5249         spu_srqwbyte, spu_srqwbytebc): Define.
5250         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
5251         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
5252         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
5253         "shrqby_<mode>"): New insn-and-split patterns.
5254         * config/spu/spu.c (expand_builtin_args): Determine and return
5255         number of operands using spu_builtin_description data.
5256         (spu_expand_builtin_1): Use it.
5257
5258 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
5259
5260         PR target/38056
5261         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
5262         TARGET_CONST_GP.
5263
5264 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5265
5266         PR target/39149
5267         * config/i386/i386.c (override_options): Correct warning
5268         messages for -malign-loops, -malign-jumps and -malign-functions.
5269
5270 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5271
5272         PR target/39152
5273         * config/i386/i386.md: Restrict the new peephole2 to move
5274         between the general purpose registers.
5275
5276 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
5277
5278         PR target/39162
5279         * config/i386/i386.c (type_natural_mode): Add a new argument.
5280         Return the original mode and warn ABI change if vector size is 32byte.
5281         (function_arg_advance): Updated.
5282         (function_arg): Likewise.
5283         (ix86_function_value): Likewise.
5284         (ix86_return_in_memory): Likewise.
5285         (ix86_sol10_return_in_memory): Likewise.
5286         (ix86_gimplify_va_arg): Likewise.
5287         (function_arg_32): Don't warn ABX ABI change here.
5288         (function_arg_64): Likewise.
5289
5290 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
5291
5292         * loop-iv.c (implies_p): In the final case, test that operands 0
5293         of the two comparisons match.
5294
5295         * config/bfin/bfin.c (find_prev_insn_start): New function.
5296         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
5297         (find_next_insn_start): Move.
5298
5299 2009-02-13  Richard Guenther  <rguenther@suse.de>
5300
5301         * configure.ac: Enable LFS.
5302         * configure: Re-generate.
5303         * config.in: Likewise.
5304
5305 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
5306
5307         PR c/35444
5308         * c-parser.c (c_parser_parms_list_declarator): Discard pending
5309         sizes on syntax error after some arguments have been parsed.
5310
5311 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
5312
5313         * doc/invoke.texi (-fira): Remove.
5314
5315 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5316
5317         * caller-save.c: Replace regclass.c with reginfo.c in comments.
5318         * recog.c: Likewise.
5319         * rtl.h: Likewise.
5320
5321 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
5322
5323         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
5324         (umul_ppmm): Likewise.
5325         (count_leading_zeros): Likewise.
5326         (count_trailing_zeros): Likewise.
5327         (UMUL_TIME): Likewise.
5328
5329 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5330
5331         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
5332         soft-fp/t-softfp to tmake_file.
5333
5334         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
5335         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
5336         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
5337         IA64_BUILTIN_INFQ]: New.
5338         (ia64_init_builtins): Initialize __builtin_infq,
5339         __builtin_fabsq and __builtin_copysignq if not HPUX.
5340         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
5341         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
5342
5343         * config/ia64/lib1funcs.asm (__divtf3): Define only if
5344         SHARED is defined.
5345         (__fixtfti): Likewise.
5346         (__fixunstfti): Likewise.
5347         (__floattitf): Likewise.
5348
5349         * config/ia64/libgcc-glibc.ver: New.
5350         * config/ia64/t-fprules-softfp: Likewise.
5351         * config/ia64/sfp-machine.h: Likewise.
5352
5353         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
5354         (LIBGCC2_TF_CEXT): Likewise.
5355         (TF_SIZE): Likewise.
5356         (TARGET_INIT_LIBFUNCS): Likewise.
5357
5358         * config/ia64/t-glibc (SHLINB_MAPFILES):
5359         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
5360
5361 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
5362
5363         * config/i386/i386.c (construct_container): Rewrite processing
5364         BLKmode with X86_64_SSE_CLASS.
5365
5366 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
5367
5368         PR target/39152
5369         * config/i386/i386.md: Replace simplify_replace_rtx with
5370         replace_rtx in the new peephole2.
5371
5372 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
5373
5374         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
5375         loop unrolling do not happen at -O2.
5376
5377 2009-02-12  Michael Matz  <matz@suse.de>
5378
5379         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
5380
5381 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
5382
5383         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
5384         for -g3.
5385
5386 2009-02-12  Ben Elliston  <bje@au.ibm.com>
5387
5388         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
5389         patterns when updating the back chain.  Missed in the 2009-02-10
5390         change.
5391
5392 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
5393
5394         * doc/extend.texi (Decimal Floating Types): Update identifier of
5395         draft TR and list of missing support.
5396
5397 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
5398
5399         PR middle-end/39154
5400         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
5401         bit to variable length decl's flags, add it also to its
5402         pointer replacement variable.
5403
5404 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
5405             Jakub Jelinek  <jakub@redhat.com>
5406
5407         PR target/39118
5408         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
5409         (memory_blockage): New expander.
5410         (*memory_blockage): New insn pattern.
5411         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
5412         instead of general blockage at the end of function prologue when
5413         frame pointer is used to access red zone area.  Do not emit blockage
5414         when profiling, it is emitted in generic code.
5415         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
5416         function epilogue when frame pointer is used to access red zone area.
5417
5418 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
5419
5420         PR target/38824
5421         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
5422         by arithmetic with memory operands.
5423         * config/i386/predicates.md (commutative_operator): New.
5424
5425 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
5426
5427         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
5428         bulleted lists.
5429
5430 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
5431
5432         * alias.h (record_alias_subset): Declare.
5433         * alias.c (record_alias_subset): Make global.
5434
5435 2009-02-10  Nick Clifton  <nickc@redhat.com>
5436
5437         * tree-parloops.c: Change license to GPLv3.
5438         * ipa-struct-reorg.c: Change license to GPLv3.
5439         * ipa-struct-reorg.h: Change license to GPLv3.
5440
5441 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
5442
5443         PR c/39084
5444         * c-decl.c (start_struct): Return NULL on error.
5445
5446 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
5447
5448         PR middle-end/39124
5449         * cfgloopmanip.c (remove_path): Call remove_bbs after
5450         cancel_loop_tree, not before it.
5451
5452         PR target/39139
5453         * function.h (struct function): Add has_local_explicit_reg_vars bit.
5454         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
5455         VAR_DECLs were seen.
5456         * tree-ssa-live.c (remove_unused_locals): Recompute
5457         cfun->has_local_explicit_reg_vars.
5458         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
5459         copies or clearings if cfun->has_local_explicit_reg_vars.
5460
5461 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
5462
5463         PR target/39118
5464         * config/i386/i386.c (expand_prologue): Emit blockage at the end
5465         of function prologue when frame pointer is used to access
5466         red zone area.
5467
5468 2009-02-10  Richard Guenther  <rguenther@suse.de>
5469
5470         PR middle-end/39127
5471         * gimplify.c (gimple_regimplify_operands): Always look if
5472         we need to create a temporary.
5473
5474 2009-02-10  Richard Guenther  <rguenther@suse.de>
5475
5476         PR tree-optimization/39132
5477         * tree-loop-distribution.c (todo): New global var.
5478         (generate_memset_zero): Trigger TODO_rebuild_alias.
5479         (tree_loop_distribution): Return todo.
5480
5481 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
5482
5483         PR target/39119
5484         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
5485         (x86_64_reg_class_name): Removed.
5486         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
5487         first one isn't X86_64_SSE_CLASS or any other ones aren't
5488         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
5489         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
5490         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
5491         and 3 X86_64_SSEUP_CLASS.
5492         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
5493         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
5494
5495 2009-02-10  Ben Elliston  <bje@au.ibm.com>
5496
5497         * config/rs6000/rs6000.md (allocate_stack): Always use an update
5498         form instruction to update the stack back chain word, even if the
5499         user has disabled the generation of update instructions.
5500         (movdi_<mode>_update_stack): New.
5501         (movsi_update_stack): Likewise.
5502         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
5503         always use an update form instruction to update the stack back
5504         chain word.
5505
5506 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
5507
5508         PR middle-end/38953
5509         * graphite.c (if_region_set_false_region): After moving a region in
5510         the false branch of a condition, remove the empty dummy basic block.
5511         (gloog): Remove wrong fix for PR38953.
5512
5513 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5514
5515         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
5516         generation due to implicit sign extension.
5517
5518 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
5519
5520         PR middle-end/38981
5521         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
5522         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
5523
5524 2009-02-09  Richard Guenther  <rguenther@suse.de>
5525
5526         PR middle-end/35202
5527         * convert.c (convert_to_real): Disable (float)fn((double)x)
5528         to fnf(x) conversion if errno differences may occur and
5529         -fmath-errno is set.
5530
5531 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
5532
5533         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
5534         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
5535         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
5536
5537 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
5538
5539         PR c/35434
5540         * c-common.c (handle_alias_attribute): Disallow attribute for
5541         anything not a FUNCTION_DECL or VAR_DECL.
5542
5543 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
5544
5545         PR c/39035
5546         * real.c (do_compare): Special-case compare of zero against
5547         decimal float value.
5548
5549 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
5550
5551         PR c/36432
5552         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
5553         as indicating flexible array members unless the field itself is
5554         being declarared as the incomplete array.
5555
5556 2009-02-06  Jan Hubicka  <jh@suse.cz>
5557
5558         PR tree-optimization/38844
5559         * ipa-inline.c (try_inline): Stop inlining recursion when edge
5560         is already inlined.
5561
5562 2009-02-06  Richard Guenther  <rguenther@suse.de>
5563
5564         PR middle-end/38977
5565         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
5566         fork because we may expand it as __gcov_fork.
5567
5568 2009-02-06  Nick Clifton  <nickc@redhat.com>
5569
5570         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
5571
5572 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
5573
5574         PR tree-optimization/35659
5575         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
5576         vn_phi_eq): Shortcut if hashcode does not match.
5577         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
5578         NULL operands.
5579         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
5580         and avoid iterative_hash_expr.
5581         (FOR_EACH_VALUE_ID_IN_SET): New.
5582         (value_id_compare): Remove.
5583         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
5584         sort expressions by value id.
5585
5586 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5587
5588         PR target/38991
5589         * config/sh/predicates.md (general_movsrc_operand): Don't check
5590         the subreg of system registers here.
5591
5592 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
5593
5594         PR c++/39106
5595         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
5596         on the copied decl.
5597
5598 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
5599
5600         PR rtl-optimization/39110
5601         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
5602         addresses, not aligned ones.
5603
5604 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
5605             Richard Guenther  <rguenther@suse.de>
5606
5607         PR tree-optimization/39100
5608         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
5609         comment says and add edges.
5610
5611 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
5612
5613         PR c/35435
5614         * c-common.c (handle_tls_model_attribute): Ignore attribute for
5615         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
5616
5617 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
5618
5619         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
5620         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
5621         register_bb_in_sese, new_sese, free_sese): Moved.
5622         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
5623         outermost_loop_in_scop, build_scop_iteration_domain,
5624         expand_scalar_variables_ssa_name, get_vdef_before_scop,
5625         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
5626         Use loop_in_sese_p instead of loop_in_scop_p.
5627         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
5628         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
5629         (scopdet_basic_block_info): Fix bug in scop detection.
5630         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
5631         eq_loop_to_cloog_loop): Remove.
5632         (nb_loops_around_loop_in_scop, nb_loop
5633         ref_nb_loops): Moved here...
5634         * graphite.h (ref_nb_loops): ... from here.
5635         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
5636         (loop_domain_dim, loop_iteration_vector_dim): Remove.
5637         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
5638         * testsuite/gcc.dg/graphite/scop-19.c: New
5639
5640 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
5641             Hans-Peter Nilsson  <hp@axis.com>
5642
5643         PR rtl-optimization/37889
5644         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
5645         Move offset handling from PLUS to before the switch.  Use new
5646         arguments when considering SYMBOL_REFs too.
5647         (rtx_addr_can_trap_p): Pass dummy offset and size.
5648         (enum may_trap_p_flags): Remove.
5649         (may_trap_p_1): Pass size from MEM_SIZE.
5650
5651         PR rtl-optimization/38921
5652         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
5653         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
5654         * rtlanal.c (may_trap_after_code_motion_p): Delete.
5655         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
5656
5657 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
5658
5659         AVX Programming Reference (January, 2009)
5660         * config/i386/sse.md (*vpclmulqdq): New.
5661
5662 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
5663
5664         PR tree-optimization/38977
5665         PR gcov-profile/38292
5666         * calls.c (special_function_p): Disregard __builtin_ prefix.
5667
5668 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
5669
5670         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
5671         non-indexable addresses even before reload.
5672
5673 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
5674
5675         PR c/29129
5676         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
5677         as having variable size.  Do not give an error for unnamed
5678         parameters with [*] declarators.  Give a warning for type names
5679         with [*] declarators and mark them as variable size.
5680         * c-parser.c (c_parser_sizeof_expression): Do not give an error
5681         for sizeof applied to [*] type names.
5682
5683 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5684
5685         PR C++/36607
5686         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
5687
5688 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
5689
5690         * gcc.c (process_command): Update copyright notice dates.
5691         * gcov.c (print_version): Likewise.
5692         * gcov-dump.c (print_version): Likewise.
5693         * mips-tfile.c (main): Likewise.
5694         * mips-tdump.c (main): Likewise.
5695
5696 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
5697
5698         PR c/35433
5699         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
5700         for composite type involving a zero-length array type.
5701
5702 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
5703
5704         PR target/35318
5705         * function.c (match_asm_constraints_1): Skip over
5706         initial optional % in the constraint.
5707
5708         PR inline-asm/39059
5709         * c-parser.c (c_parser_postfix_expression): If fixed point is not
5710         supported, don't accept FIXED_CSTs.
5711         * c-decl.c (finish_declspecs): Error if fixed point is not supported
5712         and _Sat is used without _Fract/_Accum.  Set specs->type to
5713         integer_type_node for cts_fract/cts_accum if fixed point is not
5714         supported.
5715
5716 2009-02-02  Catherine Moore  <clm@codesourcery.com>
5717
5718         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
5719
5720 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
5721
5722         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
5723         (ABI_HAS_64BIT_SYMBOLS): Use it.
5724         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
5725
5726 2009-02-02  Paul Brook  <paul@codesourcery.com>
5727
5728         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
5729
5730 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
5731
5732         PR inline-asm/39058
5733         * recog.h (asm_operand_ok): Add constraints argument.
5734         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
5735         recurse on matching constraint.
5736         (check_asm_operands): Pass constraints as 3rd argument to
5737         asm_operand_ok.  Don't look up matching constraint here.
5738         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
5739         to asm_operand_ok.
5740
5741 2009-02-02  Ben Elliston  <bje@au.ibm.com>
5742
5743         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
5744         TARGET_NARROW_VOLATILE_BITFIELD macro names.
5745
5746 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5747
5748         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
5749         information.  Remove some obsolete information.  Reorganize.
5750
5751         * config/pa/fptr.c: Revert license to GPL 2.
5752         * config/pa/milli64.S: Likewise.
5753
5754 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5755
5756         PR target/38904
5757         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
5758         LIBRARY name in, instead of hard-coding it.
5759         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
5760         extra target make frag to tmake_files according to EH model.
5761         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
5762         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
5763         frags that define makefile variable EH_MODEL appropriately.
5764         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
5765         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
5766         to "-sjlj" according to type of EH configured.
5767         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5768         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
5769         to "_sjlj" according to type of EH configured.
5770         (LIBGCC_SONAME):  Concatenate it to shared library base name.
5771         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
5772         (SHLIB_LINK):  Add missing semicolon to if-else construct.
5773         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5774         string value of "pe_dll" command-line option.
5775         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
5776         (SHLIB_SONAME):  Use it when overriding t-cygming default.
5777         (SHLIB_IMPLIB):  Override t-cygming default.
5778         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
5779         string value of "pe_dll" command-line option.
5780
5781 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
5782
5783         PR target/38952
5784         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
5785         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
5786
5787 2009-01-31  Richard Guenther  <rguenther@suse.de>
5788
5789         PR tree-optimization/38937
5790         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
5791         computing the transitive closure.
5792
5793 2009-01-30  Richard Guenther  <rguenther@suse.de>
5794
5795         PR tree-optimization/39041
5796         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
5797         Propagate variable indices only if the types match for this stmt.
5798
5799 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
5800
5801         PR target/39013
5802         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
5803         inline but never defined.
5804
5805 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
5806
5807         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
5808         (*insv_h_di_reg_extimm): New insn.
5809         (*insv_l<mode>_reg_extimm): New insn.
5810
5811 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5812
5813         * config/picochip/picochip.c (flag_conserve_stack): set
5814         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
5815         fconserve-stack. Reduce call-overhead used by inliner.
5816
5817 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
5818
5819         PR/38157
5820         * common.opt (flag_conserve_stack): Initialised to zero.
5821
5822 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
5823
5824         PR/39002
5825         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
5826         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
5827         method.
5828
5829 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
5830
5831         * ira-color.c (allocno_reload_assign): Update comments.
5832         * regmove.c (regmove_optimize): Likewise.
5833
5834         * ra.h: Removed.
5835
5836 2009-01-29  Robert Millan  <rmh@aybabtu.com>
5837
5838         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
5839         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
5840         `MD_UNWIND_SUPPORT'.
5841         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
5842
5843 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
5844
5845         PR tree-optimization/39007
5846         * tree-loop-distribution.c (generate_builtin): Use
5847         recompute_dominator to compute the immediate dominator of the
5848         basic block just after the loop.
5849
5850 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5851
5852         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
5853         (ASM_OUTPUT_DWARF_PCREL): Define.
5854
5855 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
5856
5857         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
5858         * doc/passes.texi: Remove entries about regclass, local-alloc, and
5859         global.  Modify entries about regmove and IRA.
5860
5861         * ra-conflict.c: Remove the file.
5862
5863         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
5864
5865         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
5866         (pass_regclass_init): Rename to pass_reginfo_init.
5867
5868         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
5869
5870         * toplev.h (flag_ira): Remove.
5871
5872         * caller-save.c (setup_save_areas): Remove flag_ira.
5873
5874         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
5875
5876         * global.c: Remove the file.
5877
5878         * opts.c (decode_options): Remove flag_ira.
5879
5880         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
5881
5882         * regmove.c: Modify file description.
5883         (find_use_as_address, try_auto_increment): Define them only if
5884         AUTO_INC_DEC is defined.
5885         (replacement_quality, replace_in_call_usage, fixup_match_1,
5886         stable_and_no_regs_but_for_p): Remove.
5887         (reg_set_in_bb): Make it static.
5888         (regmove_optimize): Remove flag_ira and code which worked for
5889         !flag_ira.
5890
5891         * local-alloc.c: Remove the file.
5892
5893         * common.opt (fira): Remove.
5894
5895         * ira.c: Include except.h.
5896         (eliminable_regset): Move from global.c.
5897         (mark_elimination): Ditto.  Remove flag_ira.
5898         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
5899         equiv_mem_modified, validate_equiv_mem_from_store,
5900         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
5901         contains_replace_regs, memref_referenced_p, memref_used_between_p,
5902         no_equiv, recorded_label_ref): Move from local-alloc.c.
5903         (update_equiv_regs): Ditto.  Make it static.
5904         (print_insn_chain, print_insn_chains): Move it from global.c.
5905         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
5906         (build_insn_chain): Ditto.  Make it static.
5907         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
5908         Rename to init_live_subregs.
5909         (gate_ira): Remove flag_ira.
5910
5911         * regclass.c: Rename reginfo.c.  Change file description.
5912         (FORBIDDEN_INC_DEC_CLASSES): Remove.
5913         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
5914         (init_reg_sets_1): Remove code for evaluation of
5915         reg_class_superclasses and losing_caller_save_reg_set.
5916         (init_regs): Remove init_reg_autoinc.
5917         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
5918         ok_for_base_p_nonstrict): Remove.
5919         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
5920         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
5921         corresponding entries.
5922         (dump_regclass, record_operand_costs, scan_one_insn,
5923         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
5924         record_address_regs, auto_inc_dec_reg_p): Remove.
5925         (gt-regclass.h): Rename to gt-reginfo.h.
5926
5927         * rtl.h (dump_global_regs, retry_global_alloc,
5928         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
5929
5930         * Makefile.in (RA_H): Remove.
5931         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
5932         Rename regclass.o to reginfo.o.
5933         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
5934         gt-reginfo.h.
5935         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
5936         (GTFILES): Rename regclass.c to reginfo.c.
5937
5938         * passes.c (init_optimization_passes): Remove pass_local_alloc and
5939         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
5940
5941         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
5942         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
5943         Remove flag_ira.
5944         (finish_spills): Ditto.  Remove code for !flag_ira.
5945         
5946 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
5947
5948         PR middle-end/35854
5949         * doc/invoke.texi (rtl debug options): Complete rewrite.
5950         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
5951         to auto_inc_dec".
5952         * mode-switching.c (pass_mode_switching): Rename pass from
5953         "mode-sw" to "mode_sw".
5954         * except.c (pass_convert_to_eh_ranges): Rename pass from
5955         "eh-ranges" to "eh_ranges".
5956         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
5957         to "subreg1".
5958                 
5959         
5960 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
5961             Alexander Monakov  <amonakov@ispras.ru>
5962
5963         PR middle-end/38857
5964         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
5965         register.
5966         (move_exprs_to_boundary): Change return type and pass through
5967         should_move from move_op.  Relax assert.  Update usage ...
5968         (schedule_expr_on_boundary): ... here.  Use should_move instead of
5969         cant_move.
5970         (move_op_orig_expr_found): Indicate that insn was disconnected from
5971         stream.
5972         (code_motion_process_successors): Do not call after_merge_succs
5973         callback if original expression was not found when traversing any of
5974         the branches.
5975         (code_motion_path_driver): Change return type.  Update prototype.
5976         (move_op): Update comment.  Add a new parameter (should_move).  Update
5977         prototype.  Set *should_move based on indication provided by
5978         move_op_orig_expr_found.
5979
5980 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
5981
5982         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
5983         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
5984         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
5985         * config/rs6000/rs6000.c (rs6000_override_options): Default
5986         avoid-indexed-addresses on for Power6, off for everything else.
5987         (avoiding_indexed_address_p): New function.
5988         (rs6000_legitimize_address): Use it.
5989         (rs6000_legitimate_address): Likewise.
5990         * config/rs6000/rs6000.md (movXX_updateX): Likewise
5991
5992 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
5993
5994         PR tree-optimization/38997
5995         * tree-loop-distribution.c (generate_memset_zero): Use
5996         POINTER_PLUS_EXPR for a pointer addition.
5997
5998 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
5999
6000         * config/s390/s390.md (bswap<mode>2): New pattern added.
6001
6002 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
6003
6004         * config/s390/s390.md (*tls_load_31): Added type attribute.
6005
6006 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
6007
6008         * config/s390/s390.md: Fix a few comments.
6009
6010 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
6011
6012         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
6013         (*tm<mode>_full): Fixed z10prop attribute.
6014         (*tst<mode>_extimm): Fixed z10prop attribute.
6015         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
6016         (*tstqiCCT_cconly): Fixed z10prop attribute.
6017         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
6018         (*movsi_larl): Fixed z10prop attribute.
6019         (*movsi_zarch): Fixed z10prop attribute.
6020         (*movsi_eas): Fixed z10prop attribute.
6021         (*movhi): Fixed z10prop attribute.
6022         (*movqi): Fixed z10prop attribute.
6023         (*movstrictqi): Fixed z10prop attribute.
6024         (*mov<mode>): Fixed z10prop attribute.
6025         (*movcc): Fixed z10prop attribute.
6026         (*sethighpartdi_64): Fixed z10prop attribute.
6027         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
6028         (*negdi2_sign_cc): Fixed z10prop attribute.
6029         (*negdi2_sign): Fixed z10prop attribute.
6030         (*absdi2_sign_cc): Fixed z10prop attribute.
6031         (*absdi2_sign): Fixed z10prop attribute.
6032         (*negabsdi2_sign_cc): Fixed z10prop attribute.
6033         (*negabsdi2_sign): Fixed z10prop attribute.
6034         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
6035         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
6036         (doloop_si64): Fixed z10prop attribute.
6037         (doloop_si31): Fixed z10prop attribute.
6038         (doloop_long): Fixed z10prop attribute.
6039         (indirect_jump): Fixed z10prop attribute.
6040         (nop): Fixed z10prop attribute.
6041         (main_base_64): Fixed z10prop attribute.
6042         (reload_base_64): Fixed z10prop attribute.
6043
6044 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
6045
6046         PR rtl-optimization/38740
6047         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
6048         if !optimize.
6049         * config/mips/mips.c (mips_reorg): Likewise.
6050
6051 2009-01-28  Richard Guenther  <rguenther@suse.de>
6052
6053         PR tree-optimization/38926
6054         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
6055         with the correct value id to a value.
6056         (do_regular_insertion): Use the value number of edoubleprime
6057         for the value number of the expr.
6058
6059         Revert
6060         2008-08-21  Richard Guenther  <rguenther@suse.de>
6061
6062         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
6063         a PHI ask VN if it is already available.
6064         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
6065         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
6066
6067 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
6068
6069         PR middle-end/38934
6070         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
6071         set to varying whenever max has TREE_OVERFLOW set, similarly
6072         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
6073
6074 2009-01-28  Richard Guenther  <rguenther@suse.de>
6075
6076         PR middle-end/38908
6077         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
6078         uninitialized aggregate uses in call arguments.
6079
6080 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
6081
6082         PR tree-optimization/38984
6083         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
6084         the nothing_id variable if -fno-delete-null-pointer-checks.
6085
6086 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
6087
6088         PR target/38988
6089         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
6090         (set_got_offset_rex64): Ditto.
6091
6092 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
6093
6094         PR target/38941
6095         * doc/extend.texi: Improve local variable with asm reg.
6096
6097 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
6098
6099         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
6100         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
6101         was not supplied then set warn_packed_bitfield_compat to the
6102         default value of 1.
6103         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
6104         against 1.
6105
6106 2009-01-27  Richard Guenther  <rguenther@suse.de>
6107
6108         PR tree-optimization/38503
6109         * cfgexpand.c (expand_gimple_basic_block): Ignore
6110         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
6111         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
6112         variables that cannot have TBAA applied.
6113         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
6114         statements.
6115
6116 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
6117
6118         PR middle-end/38969
6119         * calls.c (initialize_argument_information): Do not wrap complex
6120         arguments in SAVE_EXPR.
6121
6122 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
6123
6124         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
6125         (INSTALL_LIBGCC): Revert typo commit.
6126
6127 2009-01-26  Richard Guenther  <rguenther@suse.de>
6128
6129         PR tree-optimization/38745
6130         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
6131         from special handling.
6132
6133 2009-01-26  Richard Guenther  <rguenther@suse.de>
6134
6135         PR tree-optimization/38745
6136         * tree-ssa.c (execute_update_addresses_taken): Do not include
6137         variables that cannot possibly be a register in not_reg_needs.
6138         Do not clear TREE_ADDRESSABLE on vars that may not become
6139         registers.
6140         * tree-ssa.c (update_alias_info_1): Include those in the set
6141         of addressable vars.
6142
6143 2009-01-26  Richard Guenther  <rguenther@suse.de>
6144
6145         PR middle-end/38851
6146         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
6147         * tree-ssa-dse.c: Include langhooks.h
6148         (execute_simple_dse): Remove stores with zero size.
6149
6150 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
6151
6152         PR c/38957
6153         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
6154         as PLUS_EXPR.
6155
6156 2009-01-24  Julian Brown  <julian@codesourcery.com>
6157
6158         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
6159         config/arm/linux-atomic.c.
6160         * config/arm/linux-atomic.c: New.
6161
6162 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
6163
6164         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
6165         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
6166         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
6167
6168 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
6169
6170         PR c/38938
6171         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
6172         properly.
6173
6174 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
6175
6176         PR tree-optimization/38953
6177         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
6178         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
6179         (gloog): Split the exit of the scop when the scop exit is a loop exit.
6180         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
6181         changed the CFG.
6182
6183 2009-01-24  Paul Brook  <paul@codesourcery.com>
6184
6185         * config/arm/neon.md (neon_type): Move to arm.md.
6186         (neon_mov<VSTRUCT>): Add neon_type attribute.
6187         * config/arm/arm.md (neon_type): Move to here.
6188         (conds): Add "unconditioal" and use as default for NEON insns.
6189
6190 2009-01-24  Ben Elliston  <bje@au.ibm.com>
6191
6192         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
6193         void *' warning from -Wc++-compat.
6194         * Makefile.in (dominance.o-warn): Remove.
6195
6196 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
6197
6198         PR tree-optimization/38932
6199         * fold-const.c (fold_unary_ignore_overflow): New.
6200         * tree.h (fold_unary_ignore_overflow): Declare.
6201         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
6202         * tree-ssa-sccvn.c (visit_reference_op_load,
6203         simplify_unary_expression): Likewise.
6204
6205 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
6206
6207         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
6208         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
6209         regardless of their type.
6210         * c-common.c (handle_packed_attribute): Don't ignore packed on
6211         bitfields.
6212         * c.opt (Wpacked-bitfield-compat): New warning option.
6213         * stor-layout.c (place_field): Warn if offset of a field changed.
6214         * doc/extend.texi (packed): Mention the ABI change.
6215         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
6216         (Warning Options): Add it to the list.
6217
6218 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
6219
6220         * c-opts.c (c_common_post_options): Fix a typo in comments.
6221
6222 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
6223
6224         PR middle-end/38615
6225         * gimplify.c (gimplify_init_constructor): Fix promotion of const
6226         variables to static.
6227         * doc/invoke.texi (-fmerge-all-constants): Update description.
6228
6229 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
6230
6231         PR target/38931
6232         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
6233         (*movdi_1_rex64): Use type "mmx" for alternative 5.
6234
6235 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
6236
6237         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
6238         a word boundary.
6239         (LOCAL_ALIGNMENT): Similarly.
6240
6241 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
6242             Joseph Myers  <joseph@codesourcery.com>
6243
6244         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
6245         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
6246         * config/arm/arm-tune.md: Regenerate.
6247         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
6248         -march=iwmmxt2.
6249
6250 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
6251
6252         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
6253         version number to five.
6254
6255 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
6256
6257         PR c++/38930
6258         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
6259         * c-common.c (set_underlying_type): Likewise.
6260         (is_typedef_decl ): Likewise
6261         * tree.h: Likewise
6262         (set_underlying_type): Likewise.
6263         (is_typedef_type): Likewise.
6264
6265 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
6266
6267         PR middle-end/38587
6268         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
6269         crossing setjmps.
6270
6271 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
6272
6273         PR bootstrap/37660
6274         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
6275         (LIBGCC_SPEC):  Don't define.
6276         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
6277
6278 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
6279
6280         PR rtl-optimization/38879
6281         * alias.c (base_alias_check): Unaligned access via AND address can
6282         alias all surrounding object types except those with sizes equal
6283         or wider than the size of unaligned access.
6284
6285 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
6286
6287         PR c++/26693
6288         * c-decl.c (clone_underlying_type): Move this ...
6289         * c-common.c (set_underlying_type): ... here.
6290         Also, make sure the function properly sets TYPE_STUB_DECL() on
6291         the newly created typedef variant type.
6292         (is_typedef_decl ): New entry point.
6293         * tree.h: Added a new member member_types_needing_access_check to
6294         struct tree_decl_non_common.
6295         (set_underlying_type): New entry point.
6296         (is_typedef_type): Likewise.
6297
6298 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
6299
6300         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
6301         Check whether two instructions have memory references that
6302         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
6303         are helper functions for traversing.
6304         * alias.h (insn_alias_sets_confilict_p): New prototypes.
6305         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
6306         not to draw dependency edge for instructions with non-conflicting
6307         alias sets.
6308
6309 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
6310
6311         PR other/38758
6312         * longlong.h: Update copyright years.  Use soft-fp license notice.
6313         Sync __clz_tab declaration with glibc.
6314
6315 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
6316
6317         PR target/30687
6318         * doc/extend.texi (syscall_linkage): New.
6319         (version_id): Modify.
6320
6321 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6322             Richard Guenther  <rguenther@suse.de>
6323
6324         PR tree-optimization/38747
6325         PR tree-optimization/38748
6326         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
6327         conversion if the base address is an indirect reference and the
6328         aliasing sets could cause issues.
6329
6330 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
6331
6332         * common.opt (fgraphite, fgraphite-identity): Add comment for 
6333         explaining why these options are not documented.
6334
6335 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
6336
6337         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
6338         gimple_call_lhs is NULL.
6339
6340 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
6341
6342         PR target/38868
6343         * emit-rtl.c (adjust_address_1): Make sure memref is never
6344         overwritten.
6345
6346 2009-01-20  Ben Elliston  <bje@au.ibm.com>
6347
6348         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
6349         const qualifier from arg parameter. Remove unnecessary cast to char *.
6350         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
6351         const qualifier from arg 2.
6352
6353 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
6354
6355         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
6356
6357 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
6358
6359         PR c/38869
6360         * rtl.h (reinit_regs): New prototype.
6361         * regclass.c: Include ira.h.
6362         (reinit_regs): New.
6363         * Makefile.in (regclass.o): Add ira.h.
6364         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
6365
6366 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
6367
6368         PR target/38736
6369         * c-common.c (handle_aligned_attribute): Use
6370         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
6371         default alignment value.
6372
6373         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
6374
6375         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
6376         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
6377
6378         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
6379         __BIGGEST_ALIGNMENT__.
6380
6381         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
6382
6383 2009-01-18  Richard Guenther  <rguenther@suse.de>
6384
6385         PR tree-optimization/38819
6386         * tree-flow.h (operation_could_trap_helper_p): Declare.
6387         * tree-eh.c (operation_could_trap_helper_p): Export.
6388         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
6389         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
6390         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
6391         are about to insert a possibly trapping instruction and fail
6392         in this case.
6393
6394 2009-01-18  Andreas Schwab  <schwab@suse.de>
6395
6396         * doc/install.texi (Configuration): Remove obsolete paragraph
6397         about use of --with-gnu-ld with --with-gnu-as.
6398
6399 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
6400
6401         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
6402         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
6403         Follow spelling conventions.
6404
6405 2009-01-18  Ben Elliston  <bje@au.ibm.com>
6406
6407         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
6408         C++ warning about implicit conversion from void * to struct
6409         bitmap_head_def *.
6410         (bitmap_obstack_free): Likewise for bitmap_element *.
6411         * Makefile.in (bitmap.o-warn): Remove.
6412
6413 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
6414
6415         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
6416
6417 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
6418             Tobias Grosser  <tobi.grosser@amd.com>
6419
6420         * graphite.c (graphite_trans_scop_block): Do not block single
6421         nested loops.
6422
6423 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
6424
6425         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
6426         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
6427         test with assertion.
6428
6429 2009-01-16  Richard Guenther  <rguenther@suse.de>
6430
6431         PR tree-optimization/38835
6432         PR middle-end/36227
6433         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
6434         and INT + PTR -> (INT)(PTR p+ INT) folding.
6435         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
6436
6437 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
6438
6439         PR target/38554
6440         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
6441         the subreg from a lowpart subreg if it is also casting the value.
6442
6443 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6444             Tobias Grosser  <tobi.grosser@amd.com>
6445
6446         * graphite.c (compare_prefix_loops): New.
6447         (build_scop_canonical_schedules): Rewritten.
6448         (graphite_transform_loops): Move build_scop_canonical_schedules
6449         after build_scop_iteration_domain.
6450
6451 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
6452             Tobias Grosser  <tobi.grosser@amd.com>
6453
6454         * graphite.c (add_conditions_to_domain): Add the loops to 
6455         the dimension of the iteration domain.  Do copy the domain
6456         only when it exists.
6457         (build_scop_conditions_1): Do not call add_conditions_to_domain.
6458         (add_conditions_to_constraints): New.
6459         (can_generate_code_stmt, can_generate_code): Removed.
6460         (gloog): Do not call can_generate_code.
6461         (graphite_transform_loops): Call add_conditions_to_constraints
6462         after building the iteration domain.
6463
6464 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
6465
6466         PR tree-optimization/38789
6467         * tree-ssa-threadedge.c
6468         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
6469         __builtin_constant_p.
6470
6471 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
6472
6473         * dce.c (delete_unmarked_insns): Reversed the order that insns are
6474         examined before deleting them.
6475         
6476 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
6477
6478         * function.c (aggregate_value_p): Correctly extract the function
6479         type from CALL_EXPR_FN lookup.
6480
6481 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
6482
6483         * config/picochip/picochip.c (picochip_override_options): Revert
6484         CFI asm flag disable commited previously.
6485
6486 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
6487             Tobias Grosser  <tobi.grosser@amd.com>
6488             Jan Sjodin  <jan.sjodin@amd.com>
6489
6490         * graphite.c (scan_tree_for_params): On substractions negate
6491         all the coefficients of the term.
6492         (clast_to_gcc_expression_red): New.  Handle reduction expressions
6493         of more than two operands.
6494         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
6495         (get_vdef_before_scop): Handle also the case of default definitions.
6496
6497 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
6498
6499         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
6500         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
6501         Also use them when walking CALL_INSN_FUNCTION_USAGE.
6502
6503 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
6504             Joey Ye  <joey.ye@intel.com>
6505
6506         PR middle-end/37843
6507         * cfgexpand.c (expand_stack_alignment): Don't update stack
6508         boundary nor check incoming stack boundary here.
6509         (gimple_expand_cfg): Update stack boundary and check incoming
6510         stack boundary here.
6511
6512 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
6513
6514         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
6515         
6516 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
6517
6518         PR rtl-optimization/38245
6519         * calls.c (expand_call): Add stack arguments to
6520         CALL_INSN_FUNCTION_USAGE even for pure calls (when
6521         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
6522         in regs and partially in memory or BLKmode arguments.
6523         (emit_library_call_value_1): Add stack arguments to
6524         CALL_INSN_FUNCTION_USAGE even for pure calls (when
6525         ACCUMULATE_OUTGOING_ARGS).
6526         * dce.c: Include tm_p.h.
6527         (find_call_stack_args): New function.
6528         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
6529         argument.
6530         (mark_insn): Call find_call_stack_args for CALL_Ps.
6531         (prescan_insns_for_dce): Walk insns backwards in bb rather than
6532         forwards.  Allocate and free arg_stores bitmap if needed, pass it
6533         down to deletable_insn_p, don't mark stores set in arg_stores
6534         bitmap, clear the bitmap at the beginning of each bb.
6535         * Makefile.in (dce.o): Depend on $(TM_P_H).
6536
6537 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
6538
6539         PR target/22599
6540         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
6541         to make sure the insn is a conditional test (bug 22599).  Reformat a
6542         few long lines.
6543
6544 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
6545
6546         PR middle-end/38431
6547         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
6548         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
6549         (gloog): Do not call cleanup_tree_cfg.
6550         (graphite_transform_loops): Call cleanup_tree_cfg after all 
6551         scops have been code generated.
6552
6553 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
6554         * doc/gty.texi (Invoking the garbage collector): Added new node
6555         and section documenting ggc_collect.
6556
6557 2009-01-14  Richard Guenther  <rguenther@suse.de>
6558
6559         PR tree-optimization/38826
6560         PR middle-end/38477
6561         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
6562         initialization notes only if we actually emitted a warning.
6563         (intra_create_variable_infos): Add constraints for a result decl
6564         that is passed by hidden reference.
6565         (build_pred_graph): Mark all related variables non-direct on
6566         address-taking.
6567
6568 2009-01-14  Nick Clifton  <nickc@redhat.com>
6569
6570         * ira-conflicts.c: Include addresses.h for the definition of
6571         base_reg_class.
6572         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
6573         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
6574
6575 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
6576
6577         PR target/38811
6578         * Makefile.in (ira-lives.o): Add except.h.
6579
6580         * ira-lives.c: Include except.h.
6581         (process_bb_node_lives): Process can_throw_internal.
6582
6583 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
6584
6585         PR rtl-optimization/38774
6586         * combine.c (simplify_set): When undoing cc_use change, don't do
6587         PUT_CODE on the newly created comparison, but instead put back the
6588         old comparison.
6589
6590 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
6591
6592         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
6593         values.  Remove duplicate arm8 entry.
6594
6595 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
6596
6597         PR tree-optimization/38786
6598         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
6599         the SSA_NAME case of expand_scalar_variables_expr.
6600         Set the type of an expression to the type of its assign statement.
6601         (expand_scalar_variables_expr): Also gather the scalar computation
6602         used to index the memory access.  Do not pass loop_p.
6603         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
6604         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
6605         the gimple_stmt_iterator where it inserts new code.
6606         Do not pass loop_p.
6607         (copy_bb_and_scalar_dependences): Do not pass loop_p.
6608         (translate_clast): Update call to copy_bb_and_scalar_dependences.
6609
6610 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
6611
6612         * graphite.h (debug_value): Removed.
6613         * graphite.c (debug_value): Removed.
6614
6615 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
6616
6617         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
6618         ldrd/strd with two 32-bit instructions.
6619
6620 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
6621
6622         * config/arm/arm.c (struct processors): Pass for speed down into
6623         cost helper functions.
6624         (const_ok_for_op): Handle COMPARE and inequality nodes.
6625         (arm_rtx_costs_1): Rewrite.
6626         (arm_size_rtx_costs): Update prototype.
6627         (arm_rtx_costs): Pass speed down to helper functions.
6628         (arm_slowmul_rtx_costs): Rework cost calculations.
6629         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
6630         (arm_9e_rtx_costs): Likewise.
6631
6632 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
6633
6634         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
6635         relocations of local symbols wider than UNITS_PER_WORD are not valid.
6636         (alpha_legitimize_address): Do not split local symbols wider than
6637         UNITS_PER_WORD into HIGH/LO_SUM parts.
6638
6639 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
6640
6641         PR bootstrap/38580
6642         * gcc.c (process_command): Replace call to execvp with calls
6643         to pex_one and exit.
6644
6645 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
6646
6647         PR target/29141
6648         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
6649         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
6650         variant for devices with 3-byte PC.
6651         (__tablejump_elpm__): New.
6652
6653 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
6654
6655         PR c/32041
6656         * c-parser.c (c_parser_postfix_expression): Allow `->' in
6657         offsetof member-designator, handle it as `[0].'.
6658
6659 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6660
6661         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
6662         function when not using named sections on targets with named sections
6663         if branch distance is less than 262132.
6664
6665 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
6666
6667         * combine.c (combine_instructions):  Recompute
6668         optimize_this_for_speed_p  for each BB in the main combine loop.
6669
6670 2009-01-12  Tomas Bily  <tbily@suse.cz>
6671
6672         PR middlend/38385
6673         * tree-loop-distribution.c (prop_phis): New function.
6674         (generate_builtin): Call prop_phis.
6675         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
6676
6677 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
6678
6679         PR tree-optimization/38807
6680         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
6681         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
6682
6683 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
6684
6685         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
6686         subreg of op0 to the original op0.
6687
6688 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
6689
6690         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
6691         
6692 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
6693
6694         PR debug/7055
6695         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
6696         starting with digits.
6697
6698 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
6699
6700         PR target/38695
6701         * config/arm/arm.c (arm_is_long_call_p): Don't call
6702         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
6703
6704 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
6705
6706         * regrename.c (regrename_optimize): Fix dumping.
6707         (find_oldest_value_reg): Preserve REG_POINTER.
6708         (copy_hardreg_forward_1): Likewise.
6709
6710 2009-01-09  Diego Novillo  <dnovillo@google.com>
6711
6712         * gimple.h (struct gimple_statement_base) <uid>: Document
6713         the restrictions on its use.
6714         (gimple_uid): Tidy.
6715         (gimple_set_uid): Tidy.
6716
6717 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6718
6719         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
6720         zero guard even if align_bytes != 0 and count is smaller than
6721         size_needed.
6722
6723 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
6724
6725         PR rtl-optimization/38495
6726         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
6727         (add_range_and_copies_from_move_list): Print all added ranges.
6728         Add ranges to memory optimized destination.
6729
6730 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6731
6732         PR target/38686
6733         PR target/38708
6734         * config/i386/i386.c (override_options): Reject
6735         -mstringop-strategy=rep_8byte with -m32.
6736         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
6737         to 1.  Do count comparison against epilogue_size_needed at compile
6738         time even when count_exp was constant forced into register.  For
6739         size_needed don't jump to epilogue, instead just avoid aligning
6740         and invoke the body algorithm.  If need_zero_guard, add zero guard
6741         even if count is non-zero, but smaller than size_needed + number of
6742         bytes that could be stored for alignment.
6743         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
6744         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
6745         but smaller than size_needed + number of bytes that could be stored
6746         for alignment.  Compare size_needed with epilogue_size_needed instead
6747         of desired_align - align, don't adjust size_needed, pass
6748         epilogue_size_needed to the epilogue expanders.
6749
6750         PR c/35742
6751         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
6752
6753 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6754
6755         * pa.c (last_address): Change to unsigned.
6756         (update_total_code_bytes): Change argument to unsigned.  Don't
6757         check if insn addresses are set.
6758         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
6759         addresses are not set.
6760         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
6761
6762 2009-01-09  Nick Clifton  <nickc@redhat.com>
6763
6764         * config/sh/symbian.c: Replace uses of DECL_INLINE with
6765         DECL_DECLARED_INLINE_P.
6766
6767 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
6768
6769         PR middle-end/38347
6770         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
6771         GET_MODE (op0) in operand_subword_force calls.
6772
6773         PR middle-end/38771
6774         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
6775         fold_convert arg0 operands to TREE_TYPE (op0) first.
6776
6777 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
6778
6779         * params.def (ira-max-conflict-table-size): Decrease default value
6780         to 1000.
6781
6782 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
6783
6784         PR tree-optimization/37031
6785         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
6786         on parameter_set.
6787         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
6788         allocate it using gc instead of heap, use VEC_quick_push instead of
6789         VEC_safe_push.
6790         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
6791         instead of heap, use VEC_quick_push instead of VEC_safe_push.
6792         * tree-data-ref.h (struct access_matrix): Change matrix to gc
6793         allocated vector from heap allocated.
6794         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
6795         * tree-loop-linear.c (linear_transform_loops): Allocate nest
6796         vector only after perfect_loop_nest_depth call.
6797
6798 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
6799             Jan Sjodin  <jan.sjodin@amd.com>
6800
6801         PR tree-optimization/38559
6802         * graphite.c (debug_value, copy_constraint,
6803         swap_constraint_variables, scale_constraint_variable, ): New.
6804         (get_lower_bound, get_upper_bound): Removed.
6805         (graphite_trans_bb_strip_mine): Clean up this code that works
6806         only for constant number of iterations.  Fully copy upper and
6807         lower bound constraints, not only the constant part of them.
6808         * graphite.h (debug_value): Declared.
6809
6810 2009-01-08  Ira Rosen  <irar@il.ibm.com>
6811
6812         PR tree-optimization/37194
6813         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
6814         Don't add the cost of cost model guard in prologue to scalar 
6815         outside cost in case of known number of iterations.
6816
6817 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
6818             Alan Modra  <amodra@bigpond.net.au>
6819
6820         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
6821         non-word-aligned REG+CONST addressing.
6822
6823 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6824
6825         PR target/38706
6826         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
6827         free_after_compilation when outputting a thunk.
6828         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
6829         Do not call free_after_compilation here.
6830
6831 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
6832
6833         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
6834         (ix86_valid_target_attribute_inner_p): Ditto.
6835
6836 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
6837
6838         PR tree-optimization/38492
6839         PR tree-optimization/38498
6840         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
6841         * tree-chrec.h (scev_is_linear_expression): Declared.
6842         * graphite.c (graphite_cannot_represent_loop_niter): New.
6843         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
6844         (graphite_loop_normal_form): Use gcc_assert.
6845         (scan_tree_for_params): Use CASE_CONVERT.
6846         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
6847         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
6848         Use gcc_assert.  Discard scops that contain unhandled cases.
6849         (build_scop_conditions): Return a boolean status for unhandled cases.
6850         (strip_mine_profitable_p): Print the loop number, not its depth.
6851         (is_interchange_valid): Pass the depth of the loop nest, don't
6852         recompute it wrongly.
6853         (graphite_trans_bb_block): Same.
6854         (graphite_trans_bb_block): Print tentative of loop blocking.
6855         (graphite_trans_scop_block): Do not print that the loop has been
6856         blocked.
6857         (graphite_transform_loops): Do not handle scops that contain condition
6858         scalar phi nodes.
6859
6860 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
6861
6862         AVX Programming Reference (December, 2008)
6863         * config/i386/avxintrin.h (_mm256_stream_si256): New.
6864         (_mm256_stream_pd): Likewise.
6865         (_mm256_stream_ps): Likewise.
6866
6867         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
6868         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
6869         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
6870         (bdesc_special_args): Add __builtin_ia32_movntdq256,
6871         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
6872         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
6873         (ix86_expand_special_args_builtin): Likewise.
6874
6875         * config/i386/sse.md (AVXMODEDI): New.
6876         (avx_movnt<mode>): Likewise.
6877         (avx_movnt<mode>): Likewise.
6878         (<sse>_movnt<mode>): Remove AVX support.
6879         (sse2_movntv2di): Likewise.
6880
6881 2009-01-07  Richard Guenther  <rguenther@suse.de>
6882
6883         PR middle-end/38751
6884         * fold-const.c (extract_muldiv): Remove obsolete comment.
6885         (fold_plusminus_mult_expr): Undo MINUS_EXPR
6886         to PLUS_EXPR canonicalization for the canonicalization.
6887
6888 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
6889
6890         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
6891         hosted cross-compilers generating less efficient code.
6892
6893 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6894
6895         * function.h (rtl_data): Add a dbr_scheduled_p field.
6896         * reorg.c (dbr_schedule): Set it.
6897         (gate_handle_delay_slots): Check it.
6898         * config/mips/mips.c (mips_base_delayed_branch): Delete.
6899         (mips_reorg): Check flag_delayed_branch instead of
6900         mips_base_delayed_branch.
6901         (mips_override_options): Don't set mips_base_delayed_branch
6902         or flag_delayed_branch.
6903
6904 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
6905
6906         PR rtl-optimization/38426.
6907         * ira.c (ira): Set current_function_is_leaf earlier.
6908
6909 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
6910
6911         PR rtl-optimization/38722
6912         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
6913         too early, only set a flag and modify after last possible
6914         undo_all point.
6915
6916 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
6917
6918         PR c/34252
6919         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
6920         * real.c (decimal_single_format): Correct values of emin and emax.
6921         (decimal_double_format): Ditto.
6922         (decimal_quad_format): Ditto.
6923         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
6924         computation of DECnn_MIN and DECnn_MAX for corrected values of
6925         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
6926         __DECnn_MIN__, and adjust its computation for the corrected value
6927         of emin.
6928
6929 2009-01-06  Jan Hubicka  <jh@suse.cz>
6930
6931         PR target/38744
6932         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
6933
6934 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
6935
6936         * doc/contrib.texi (Contributors): Slightly adjust the end note.
6937         Add Robert Clark to the list of testers.
6938
6939 2009-01-06  Jan Hubicka  <jh@suse.cz>
6940             Kai Tietz  <kai.tietz@onevision.com>
6941
6942         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
6943         * config/i386/i386.c (ix86_expand_call): Add clobbers.
6944
6945 2009-01-06  Jan Hubicka  <jh@suse.cz>
6946             Kai Tietz  <kai.tietz@onevision.com>
6947
6948         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
6949         for w64 ABI.
6950         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
6951         (ix86_nsaved_regs): Count only general purpose regs.
6952         (ix86_nsaved_sseregs): New.
6953         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
6954         to 16 for w64; compute padding and size of sse reg save area.
6955         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
6956         general purpose regs.
6957         (ix86_emit_save_sse_regs_using_mov): New.
6958         (ix86_expand_prologue): Save SSE regs if needed.
6959         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
6960         (ix86_emit_restore_sse_regs_using_mov): New.
6961         (ix86_expand_epilogue): Save SSE regs if needed.
6962
6963 2009-01-06  Jan Hubicka  <jh@suse.cz>
6964             Kai Tietz  <kai.tietz@onevision.com>
6965
6966         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
6967         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
6968         functions when accumulate outgoing args is off.
6969
6970 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6971
6972         PR bootstrap/38742
6973         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
6974         before using pseudos_have_intersected_live_ranges_p.
6975
6976         * ira-int.h (ira_assert): Always define.
6977
6978 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
6979
6980         AVX Programming Reference (December, 2008)
6981         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
6982         (_mm256_permute2_pd): Likewise.
6983         (_mm_permute2_ps): Likewise.
6984         (_mm256_permute2_ps): Likewise.
6985         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
6986         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
6987
6988         * config/i386/i386.c (ix86_builtins): Remove
6989         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
6990         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
6991         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
6992         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
6993         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
6994         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
6995         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
6996         __builtin_ia32_vpermil2ps256.
6997         (ix86_init_mmx_sse_builtins): Updated.
6998         (ix86_expand_args_builtin): Likewise.
6999
7000 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7001
7002         * pa.c (output_call): Relocate non-jump insns in the delay slot of
7003         long absolute calls when generating PA 2.0 code.
7004
7005 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
7006
7007         PR rtl-optimization/38583
7008         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
7009
7010         * params.def (ira-max-conflict-table-size): New.
7011
7012         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
7013         
7014         * ira.h (ira_conflicts_p): New external definition.
7015         
7016         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
7017         table.  Report this.  Return result of building.
7018         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
7019         building conflict table.
7020
7021         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
7022         (ira_color): Use ira_conflicts_p.
7023         
7024         * global.c: Include ira.h.
7025         (pseudo_for_reload_consideration_p, build_insn_chain): Use
7026         ira_conflicts_p.
7027
7028         * Makefile.in (global.o): Add ira.h.
7029         
7030         * ira-build.c (mark_all_loops_for_removal,
7031         propagate_some_info_from_allocno): New.
7032         (remove_unnecessary_allocnos): Call
7033         propagate_some_info_from_allocno.
7034         (remove_low_level_allocnos): New.
7035         (remove_unnecessary_regions): Add parameter.  Call
7036         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
7037         parameter to remove_unnecessary_regions.
7038         (ira_build): Remove all regions but root if the conflict table was
7039         not built.  Update conflict hard regs for allocnos crossing calls.
7040
7041         * ira.c (ira_conflicts_p): New global.
7042         (ira): Define and use ira_conflicts_p.
7043
7044         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
7045         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
7046         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
7047         
7048 2009-01-06  Ben Elliston  <bje@au.ibm.com>
7049
7050         * gengtype-lex.l (YY_NO_INPUT): Define.
7051
7052 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7053
7054         PR c/34911
7055         * c-common.c (handle_vector_size_attribute): Also reject
7056         BOOLEAN_TYPE types.
7057
7058 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
7059
7060         PR tree-optimization/38492
7061         * graphite.c (rename_map_elt, debug_rename_elt,
7062         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
7063         rename_map_elt_info, eq_rename_map_elts,
7064         get_new_name_from_old_name, bb_in_sese_p): Moved around.
7065         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
7066         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
7067         (sese_build_livein_liveouts): New.
7068         (new_sese, free_sese): New.
7069         (new_scop): Call new_sese.
7070         (free_scop): Call free_sese.
7071         (rename_variables_from_edge, rename_phis_end_scop): Removed.
7072         (register_old_new_names): Renamed register_old_and_new_names.
7073         (register_scop_liveout_renames, add_loop_exit_phis,
7074         insert_loop_close_phis, struct igp,
7075         default_liveout_before_guard, add_guard_exit_phis,
7076         insert_guard_phis, copy_renames): New.
7077         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
7078         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
7079         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
7080         (scop_adjust_phis_for_liveouts): New.
7081         (gloog): Call scop_adjust_phis_for_liveouts.
7082
7083         * graphite.h (struct sese): Documented.  Added fields liveout,
7084         num_ver and livein.
7085         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
7086         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
7087         (struct scop): Added field liveout_renames.
7088         (SCOP_LIVEOUT_RENAMES): New.
7089
7090 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
7091
7092         PR tree-optimization/38510
7093         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
7094         (translate_clast): Call recompute_all_dominators before
7095         graphite_verify.
7096         (gloog): Call recompute_all_dominators before graphite_verify.
7097
7098 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
7099             Jan Sjodin  <jan.sjodin@amd.com>
7100
7101         PR tree-optimization/38500
7102         * graphite.c (create_sese_edges): Call fix_loop_structure after
7103         splitting blocks.
7104
7105 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
7106
7107         * config.gcc: Add m32r*-*-rtems*.
7108         * config/m32r/rtems.h: New file.
7109
7110 2009-01-05  Ben Elliston  <bje@au.ibm.com>
7111
7112         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
7113         (.po.pox): Likewise.
7114         (po/gcc.pot): Likewise.
7115
7116 2009-01-04  David S. Miller  <davem@davemloft.net>
7117
7118         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
7119         (STARTING_FRAME_OFFSET): Always set to zero.
7120
7121 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
7122
7123         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
7124         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
7125         fixed-point types, and vectors of the same.
7126
7127 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
7128
7129         * config/mips/sync.md (*mb_barrier): Rename to...
7130         (*memory_barrier): ...this.
7131
7132 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
7133
7134         * doc/extend.texi (Function Attributes): Move @cindex after @item
7135         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
7136         and put in alphabetical order. Fix 'target' name and put in order.
7137         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
7138         typos.
7139
7140 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
7141
7142         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
7143         (memory_barrier): Expand as unspec instead of unspec_volatile.
7144         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7145         (*memory_barrier): Define as unspec instead of unspec_volatile.
7146         Use (match_dup 0) as input operand.
7147
7148         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
7149         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
7150         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
7151         scratch register.  Remove operand 1.
7152         (*stbar): Define as unspec instead of unspec_volatile.
7153         Use (match_dup 0) as input operand, remove (const_int 8).
7154         (*membar): Define as unspec instead of unspec_volatile.
7155         Use (match_dup 0) as input operand, remove input operand 2.
7156
7157         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
7158         (memory_barrier): Expand as unspec instead of unspec_volatile.
7159         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7160         (*memory_barrier): Define as unspec instead of unspec_volatile.
7161         Use (match_dup 0) as input operand.
7162
7163         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
7164         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7165         Set volatile flag on operand 0.
7166         (*memory_barrier): New insn pattern.
7167
7168         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
7169         insn operands.
7170         (*memory_barrier): Use (match_dup 0) as input operand.
7171
7172         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
7173         Remove mem:BLK from insn operands.  Use Pmode scratch register.
7174         Set volatile flag on operand 0.
7175         (*mb_internal): New insn pattern.
7176
7177         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
7178
7179 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
7180
7181         PR middle-end/38586
7182         * function.c (struct temp_slot): Move to the section of the file
7183         that deals with temp slots.  Remove field 'address'.
7184         (temp_slot_address_table): New hash table of address -> temp slot.
7185         (struct temp_slot_address_entry): New struct, items for the table.
7186         (temp_slot_address_compute_hash, temp_slot_address_hash,
7187         temp_slot_address_eq, insert_temp_slot_address): Support functions
7188         for the new table.
7189         (find_temp_slot_from_address): Rewrite to use the new hash table.
7190         (remove_unused_temp_slot_addresses): Remove addresses of temp
7191         slots that have been made available.
7192         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
7193         worker function for remove_unused_temp_slot_addresses.
7194         (assign_stack_temp_for_type): Don't clear the temp slot address list.
7195         Add the temp slot address to the address -> temp slot map.
7196         (update_temp_slot_address): Update via insert_temp_slot_address.
7197         (free_temp_slots): Call remove_unused_temp_slot_addresses.
7198         (pop_temp_slots): Likewise.
7199         (init_temp_slots): Allocate the address -> temp slot map, or empty
7200         the map if it is already allocated.
7201         (prepare_function_start): Initialize temp slot processing.
7202
7203 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
7204
7205         PR middle-end/38584
7206         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
7207         Calculate the size of all stack vars assuming no packing of stack
7208         vars will happen, replacing a quadratic algorithm with a linear one.
7209
7210 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
7211
7212         PR target/38707
7213         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
7214         can't be used.
7215
7216 2009-01-03  Diego Novillo  <dnovillo@google.com>
7217
7218         * doc/contrib.texi: Update contributions.
7219
7220 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
7221
7222         PR c++/38705
7223         * builtins.c (fold_builtin_memory_op): Give up if either operand
7224         is volatile.  Set srctype or desttype to non-qualified version
7225         of the other type.
7226
7227         PR c/38700
7228         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
7229         and FUNCTION_DECLs.
7230
7231 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
7232
7233         PR rtl-optimization/35805
7234         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
7235         problem if fast dce is able to remove any instructions.
7236         * dce.c (dce_process_block): Fix dump message.
7237         
7238 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
7239
7240         PR 33649
7241         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
7242
7243 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
7244
7245         PR middle-end/38690
7246         * tree-flow.h (op_code_prio, op_prio): New prototypes.
7247         * tree-pretty-print.c (op_code_prio): New function.
7248         (op_prio): No longer static.  Use op_code_prio.
7249         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
7250         Use op_prio and op_code_prio to determine if () should be
7251         printed around operand(s) or not.
7252
7253         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
7254         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
7255         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
7256         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
7257         pp_character instead of pp_string for single letter printing.
7258
7259 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
7260
7261         * doc/extend.texi: Fix '#pragma GCC option' typo.
7262
7263 2009-01-02  Richard Guenther  <rguenther@suse.de>
7264
7265         * doc/install.texi (--enable-checking): Mention different
7266         default for stage1.
7267         (--enable-stage1-checking): Document.
7268
7269 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
7270
7271         PR middle-end/30142
7272         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
7273         case to be an error.
7274
7275 2009-01-02  Ben Elliston  <bje@au.ibm.com>
7276
7277         * config/fp-bit.h (pack_d): Constify argument.
7278         * config/fp-bit.c (makenan): Constify return type. Remove casts.
7279         (isnan): Constify argument.
7280         (isinf): Likewise.
7281         (iszero): Likewise.
7282         (pack_d): Likewise.
7283         (_fpadd_parts): Constify return type.
7284         (_fpmul_parts): Likewise.
7285         (_fpdiv_parts): Likewise.
7286
7287 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
7288
7289         PR c/36489
7290         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
7291         warn about overwriting initializer with side-effects or
7292         -Woverride-init if !IMPLICIT.
7293         (output_init_element): Likewise.  Pass IMPLICIT down to
7294         add_pending_init.
7295         (process_init_element): Add IMPLICIT argument.  Pass it down
7296         to output_init_element.
7297         (push_init_element, pop_init_level, set_designator): Adjust
7298         process_init_element callers.
7299         (set_nonincremental_init, set_nonincremental_init_from_string):
7300         Adjust add_pending_init callers.
7301         (output_pending_init_elements): Adjust output_init_element callers.
7302         * c-tree.h (process_init_element): Adjust prototype.
7303         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
7304         process_init_element callers.