OSDN Git Service

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