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