OSDN Git Service

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