OSDN Git Service

* df-problems.c (df_byte_lr_alloc): Don't set problem_data to
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-16  Ian Lance Taylor  <iant@google.com>
2
3         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to
4         itself.
5         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
6
7 2009-06-16  Ian Lance Taylor  <iant@google.com>
8
9         * resource.c (mark_referenced_resources): Change
10         include_delayed_effects parameter to bool.  Change all callers.
11         (mark_end_of_function_resources): Likewise.
12         * reorg.c (insn_references_resource_p): Likewise.
13         (insn_sets_resource_p): Likewise.
14         * resource.h (mark_referenced_resources): Update declaration.
15         (mark_end_of_function_resources): Update declaration.
16
17 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
18
19         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
20
21 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
22
23         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
24         GCC can bootstrap on AIX with GNU Binutils 2.20.
25
26 2009-06-16  Ian Lance Taylor  <iant@google.com>
27
28         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
29
30 2009-06-16  Ian Lance Taylor  <iant@google.com>
31
32         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
33         inline, not extern inline.
34         (exact_log2): Likewise.
35         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
36         test CLZ_HWI.
37         (exact_log2): Likewise, but don't test CTZ_HWI.
38
39 2009-06-16  Ian Lance Taylor  <iant@google.com>
40
41         * bitmap.c (bitmap_clear): Don't declare as inline.
42         * gimple.c (gimplify_assign): Likewise.
43         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
44         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
45         (sched_scan_info): Remove duplicate definition.
46
47 2009-06-16  Ian Lance Taylor  <iant@google.com>
48
49         * c-common.c (skip_evaluation): Don't define.
50         (c_inhibit_evaluation_warnings): Define global variable.
51         (overflow_warning): Check c_inhibit_evaluation_warnings rather
52         than skip_evaluation.
53         (convert_and_check, warn_for_div_by_zero): Likewise.
54         * c-common.h (skip_evaluation): Don't declare.
55         (c_inhibit_evaluation_warnings): Declare.
56         * c-parser.c (c_parser_typeof_specifier): Set
57         c_inhibit_evaluation_warnings rather than skip_evaluation.
58         (c_parser_conditional_expression): Likewise.
59         (c_parser_binary_expression): Likewise.
60         (c_parser_sizeof_expression): Likewise.
61         (c_parser_alignof_expression): Likewise.
62         * c-typeck.c (build_indirect_ref): Check
63         c_inhibit_evaluation_warnings rather than skip_evaluation.
64         (build_conditional_expr, build_binary_op): Likewise.
65
66 2009-06-16  Richard Guenther  <rguenther@suse.de>
67
68         * tree-ssa-alias.c (is_escape_site): Remove.
69         * tree-ssa-alias.h (enum escape_type): Remove.
70         (is_escape_site): Likewise.
71         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
72         via casts and asms without deferring to is_escape_site.
73
74 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
75
76         PR middle-end/40446
77         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
78         use gen_lowpart if op0 has complex mode.
79
80 2009-06-16  Richard Guenther  <rguenther@suse.de>
81
82         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
83         variables add them to ESCAPED.
84         (find_func_aliases): Do not make all indirectly stored values
85         escaped.
86
87 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
88
89         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
90         make_decl_one_only.
91
92 2009-06-16  Martin Jambor  <mjambor@suse.cz>
93
94         PR tree-optimization/40432
95         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
96         check whether we need to force gimple register operand.
97
98 2009-06-16  Martin Jambor  <mjambor@suse.cz>
99
100         PR tree-optimization/40413
101         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
102         build_ref_for_offset.
103         (propagate_subacesses_accross_link): Fix a typo in a comment.
104
105 2009-06-16  Ira Rosen  <irar@il.ibm.com>
106
107         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
108         with additional parameter.
109         * tree-vectorizer.h (enum vect_def_type): Add new value 
110         vect_nested_cycle.
111         (enum vect_relevant): Add comments.
112         (vect_is_simple_reduction): Add new argument.
113         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
114         Detect nested cycles.
115         (vect_is_simple_reduction): Update documentation, add an argument to
116         distinguish inner-loop reduction from nested cycle, detect nested
117         cycles, fix printings and indentation, don't swap operands in case
118         of nested cycle.
119         (get_initial_def_for_reduction): Handle subtraction.
120         (vect_create_epilog_for_reduction): Add new argument to specify
121         reduction variable.
122         (vect_finalize_reduction): Handle subtraction, fix comments.
123         (vectorizable_reduction): Handle nested cycles. In case of nested cycle
124         keep track of the reduction variable position. Call 
125         vect_is_simple_reduction with additional parameter. Use original 
126         statement code in reduction epilogue for nested cycle. Call
127         vect_create_epilog_for_reduction with additional parameter.
128         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert inner-loop
129         vectorization.
130         (vect_recog_widen_sum_pattern): Likewise.
131         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
132         and reductions.
133         (vect_mark_stmts_to_be_vectorized): Likewise.
134         (vect_get_vec_def_for_operand): Handle nested cycles.
135
136 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
137
138         * doc/invoke.texi (Debugging Options): Fix option index entries
139         for -fdump-statistics, -frandom-seed add entries for
140         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
141         (FRV Options): Fix entries for -mTLS, -mtls.
142         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
143         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
144         (M68hc1x Options): Fix @itemx for -mnominmax.
145         (MCore Options): Fix entry for -mno-lsim.
146         (MMIX Options): Fix entry for -mabi=mmixware.
147         (PDP-11 Options): Fix entry for -mbcopy-builtin.
148
149 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
150
151         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
152         Mention the plugin mode of gengtype.
153         * doc/gty.texi (Source Files Containing Type Information):
154         Likewise.
155         * gengtype.c: Updated copyright.
156         (plugin_files, nb_plugin_files) Added new static variables.
157         (measure_input_list) Care about plugin_files.
158         (write_rtx_next): Added early return in plugin mode.
159         (create_file): Updated copyright year in generated file. Added
160         asserts.
161         (oprintf): Added early return if NULL outf.
162         (get_output_file_with_visibility): Care of plugin_files.
163         (get_output_file_name): May return null.
164         (write_local): Added early return.
165         (put_mangled_filename): Ditto.
166         (finish_root_table): Added check for base_files.
167         (write_roots): Care about null when plugins.
168         (main): Added plugin mode.
169
170 2009-06-15  Ian Lance Taylor  <iant@google.com>
171
172         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in
173         switch.
174         * gcov.c (read_count_file): Add braces around variables declared
175         before label.
176
177         * c.opt (Wjump-misses-init): New warning.
178         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
179         -Wall and -Wc++-compat if not already set.
180         (c_common_post_options): Clear warn_jump_misses_init if it was not
181         set.
182         * c-decl.c (struct c_binding): Change type field to a union with
183         new label field.  Make it the first field in the struct.  Update
184         references to type to use u.type instead.
185         (struct c_spot_bindings): Define.
186         (struct c_goto_bindings): Define.
187         (c_goto_bindings_p): Define, along with VECs.
188         (struct c_label_vars): Define.
189         (struct c_scope): Add has_label_bindings field.
190         (bind_label, set_spot_bindings): New static functions.
191         (decl_jump_unsafe, update_spot_bindings): New static functions.
192         (update_label_decls): New static function.
193         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
194         Update binding u.label field to shadowed field.
195         (c_binding_start_stmt_expr): New function.
196         (c_binding_end_stmt_expr): New function.
197         (pushdecl): Don't call c_begin_vm_scope.
198         (make_label): Add defining and p_label_vars parameters.  Change
199         all callers.
200         (lookup_label): Correct test for whether a label has not yet been
201         defined.  Call bind_label rather than bind.
202         (warn_about_goto): New static function.
203         (lookup_label_for_goto): New function.
204         (declare_label): Call bind_label rather than bind.
205         (check_earlier_gotos): New static function.
206         (define_label): Don't give errors about jumping into statement
207         expressions or scopes of variably modified types.  Call
208         set_spot_bindings and check_earlier_gotos.  Call bind_label
209         instead of bind.  Don't set label_context_stack_se or
210         label_context_stack_vm.
211         (c_get_switch_bindings): New function.
212         (c_release_switch_bindings): New function.
213         (c_check_switch_jump_warnings): New function.
214         (start_function): Don't set label_context_stack_se or
215         label_context_stack_vm.
216         (finish_function): Likewise.
217         * c-typeck.c (label_context_stack_se): Don't define.
218         (label_context_stack_vm): Don't define.
219         (c_finish_goto_label): Call lookup_label_for_goto rather than
220         lookup_label.  Don't give errors about jumping into a statement
221         expression or the scope of a variably modified type.  Don't set
222         label_context_stack_se or label_context_stack_vm.
223         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
224         fields.  Add bindings field.
225         (c_start_case): Don't set deleted fields.  Set bindings field.
226         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
227         or blocked_vm.  Call c_check_switch_jump_warnings.
228         (c_finish_case): Don't test blocked_stmt_expr field.  Call
229         c_release_switch_bindings.
230         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
231         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
232         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
233         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
234         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
235         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
236         (c_begin_vm_scope, c_end_vm_scope): Don't define.
237         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
238         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
239         (C_DECL_UNJUMPABLE_VM): Don't define.
240         (C_DECL_UNDEFINABLE_VM): Don't define.
241         (struct c_label_list): Don't define.
242         (struct c_label_context_se): Don't define.
243         (struct c_label_context_vm): Don't define.
244         (struct c_spot_bindings): Declare.
245         (c_bindings_start_stmt_expr): Declare.
246         (c_bindings_end_stmt_expr): Declare.
247         (lookup_label_for_goto): Declare.
248         (c_get_switch_bindings, c_release_switch_bindings): Declare.
249         (c_check_switch_jump_warnings): Declare.
250         (label_context_stack_se, label_context_stack_vm): Don't declare.
251         (c_finish_goto_label): Update declaration.
252         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
253         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
254         (Warning Options): Document -Wjump-misses-init.
255
256 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
257
258         * tree-object-size.c (addr_object_size): Fix a pasto in the last
259         change.
260
261 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
262
263         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
264
265 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
266
267         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
268
269 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
270
271         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
272
273 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
274
275         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
276         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
277         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
278         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
279         * dwarf2asm.c(dw2_force_const_mem): Update call to make_decl_one_only.
280         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
281         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
282         * langhooks.c (lhd_comdat_group): Remove.
283         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
284         * tree.h (DECL_COMDAT_GROUP): New.
285         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
286         (tree_decl_with_vis): Add comdat_group. Remove one_only.
287         (make_decl_one_only): Change signature.
288         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
289         make_decl_one_only.
290         (make_decl_one_only): Change signature.
291         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
292
293 2009-06-15  Richard Guenther  <rguenther@suse.de>
294
295         PR middle-end/40439
296         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
297
298 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
299
300         * tree-ssa-math-opts.c: Remove extra divide.
301
302 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
303
304         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
305
306 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
307
308         * passes.c: Add bswap pass.
309         * tree-pass.h: Add pass_optimize_bswap declaration.
310         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
311         Include rtl.h, expr.h and optabs.h for optab_handler check.
312         (struct symbolic_number, pass_optimize_bswap): New definition.
313         (do_shift_rotate, verify_symbolic_number_p): New functions.
314         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
315         (gate_optimize_bswap): New function.
316         * tree.c (widest_int_cst_value): New function.
317         * tree.h (widest_int_cst_value): Prototype added.
318
319 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
320
321         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
322         REG_EQUAL/REG_EQUIV notes.
323
324 2009-06-14  Richard Guenther  <rguenther@suse.de>
325
326         PR middle-end/40389
327         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
328         has its address taken if NRV was applied and it is addressable.
329         * tree-ssa-structalias.c (get_constraint_for_address_of): New
330         function split out from ...
331         (get_constraint_for_1): ... here.
332         (handle_rhs_call): Use it to mark the return slot escaped if
333         it is addressable and NRV was applied.
334
335 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
336
337         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
338         Change first argument type to location_t.
339         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
340         Do not set input_location.
341         Use loc instead of input_location throughout.
342
343 2009-06-13  Richard Guenther  <rguenther@suse.de>
344
345         PR tree-optimization/40421
346         * tree-predcom.c (should_unroll_loop_p): Remove.
347         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
348
349 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
350
351         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
352         Add location argument.
353
354 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
355
356         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
357         build_decl.
358         * config/s390/s390.c (s390_build_builtin_va_list): Same.
359         (s390_gimplify_va_arg): Pass location to create_artificial_label.
360         * config/spu/spu-protos.h: Add location to
361         spu_resolve_overloaded_builtin.
362         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
363         spu_build_builtin_va_list.
364         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
365         argument.  Pass location to build_function_call_vec.
366         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
367         build_decl.
368         (emit_fpu_switch): Same.
369         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
370         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
371         to build_decl and create_artificial_label.
372         (xtensa_gimplify_va_arg_expr): Same.
373         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
374         (xstormy16_gimplify_va_arg_expr): Same.
375         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
376         * config/arm/arm.c (arm_build_builtin_va_list): Same.
377         * config/mips/mips.c (mips_build_builtin_va_list): Same.
378         (mips16_build_function_stub): Same.
379         (mips16_build_call_stub): Same.
380
381 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
382
383         PR target/40327
384         * arm/constraints.md (Pa, Pb): New constraints.
385         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
386         split pattern to deal with them.
387
388 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
389
390         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
391         fix index entry for -Xpreprocessor.
392
393 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
394
395         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
396         Add location argument to build_decl call.
397         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
398         (rs6000_init_builtins): Same.
399         (spe_init_builtins): Same.
400         (rs6000_gimplify_va_arg): Add location argument to
401         create_artificial_label call.
402
403 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
404
405         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
406         * combine-stack-adj.c (pass_stack_adjustments): Use it.
407         * Makefile.in: Fix GGC dependency for gcse.o.
408
409 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
410
411         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
412         * gimple-pretty-print.c (dump_gimple_stmt): Same.
413         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
414         created.
415         * c-parser.c (c_parser_binary_expression): Use current column while
416         building binary operations.
417         * common.opt (fshow-column): Enable by default.
418         * tree-vrp.c (check_array_ref): Use warning_at.
419         (check_array_bounds): Use location from call back if expr has no
420         location.
421         * tree.h: Add location argument to maybe_fold_*.
422         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
423         (maybe_fold_offset_to_array_ref): Add location argument and use it.
424         (maybe_fold_offset_to_component_ref): Same.
425         (maybe_fold_offset_to_reference): Same.
426         (maybe_fold_offset_to_address): Same.
427         (maybe_fold_stmt_indirect): Same.
428         (maybe_fold_stmt_addition): Same.
429         (fold_stmt_r): Pass location to maybe_fold_*.
430         (fold_gimple_assign): Same.
431         * c-tree.h: Add location argument to finish_decl,
432         default_function_array_conversion, store_init_value.
433         * c-decl.c (define_label): Use error_at.
434         (c_make_fname_decl): Pass location to finish_decl.
435         (finish_decl): New location argument.
436         (build_compound_literal): Pass location to store_init_value.
437         (grokdeclarator): Pass location to finish_decl.
438         (grokfield): Same.
439         * c-typeck.c (array_to_pointer_conversion): New location argument.
440         (function_to_pointer_conversion): Same.
441         (default_function_array_conversion): Same.
442         (parser_build_unary_op): Pass location to overflow_warning.
443         (parser_build_binary_op): Same.  Use warning_at.
444         (build_unary_op): Pass location to array_to_pointer_conversion.
445         (build_c_cast): Pass location to digest_init.
446         (build_modify_expr): New location argument.
447         (convert_for_assignment): Same.
448         (store_init_value): Same.
449         (digest_init): Same.
450         (output_init_element): Pass location to digest_init and
451         array_to_pointer_conversion.
452         (c_finish_return): Pass location to convert_for_assignment.
453         * gimplify.c (gimplify_conversion): Pass location to
454         maybe_fold_offset_to_address.
455         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
456         to maybe_fold_stmt_addition.
457         * c-omp.c (c_finish_omp_atomic): Pass new location to
458         build_modify_expr.
459         (c_finish_omp_for): Same.
460         * c-common.c (overflow_warning): New argument.
461         * c-common.h: New argument to build_modify_expr, overflow_warning.
462         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
463         finish_decl.
464         (c_parser_initializer): Pass location to
465         default_function_array_conversion.
466         (c_parser_initelt): Same.
467         (c_parser_initval): Same.
468         (c_parser_asm_operands): Same.
469         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
470         (c_parser_conditional_expression): Same.
471         (c_parser_binary_expression): Add location info to stack.  Use it.
472         (c_parser_unary_expression): Pass location to
473         default_function_array_conversion, parser_build_unary_op,
474         build_indirect_ref, c_parser_postfix_expression_after_primary.
475         (c_parser_postfix_expression_after_primary): New location argument.
476         Use it.
477         (c_parser_expression_conv): Pass location to
478         default_function_array_conversion.
479         (c_parser_expr_list): Same.
480         (c_parser_omp_atomic): Same.
481         (c_parser_omp_for_loop): Same.
482         * c-tree.h: (struct c_declarator): Add comment to id_loc.
483         (build_array_declarator): New argument.
484         * c-decl.c (build_array_declarator): Add location argument.
485         (grokdeclarator): Set id_loc for cdk_array.
486         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
487         build_array_declarator.
488         * tree.c (build_omp_clause): Add location argument.
489         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
490         (OMP_CLAUSE_LOCATION): New macro.
491         (struct tree_omp_clause): Add location field.
492         (build_omp_clause): Add argument.
493         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
494         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
495         build_omp_clause.
496         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
497         (cp_parser_omp_clause_collapse): Same.
498         (cp_parser_omp_clause_default): Same.
499         (cp_parser_omp_clause_if): Same.
500         (cp_parser_omp_clause_nowait): Same.
501         (cp_parser_omp_clause_num_threads): Same.
502         (cp_parser_omp_clause_ordered): Same.
503         (cp_parser_omp_clause_schedule): Same.
504         (cp_parser_omp_clause_untied): Same.
505         (cp_parser_omp_for_loop): Same.
506         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
507         * c-tree.h (c_start_case): Add location argument.
508         (c_process_expr_stmt): Same.
509         (c_finish_goto_*): Same.
510         * tree-parloops.c (initialize_reductions): Pass location to
511         build_omp_clause.
512         (create_parallel_loop): Same.
513         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
514         (gfc_trans_omp_reduction_list): Same.
515         (gfc_trans_omp_clauses): Same.
516         (gfc_trans_omp_do): Same.
517         * c-typeck.c (c_finish_goto_label): Same.
518         (c_finish_goto_ptr): New location argument.
519         (c_start_case): Same.
520         (emit_side_effect_warnings): Same.
521         (c_process_expr_stmt): Same.
522         (c_finish_stmt_expr): Same.
523         (c_finish_omp_clauses): Use error_at instead of error.
524         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
525         build_omp_clause.
526         * c-omp.c (c_split_parallel_clauses): New location argument.
527         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
528         to build_omp_clause.
529         (convert_local_reference_stmt): Same.
530         (convert_gimple_call): Same.
531         * c-common.h (c_split_parallel_clauses): New argument.
532         * c-parser.c (c_parser_statement_after_labels): Pass location to
533         c_finish_goto_label.
534         (c_parser_switch_statement): Pass location to c_start_case.
535         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
536         and c_process_expr_stmt.
537         (c_parser_omp_variable_list): Add location argument.
538         (c_parser_omp_clause_collapse): Pass location to
539         build_omp_clause.
540         (c_parser_omp_clause_default): Same.
541         (c_parser_omp_clause_if): Same.
542         (c_parser_omp_clause_num_threads): Same.
543         (-c_parser_omp_clause_ordered): Same.
544         (c_parser_omp_clause_reduction): Pass location to
545         c_parser_omp_variable_list.
546         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
547         (c_parser_omp_clause_untied): Same.
548         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
549         (c_parser_omp_parallel): Pass location to
550         c_split_parallel_clauses.
551
552         * c-tree.h (check_for_loop_decls, undeclared_variable,
553         build_component_ref, build_array_ref, build_external_ref,
554         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
555         build_conditional_expr, build_compound_expr, c_cast_expr,
556         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
557         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
558         argument.
559         * c-semantics.c (build_stmt): Same.
560         (build_case_label): Same.
561         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
562         (undeclared_variable): New argument.
563         (make_label): Same.
564         (lookup_label): Pass location on down.
565         (define_label): Same.
566         (finish_decl): Same.
567         (build_compound_literal): Same.
568         (finish_struct): Same.
569         (finish_function): Do not set location here.
570         (check_for_loop_decls): New argument.
571         * tree.c (save_expr): Set location.
572         (build_empty_stmt): New argument.
573         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
574         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
575         * builtins.c (gimplify_va_arg_expr): Use locations.
576         (expand_builtin_sync_operation): Same.
577         * c-typeck.c (build_component_ref): New argument.
578         (build_array_ref): Same.
579         (build_external_ref): Same.
580         (c_expr_sizeof_expr): Same.
581         (c_expr_sizeof_type): Same.
582         (parser_build_unary_op): Same.
583         (build_conditional_expr): Same.
584         (build_compound_expr): Pass location on down.
585         (build_compound_expr): New argument.
586         (build_c_cast): Same.
587         (c_cast_expr): Same.
588         (build_asm_expr): Same.
589         (c_finish_return): Same.
590         (c_process_expr_stmt): Pass location on down.
591         (c_finish_stmt_expr): New argument.
592         (push_clenaup): Same.
593         (c_finish_omp_parallel): Same.
594         (c_finish_omp_task): Same.
595         * gimplify.c (gimplify_call_expr): Pass location on down.
596         * c-omp.c (c_finish_omp_master): New argument.
597         (c_finish_omp_critical): Same.
598         (c_finish_omp_ordered): Same.
599         (c_finish_omp_barrier): Same.
600         (-c_finish_omp_taskwait): Same.
601         (c_finish_omp_atomic): Same.
602         (c_finish_omp_flush): Same.
603         * tree-inline.c (copy_tree_body_r): Pass location on down.
604         (inline_forbidden_p): Remove use of input_location.
605         * c-gimplify.c (c_build_bind_expr): New argument.
606         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
607         (c_sizeof_or_alignof_type): New argument.
608         (c_alignof_expr): Same.
609         (build_va_arg): Same.
610         (c_add_case_label): Same.
611         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
612         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
613         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
614         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
615         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
616         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
617         New argument.
618         * stub-objc.c (objc_build_selector_expr): Same.
619         (objc_build_throw_stmt): Same.
620         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
621         (c_parser_initelt): Same.
622         (c_parser_compound_statement): Same.
623         (c_parser_compound_statement_nostart): Same.
624         (c_parser_label): Same.
625         (c_parser_statement_after_labels): Same.
626         (c_parser_if_body): Same.
627         (c_parser_else_body): Same.
628         (c_parser_if_statement): Same.
629         (c_parser_switch_statement): Same.
630         (c_parser_while_statement): Same.
631         (c_parser_do_statement): Same.
632         (c_parser_for_statement): Same.
633         (c_parser_asm_statement): Same.
634         (c_parser_conditional_expression): Same.
635         (c_parser_binary_expression): Same.
636         (c_parser_cast_expression): Same.
637         (c_parser_unary_expression): Same.
638         (c_parser_sizeof_expression): Same.
639         (c_parser_alignof_expression): Same.
640         (c_parser_postfix_expression): Same.
641         (c_parser_expression): Same.
642         (c_parser_objc_receiver): Same.
643         (c_parser_omp_variable_list): Same.
644         (c_parser_omp_structured_block): Same.
645         (c_parser_omp_atomic): New argument.
646         (c_parser_omp_barrier): Same.
647         (c_parser_omp_critical): Same.
648         (c_parser_omp_flush): Pass location on down.
649         (c_parser_omp_for_loop): New argument.
650         (c_parser_omp_for): Same.
651         (c_parser_omp_master): Same.
652         (c_parser_omp_ordered): Same.
653         (c_parser_omp_sections_scope): Same.
654         (c_parser_omp_sections): Same.
655         (c_parser_omp_parallel): Same.
656         (c_parser_omp_single): Same.
657         (c_parser_omp_task): Same.
658         (c_parser_omp_taskwait): Pass location on down.
659         (c_parser_omp_construct): Same.
660         (c_parser_omp_threadprivate): Same.
661         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
662         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
663         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
664         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
665         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
666         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
667         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
668         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
669         config/i386/i386.c, stmt.c:
670         Add location argument to the following function definitions and/or
671         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
672         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
673         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
674         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
675         do_case, c_finish_bc_stmt, build_compound_literal,
676         build_function_call.
677         * c-decl.c (build_compound_literal): Add location argument.
678         Make all diagnostic calls use location.
679         (start_struct): Same.
680         (finish_struct): Same.
681         (start_enum): Same.
682         (build_enumerator): Same.
683         (start_function): Same.
684         (grokdeclarator): Make all diagnostic calls use location.
685         (store_parm_decls_oldstyle): Same.
686         * c-typeck.c (build_function_call): Add location argument.
687         Make all diagnostic calls use location.
688         (do_case): Same.
689         (c_finish_bc_stmt): Same.
690         * tree-nested.c (get_trampoline_type): Add argument.
691         Pass location to build_decl.
692         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
693         * rtl.h (RTL_LOCATION): New.
694         * c-common.c (c_add_case_label): Add location argument.
695         Make all diagnostic calls use location.
696         * c-common.h: Add location argument to make_fname_decl, do_case,
697         c_add_case_label, build_function_call, resolve_overloaded_builtin.
698         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
699         Set it appropriately for every case.  Pass enum_loc to start_enum
700         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
701         parser_xref_tag.
702         (c_parser_struct_or_union_specifier): Save location.  Use it for
703         start_struct, finish_struct, and parser_xref_tag.
704
705 2009-06-12  Ian Lance Taylor  <iant@google.com>
706
707         * fold-const.c (fold_unary): Rename local variable and to
708         and_expr.
709
710         * c-opts.c (c_common_handle_option): For -Wc++-compat set
711         cpp_opts->warn_cxx_operator_names.
712
713 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
714
715         PR tree-opt/38865
716         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
717         is returns NULL and OP is a VCE, look through the VCE.
718
719 2009-06-12  Ian Lance Taylor  <iant@google.com>
720
721         PR bootstrap/40430
722         * collect2.c (main): Use CONST_CAST2 in code inside #if
723         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
724
725 2009-06-12  Joey Ye  <joey.ye@intel.com>
726
727         PR middle-end/39146
728         * cfgexpand.c (get_decl_align_unit): Update
729         max_used_stack_slot_alignment with align instead of
730         stack_alignment_needed.
731
732         * function.c (assign_stack_local_1): Update
733         max_used_stack_slot_alignment with alignment_in_bits instead
734         of stack_alignment_needed.
735         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
736         here.
737
738 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
739
740         * dwarf2out.c (last_var_location_insn): New variable.
741         (dwarf2out_end_epilogue): Clear last_var_location_insn.
742         (dwarf2out_var_location): Don't record anything after last real
743         insn.  Only change labels if there were any real instructions
744         in between last note and this one, or if changed sections.
745
746 2009-06-11  Richard Henderson  <rth@redhat.com>
747
748         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
749         note when storing the frame pointer in a register.
750         (FRP): Don't redefine to nothing for epilogue.
751         (alpha_expand_epilogue): Mark register and sp restores.
752         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
753
754         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
755         when gen_lowpart is needed.
756
757 2009-06-11  Richard Henderson  <rth@redhat.com>
758
759         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
760
761         * dwarf2out.c (need_data_align_sf_opcode): New.
762         (div_data_align): Move earlier.
763         (def_cfa_1, reg_save): Use it.
764
765 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
766
767         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
768         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
769         (ix86_handle_option): Handle OPT_mcrc32.
770         (ix86_target_string): Add -mcrc32.
771         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
772
773         * config/i386/i386.h (TARGET_CRC32): New.
774
775         * config/i386/i386.md (sse4_2_crc32<mode>): Also check
776         TARGET_CRC32.
777         (sse4_2_crc32di): Likewise.
778
779         * config/i386/i386.opt (mcrc32: New.
780
781         * doc/invoke.texi: Document -mcrc32.
782
783 2009-06-11  Richard Henderson  <rth@redhat.com>
784
785         * common.opt (gdwarf-): Accept a version number.
786         * doc/invoke.texi (gdwarf-): Update docs.
787         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
788         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
789         version level, and record it.
790
791         * dwarf2.h (DW_CIE_VERSION): Remove.
792         * dwarf2out.c (DWARF_VERSION): Remove.
793         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
794         (output_call_frame_info): Use CIE version 3 for dwarf3,
795         or if the return register column is out of range for version 1.
796         (dwarf_stack_op_name): Add all dwarf3 values.
797         (DEBUG_PUBTYPES_SECTION): New.
798         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
799         encoding change for dwarf3.
800         (output_die) [dw_val_class_die_ref]: Likewise.
801         (output_compilation_unit_header): Emit correct version for dwarf3.
802         (output_line_info): Likewise.
803         (output_pubnames): Update for DWARF_VERSION removal.
804         (output_aranges): Likewise.
805         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
806         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
807         (dwarf2out_finish): Likewise.
808
809 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
810
811         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
812         in r148403.
813
814 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
815
816         PR c/39252
817         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
818         * builtins.c (expand_builtin_unreachable): New function.
819         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
820         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
821         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
822         successors.
823         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
824         searching for missing barriers.
825
826 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
827
828         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
829         when -fprofile-generate* was passed.
830         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
831
832 2009-06-11  Anthony Green  <green@moxielogic.com>
833
834         * config/moxie/moxie.md: Define length attribute for all
835         instructions.
836         (rCC): Define.
837         (*b<cond:code>): Support limited branch ranges for new PC-relative
838         branch instructions.
839         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
840
841 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
842
843         * config/i386/i386.c (min_insn_size): Use get_attr_length
844         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
845         For __asm return 0.
846
847         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
848         instead of emit_insn_before.
849
850 2009-06-10  Ian Lance Taylor  <iant@google.com>
851
852         PR bootstrap/40408
853         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
854         GIMPLE_SWITCH.
855
856 2009-06-10  Revital Eres  <eres@il.ibm.com>
857
858         * passes.c (init_optimization_passes): Reschedule
859         predictive-commoning pass before complete unroll pass.
860
861 2009-06-10  Martin Jambor  <mjambor@suse.cz>
862
863         * cgraph.c (cgraph_node_can_be_local_p): New function.
864         (cgraph_make_node_local): New function.
865         * cgraph.h (cgraph_node_can_be_local_p): Declare.
866         (cgraph_make_node_local): Declare.
867
868 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
869
870         * tree.h (tree_base): Add packed_flag and user_align fields.
871         Decrease size of spare field.
872         (TYPE_USER_ALIGN): Use user_align from tree_base.
873         (DECL_USER_ALIGN): Likewise.
874         (TYPE_PACKED): Use packed_flag from tree_base.
875         (DECL_PACKED): Likewise.
876         (tree_type): Delete packed_flag and user_align fields.  Widen
877         precision field.  Widen mode field and shuffle fields to align
878         mode on an 8-bit boundary.
879         (tree_decl_common): Delete decl_flag_1 and user_align fields.
880         Renumber decl_flag_* fields.  Fix comments.  Widen
881         decl_common_unused field.
882         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_*
883         fields.
884         (DECL_EXTERNAL): Likewise.
885         (DECL_BIT_FIELD): Likewise.
886         (DECL_NONADDRESSABLE_P): Likewise.
887         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
888         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
889
890 2009-06-10  Ian Lance Taylor  <iant@google.com>
891
892         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
893         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
894         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
895         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
896         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
897         DEF_VEC_ALLOC_FUNC_P.
898         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
899         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
900         DEF_VEC_ALLOC_FUNC_O.
901         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
902         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
903         DEF_VEC_ALLOC_FUNC_I.
904         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
905         (vec_stack_p_reserve_exact_1): Declare.
906         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
907         (vec_stack_free): Declare.
908         (VEC_stack_alloc): Define.
909         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
910         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
911         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
912         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
913         for void_p.
914         (stack_vecs): New static variable.
915         (vec_stack_p_reserve_exact_1): New function.
916         (vec_stack_o_reserve_1): New static function.
917         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
918         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
919         (vec_stack_free): New function.
920         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
921         (VEC_df_ref_stack_alloc): Define.
922         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
923         DEF_VEC_ALLOC_P_STACK.
924         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
925         (struct df_collection_rec): Change _vec fields to VEC.  Remove
926         _use fields.
927         (df_free_collection_rec): Adjust for new fields.
928         (df_insn_rescan): Use new df_collection_rec fields.
929         (df_notes_rescan, df_canonize_collection_rec): Likewise.
930         (df_ref_create_structure, df_ref_record): Likewise.
931         (df_get_conditional_uses, df_get_call_refs): Likewise.
932         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
933         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
934         (df_record_exit_block_uses, df_bb_verify): Likewise.
935         (df_swap_refs): Change ref_vec parameter to VEC.  Change all
936         callers.
937         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
938         Remove count parameter.  Change return type to void.  Change all
939         callers.
940         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
941         Remove count parameter.  Change return type to void.  Change all
942         callers.
943         (df_install_refs): Change old_vec parameter to VEC.  Remove count
944         parameter.  Change all callers.
945         (df_install_mws): Change old_vec parameter to VEC.  Remove count
946         parameter.  Change all callers.
947         (df_refs_verify): Change new_rec parameter to VEC.  Change call
948         callers.
949         (df_mws_verify): Likewise.
950
951 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
952
953         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
954
955 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
956
957         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
958
959 2009-06-10  Anthony Green  <green@moxielogic.com>
960
961         * config/moxie/crti.asm: New file.
962         * config/moxie/crtn.asm: New file.
963         * config/moxie/moxie.c: New file.
964         * config/moxie/moxie.h: New file.
965         * config/moxie/sfp-machine.h: New file.
966         * config/moxie/moxie-protos.h: New file.
967         * config/moxie/t-moxie: Created.
968         * config/moxie/t-moxie-softfp: Created.
969         * config/moxie/moxie.md: Created.
970         * config/moxie/constraints.md: Created.
971         * config.gcc: Add moxie support.
972         * doc/md.texi (Machine Constraints): Add moxie constraints.
973         * doc/contrib.texi (Contributors): Mention moxie port.
974         * doc/install.texi (Specific): Mention the moxie port.
975
976 2009-06-09  Ian Lance Taylor  <iant@google.com>
977
978         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
979         compiling with C++.
980         * optabs.c (optab_table): Only use designated initializers if
981         HAVE_DESIGNATED_INITIALIZERS is defined.
982         (convert_optab_table): Likewise.
983         (init_optabs): Always call init_insn_codes if
984         HAVE_DESIGNATED_INITIALIZERS is not defined.
985
986 2009-06-09  Ian Lance Taylor  <iant@google.com>
987
988         * targhooks.c (default_builtin_vectorized_function): Change fn
989         parameter to unsigned int.
990         (default_builtin_vectorized_conversion): Change code parameter to
991         unsigned int.
992         (default_builtin_reciprocal): Change fn parameter to unsigned int.
993         * targhooks.h: Update declarations.
994         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
995         parameter to unsigned int.
996
997         * c-typeck.c (comptypes_check_enum_int): New static function.
998         (comptypes_internal): Add enum_and_int_p parameter.  Change all
999         callers.
1000         (comp_target_types): Add location parameter.  Change all callers.
1001         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1002         Change all callers.
1003         (function_types_compatible_p, type_lists_compatible_p): Likewise.
1004         (build_conditional_expr): Add colon_loc parameter.  Change all
1005         callers.
1006         (convert_for_assignment): Add location parameter.  Change all
1007         callers.
1008         * c-parser.c (c_parser_conditional_expression): Pass location of
1009         colon to build_conditional_expr.
1010         * c-tree.h (build_conditional_expr): Update declaration.
1011
1012 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
1013
1014         * graphite.c: Revert previous patch.
1015
1016 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
1017
1018         PR bootstrap/40103
1019         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1020
1021 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1022
1023         * tree-ssa-loop-prefetch.c
1024         (loop_prefetch_arrays): Fixed a portability problem in printf format
1025         string.
1026
1027 2009-06-09  Martin Jambor  <mjambor@suse.cz>
1028
1029         PR tree-optimization/40351
1030         * tree-sra.c (propagate_subacesses_accross_link): Check that a refrence
1031         to a potential artifical subaccess can be constructed.
1032
1033 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1034
1035         * config/sh/sh-protos.h (sh_optimization_options): Declare.
1036         (sh_override_options): Likewise.
1037         * config/sh/sh.c: Include params.h.
1038         (sh_optimization_options): New.
1039         (sh_override_options): Likewise.
1040         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1041         (OVERRIDE_OPTIONS): Use sh_override_options.
1042
1043 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
1044
1045         * dwarf2out.c (emit_cfa_remember): New variable.
1046         (add_fde_cfi): If emit_cfa_remember, recurse to add
1047         DW_CFA_remember_state first.
1048         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1049         instead just set emit_cfa_remember.
1050
1051 2009-06-08  Jan Hubicka  <jh@suse.cz>
1052
1053         PR debug/40126
1054         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1055
1056 2009-06-08  Jan Hubicka  <jh@suse.cz>
1057
1058         PR middle-end/39834
1059         * cgraphunit.c (save_inline_function_body): Do not copy transform hooks
1060         for saved inline bodies.
1061         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1062         for given function.
1063
1064 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
1065
1066         * jump.c (returnjump_p): Handle delayed branches.  Add missing
1067         function comment.
1068
1069 2009-06-08  Jan Hubicka  <jh@suse.cz>
1070
1071         PR middle-end/40102
1072         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1073         original node might've been modified.
1074         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1075
1076 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
1077
1078         * tree-object-size.c (addr_object_size): Add OSI argument.
1079         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1080         (compute_builtin_object_size, expr_object_size): Adjust callers.
1081         (plus_stmt_object_size): Call addr_object_size instead of
1082         compute_builtin_object_size.
1083
1084 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1085             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1086         
1087         * tree-ssa-loop-prefetch.c 
1088         (gather_memory_references): Introduced a counter for the number of 
1089         memory references.
1090         (anything_to_prefetch_p): Introduced a counter for the number of 
1091         prefetches.
1092         (is_loop_prefetching_profitable): New function with a cost model 
1093         for prefetching.
1094         (loop_prefetch_arrays): Use the new cost model to determine if 
1095         prefetching is profitable.
1096         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
1097         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1098         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
1099         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1100         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
1101         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1102         
1103 2009-06-08  Michael Matz  <matz@suse.de>
1104
1105         PR debug/40012
1106         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1107         partitions use the same.
1108         (expand_one_var): Deal with DECL_RTL sometimes begin set also
1109         for basevars of SSA_NAMEs.
1110         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1111         to not expand them twice.
1112         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1113         multiple places.
1114
1115 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
1116
1117         * common.opt (fcompare-debug=, fcompare-debug-second): New.
1118         (fdump-final-insns=, gtoggle): New.
1119         * doc/invoke.texi: Document them.
1120         * final.c (rest_of_clean_state): Dump final insn stream.
1121         * gcc.c (invoke_as): Hook in -fcompare-debug.
1122         (static_spec_functions): Add compare-debug-dump-opt,
1123         compare-debug-self-opt and compare-debug-auxbase-opt.
1124         (compare_debug, compare_debug_second, compare_debug_opt): New.
1125         (switches_debug_check, n_switches_debug_check): New.
1126         (debug_auxbase_opt, debug_check_temp_file): New.
1127         (process_command): Handle -fno-compare-debug, -fcompare-debug and
1128         -fcompare-debug=*.
1129         (do_self_spec): Handle arguments after switches.
1130         (do_spec_1): Add .gk extension to temp file basenames for compare.
1131         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1132         (cc1_options): Use it instead of normal auxbase computation for
1133         the second compare-debug compilation.
1134         (compare_files): New.
1135         (main): Set up and implement compare debug mode.
1136         (compare_debug_dump_opt_spec_function): New.
1137         (compare_debug_self_opt_spec_function): New.
1138         (compare_debug_auxbase_opt_spec_function): New.
1139         * toplev.c (process_options): Handle flag_gtoggle,
1140         flag_dump_final_insns.
1141         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1142         during -fcompare-debug-second compilation.
1143
1144 2009-06-07  Ian Lance Taylor  <iant@google.com>
1145
1146         * dwarf2.h (enum dwarf_location_atom): Add
1147         INTERNAL_DW_OP_tls_addr.
1148         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1149
1150         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1151         with no default node.  Change warning with %H to warning_at.
1152         Don't clear warn_switch around case checking.
1153         * doc/invoke.texi (Warning Options): Clarify distinction between
1154         -Wswitch and -Wswitch-enum.
1155
1156 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1157
1158         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1159
1160 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1161
1162         * gbl-ctors.h: Add header guard.
1163
1164 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1165
1166         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1167         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1168         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1169         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1170         prototypes for removed functions.
1171         (expressions_equal_p): Move to ...
1172         * tree-ssa-sccvn.h: ... here and ...
1173         * matrix-reorg.c: ... adjust includes.
1174
1175 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1176
1177         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1178
1179 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1180
1181         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1182         (finish_function): Remove erroneous whitespace.
1183
1184 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1185
1186         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1187         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
1188
1189 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1190
1191         * errors.c (internal_error): Commentary typo fix.
1192         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1193         * tree-ssa-pre.c: Ditto.
1194
1195 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1196
1197         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1198         them is supposed to hold actual statements.
1199
1200 2009-06-06  Ian Lance Taylor  <iant@google.com>
1201
1202         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1203         empty statements can now have attributes.
1204
1205 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
1206
1207         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1208         * config/mips/mips.md: Ditto.
1209
1210 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
1211
1212         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1213         _RELOCATABLE.
1214         (__eabi_uconvert): Likewise.
1215
1216 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
1217
1218         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1219         CFI_* definitions with IN_GCC.
1220
1221 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
1222
1223         * xcoffout.h (xcoffout_source_line): Update prototype.
1224
1225 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1226
1227         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1228         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1229
1230 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
1231
1232         PR middle-end/40340
1233         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1234         inlined_function_outer_scope_p blocks for artificial inlines
1235         even at -g0/-g1.
1236         * tree.c (tree_nonartificial_location): Rewrite using
1237         block_nonartificial_location.
1238
1239 2009-06-05  Revital Eres  <eres@il.ibm.com>
1240             Leehod Baruch  <leehod@il.ibm.com>
1241
1242         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1243         (expand_expr_real_1): Remove comment.
1244         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1245         Vectorize misaligned access when the target supports it.
1246         (vect_supportable_dr_alignment): Check for unaligned access
1247         support.
1248         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1249         and remove asset.
1250
1251 2009-06-05  Julian Brown  <julian@codesourcery.com>
1252
1253         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1254         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1255
1256 2009-06-05  Richard Guenther  <rguenther@suse.de>
1257
1258         PR bootstrap/40350
1259         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1260         as possibly unused.
1261
1262 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
1263
1264         * config/s390/s390.c (global_not_special_regno_p): New static inline.
1265         (save_gprs): Don't tell unwinder when a global register is saved.
1266         (s390_emit_epilogue): Emit needed epilogue unwind info.
1267
1268 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1269
1270         * dwarf2out.c (deferred_asm_name): New.
1271         (add_name_and_src_coords_attributes): Defer creation of
1272         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1273         computed yet.
1274         (move_linkage_attr): New.
1275         (dwarf2out_finish): Revisit deferrals and emit attributes at the
1276         right place.
1277
1278 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1279
1280         * tree-nested.c (finalize_nesting_tree_1): Declare the
1281         frame_decl in the binding tree.
1282
1283 2009-06-04  Cary Coutant  <ccoutant@google.com>
1284
1285         * basic-block.h (struct basic_block_def): Add discriminator field.
1286         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
1287         callers.
1288         * debug.c (do_nothing_debug_hooks): Add additional entry.
1289         (debug_nothing_int_charstar_int): New function.
1290         * debug.h (struct gcc_debug_hooks): Add parameter to source_line
1291         hook.
1292         (debug_nothing_int_charstar_int): New declaration.
1293         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
1294         discriminator value in .loc directive.
1295         * final.c (last_discriminator): New variable.
1296         (discriminator): New variable.
1297         (final_start_function): Initialize above variables, pass current
1298         discriminator to debug hook.
1299         (notice_source_line): Check for discriminator change.
1300         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1301         * sdbout.c (sdbout_source_line): New parameter.
1302         * tree-cfg.c (struct locus_discrim_map): New structure type.
1303         (discriminator_per_locus): New hash table.
1304         (build_gimple_cfg): Allocate and free discriminator hash table.
1305         (make_edges): Call assign_discriminator.
1306         (locus_map_hash): New function.
1307         (locus_map_eq): New function.
1308         (next_discriminator_for_locus): New function.
1309         (same_line_p): New function.
1310         (assign_discriminator): New function.
1311         (make_cond_expr_edges): Call assign_discriminator.
1312         (make_gimple_switch_edges): Likewise.
1313         (first_non_label_stmt): New function.
1314         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
1315         all callers.
1316         * xcoffout.c (xcoffout_source_line): Add new parameter.
1317
1318         * configure.ac (gcc_cv_as_discriminator): New configury check for
1319         gas support for discriminator.
1320         * configure: Regenerate.
1321         * config.in: Regenerate.
1322
1323 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1324
1325         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
1326         val after checking for integers.
1327
1328 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
1329
1330         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
1331         X64_REGPARM_MAX.
1332         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
1333         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
1334         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
1335         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
1336         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
1337         X64_SSE_REGPARM_MAX.
1338         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
1339         X64_SSE_REGPARM_MAX.
1340
1341 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1342
1343         * gcc.c (report_times_to_file): New.
1344         (execute): Implement it.
1345         (process_command): Support -time=.
1346         * doc/invoke.texi: Document it.
1347
1348 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1349
1350         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
1351         that have value exprs.
1352
1353 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
1354
1355         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
1356         declarations for constants until...
1357         (dw2_output_indirect_constant_1): ... this point.
1358
1359 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
1360
1361         PR target/10242
1362         * arm.md (arm_addsi3): Don't try to split an add with an
1363         eliminable register until after reload has completed.
1364
1365 2009-06-03  Ian Lance Taylor  <iant@google.com>
1366
1367         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
1368         * genattrtab.c (write_length_unit_log): Likewise.
1369         * genchecksum.c (dosum): Likewise.
1370         * gengtype.c (write_rtx_next): Likewise.
1371         (finish_root_table, write_roots): Likewise.
1372         * gimple.c (gimple_ops_offset_): Likewise.
1373         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
1374         * config/arc/arc.c (arc_attribute_table): Likewise.
1375         * config/arm/arm.c (arm_attribute_table): Likewise.
1376         * config/avr/avr.c (avr_attribute_table): Likewise.
1377         * config/crx/crx.c (crx_attribute_table): Likewise.
1378         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
1379         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
1380         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
1381         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
1382         * config/sh/sh.c (sh_attribute_table): Likewise.
1383         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
1384         * config/spu/spu.c (spu_attribute_table): Likewise.
1385         * config/v850/v850.c (v850_attribute_table): Likewise.
1386
1387         * config/alpha/alpha.c (vms_attribute_table): Make static.
1388         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
1389         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
1390         * config/mips/mips.c (mips_attribute_table): Likewise.
1391
1392         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
1393         $(SYSTEM_H).
1394         (cc1-checksum.o): Likewise.
1395
1396 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
1397
1398         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
1399
1400 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
1401
1402         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
1403         insn if it is changing sp.  Use gen_add3_insn instead of
1404         conditionally gen_addsi3 and gen_adddi3.
1405         (offset_below_red_zone_p): New static inline function.
1406         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
1407         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
1408         * config/rs6000/ppc-asm.h: Include auto-host.h.
1409         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
1410         CFI_RESTORE): Define.
1411         * config/rs6000/crtresxgpr.asm: Add unwind info.
1412         * config/rs6000/crtresxfpr.asm: Likewise.
1413         * config/rs6000/crtresgpr.asm: Likewise.
1414         * config/rs6000/crtresfpr.asm: Likewise.
1415         * config/rs6000/crtsavgpr.asm: Likewise.
1416         * config/rs6000/crtsavfpr.asm: Likewise.
1417
1418         * dwarf2out.c (output_cfi_directive): Pass 1 instead of
1419         0 to second argument of DWARF2_FRAME_REG_OUT macros.
1420
1421 2009-06-03  Julian Brown  <julian@codesourcery.com>
1422
1423         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
1424         words or less (including TImode) in core registers.
1425
1426 2009-06-03  Richard Guenther  <rguenther@suse.de>
1427
1428         PR middle-end/40328
1429         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
1430
1431 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
1432
1433         * statistics.c (statistics_counter_event): Do not record event 
1434         in pass dump if its number == -1.
1435         (curr_statistics_hash): Add assert that we never get passes 
1436         with static number == -1.
1437
1438 2009-06-03  Richard Guenther  <rguenther@suse.de>
1439             Andrey Belevantsev  <abel@ispras.ru>
1440
1441         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
1442         non-BLKmode arrays addressable.
1443
1444 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
1445
1446         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
1447         * config/m68k/m68k.h: ... here.
1448         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
1449         m68k and fido.
1450
1451 2009-06-03  Martin Jambor  <mjambor@suse.cz>
1452
1453         PR tree-optimization/40323
1454         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
1455         assignment.
1456
1457 2009-06-03  Richard Guenther  <rguenther@suse.de>
1458
1459         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1460         consistently.
1461
1462 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
1463
1464         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
1465         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
1466         JUMP_TABLE_DATA_P where applicable.
1467         * config/sh/sh.c: Ditto.
1468         * config/sh/sh.h: Ditto.
1469         * config/sh/sh.md: Ditto.
1470         * config/sh/symbian.c: Ditto.
1471
1472 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
1473
1474         * config/i386/driver-i386.c (describe_cache): Optimize
1475         concatenation of strings.  Use snprintf instead of sprintf.
1476         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
1477         target when not compiling with GCC.
1478
1479 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
1480
1481         * config/sh/sh.c: Revert last change.
1482         (sh_expand_epilogue): Emit a blockage insn before the frame
1483         pointer adjustment unconditionally.
1484
1485 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1486
1487         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
1488         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
1489         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
1490         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
1491         to COLLECT_GCC_OPTIONS.
1492
1493 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1494
1495         * collect2.c (target_system_root): New variable.
1496         (main): Handle --sysroot=.
1497         (ignore_library): Strip the sysroot from the library path.
1498
1499 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1500
1501         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
1502         (collect2.o): Depend on collect2-aix.h.
1503         (collect2-aix.o): New rule.
1504         * collect2-aix.h: New file.
1505         * collect2-aix.c: Likewise.
1506         * collect2.c: Include collect2-aix.h.  Don't undefine
1507         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
1508         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
1509         Use TARGET_AIX_VERSION instead of _AIX51.
1510         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
1511         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
1512         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
1513         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
1514         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
1515
1516 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1517
1518         * collect2.c (ignore_library): Avoid premature post-increment
1519         and null deference.
1520
1521 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1522
1523         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
1524         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
1525         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
1526         CROSS_DIRECTORY_STRUCTURE too.
1527         (LINK_LIBG_SPEC): Likewise.
1528         (LIB_SPEC): Add %R to sysroot paths.
1529         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
1530         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
1531         * config/rs6000/aix51.h: As for aix43.h.
1532         * config/rs6000/aix52.h: Likewise.
1533         * config/rs6000/aix53.h: Likewise.
1534         * config/rs6000/aix61.h: Likewise.
1535         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
1536         to the beginning of sysroot paths.
1537
1538 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1539
1540         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
1541         INSN_LISTs that are out of the REG_NOTE range.
1542
1543 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1544
1545         * loop-unroll.c (struct iv_to_split): Add pointer to next.
1546         (struct var_to_expand): Likewise.
1547         (struct opt_info): Add head and tail for linked lists of the above.
1548         (analyze_insn_to_expand_var): Initialize next.
1549         (analyze_iv_to_split_insn): Likewise.
1550         (analyze_insns_in_loop): Create linked lists.
1551         (allocate_basic_variable): Simplify for use without hash table.
1552         (insert_var_expansion_initialization): Likewise, make it type-safer.
1553         (combine_var_copies_in_loop_exit): Likewise.
1554         (apply_opt_in_copies): Walk lists rather than hash tables.
1555         (release_var_copies): Simplified and inlined by hand into...
1556         (free_opt_info): ... this function.
1557
1558 2009-06-02  Richard Guenther  <rguenther@suse.de>
1559
1560         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
1561         for field decls.
1562
1563 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1564
1565         * cfgexpand.c (gimple_expand_cfg): Discard the source location
1566         only for builtins that are not overridden.
1567
1568 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1569
1570         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
1571         label string.
1572
1573 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1574
1575         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
1576
1577 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1578
1579         * combine.c (move_deaths): Compare LUIDs within the same BB only.
1580
1581 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
1582
1583         * common.opt (fdump-unnumbered-links): New.
1584         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
1585         * print-rtl.c (flag_dump_unnumbered_links): New.
1586         (print_rtx): Test it.
1587
1588 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
1589
1590         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
1591         push/pop multiple to 8-byte alignment.
1592
1593 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
1594
1595         * config/i386/i386.c (queued_cfa_restores): New static variable.
1596         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
1597         functions.
1598         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
1599         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
1600         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
1601         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
1602         note unconditionally.
1603         (ix86_emit_restore_regs_using_mov): Likewise.
1604         (ix86_emit_restore_sse_regs_using_mov): Likewise.
1605         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
1606         it through to ix86_emit_restore_reg_using_pop.
1607         (ix86_emit_leave): Add RED_OFFSET argument.  Call
1608         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
1609         instead of adding REG_CFA_OFFSET note unconditionally.
1610         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
1611         the above functions.  Call ix86_add_queued_cfa_restore_notes when
1612         needed.
1613
1614         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
1615         force output of the label even for dwarf2out_do_cfi_asm.
1616         (add_fde_cfi): If -g2 and above and cfi might change CFA,
1617         force creation of CFI label and chain DW_CFA_set_loc jumping to it
1618         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
1619         caller.
1620         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
1621         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
1622         dwarf2out_cfi_label callers.
1623         * tree.h (dwarf2out_cfi_label): Adjust prototype.
1624         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
1625         Adjust dwarf2out_cfi_label callers.
1626         * config/vax/vax.c (vax_output_function_prologue): Likewise.
1627
1628         * config/i386/i386.h (struct machine_cfa_state,
1629         struct machine_function): Guard with ifndef USED_FOR_TARGET
1630         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
1631
1632         PR other/40024
1633         * emutls.c (__emutls_get_address): Change arr->size to mean number
1634         of allocated arr->data entries instead of # of slots + 1.
1635
1636         PR middle-end/40316
1637         * recog.c (peep2_reinit_state): New function.
1638         (peephole2_init_state): Use it at the end of a basic block and also
1639         when seeing a RTX_FRAME_RELATED_P insn.
1640
1641 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
1642
1643         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
1644         fixuns_truncrfdi2): New.
1645         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
1646         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
1647         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
1648         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
1649         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
1650         *recip_approx): Remove.
1651         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
1652         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
1653         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
1654         move to div.md.
1655         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
1656         setf_exp_rf): New.
1657
1658 2009-06-01  Ian Lance Taylor  <iant@google.com>
1659
1660         * attribs.c (register_attribute): Use CONST_CAST.
1661         * collect2.c (main): Use CONST_CAST2.
1662         (scan_prog_file): Likewise.
1663         * gcc.c (process_command, main): Likewise.
1664         * toplev.c (toplev_main): Likewise.
1665
1666         * c-typeck.c (handle_warn_cast_qual): New static function,
1667         partially broken out of build_c_cast.
1668         (build_c_cast): Call handle_warn_cast_qual.
1669         * doc/invoke.texi (Warning Options): Document new effect of
1670         -Wcast-qual.
1671
1672 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
1673
1674         * diagnostic.c (diagnostic_build_prefix): Always print columns.
1675         (diagnostic_report_current_module): Print columns.
1676         * common.opt (flag_show_column): Enable by default.
1677
1678 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
1679
1680         * alias.c (find_base_term): Check for NULL term before returning.
1681
1682 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1683
1684         Revert due to PR40320:
1685         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1686         * calls.c (emit_library_call_value_1): Don't force_operand for move
1687         and push insns.
1688
1689 2009-06-01  Olivier Hainque  <hainque@adacore.com>
1690             Eric Botcazou  <ebotcazou@adacore.com>
1691
1692         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
1693         to be processed as a bitfield for constructor output purposes.
1694         * output.h (initializer_constant_valid_for_bitfield_p): Declare
1695         new function.
1696         * varasm.c (oc_local_state): New type, output_constructor
1697         local state to support communication with helpers.
1698         (oc_outer_state): New type, output_constructor outer state of
1699         relevance in recursive calls.
1700         (output_constructor_array_range): New output_constructor helper,
1701         extracted code for an array range element.
1702         (output_constructor_regular_field): New output_constructor helper,
1703         extracted code for an element that is not a bitfield.
1704         (output_constructor_bitfield): New output_constructor helper,
1705         extracted code for a bitfield element.  Accept an OUTER state
1706         argument for recursive processing.  Recurse on record or array
1707         CONSTRUCTOR values, possibly past noop conversions.
1708         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
1709         VALUE is a valid constant-valued expression for use in a static
1710         bit-field initializer.
1711         (output_constructor): Rework to use helpers.  Accept and honor an
1712         OUTER state argument for recursive calls.  Return total size.  Be
1713         prepared for nested constructors initializing bitfields.
1714         (output_constant): Feed OUTER in calls to output_constructor.
1715
1716 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
1717
1718         * calls.c (emit_library_call_value_1): Don't force_operand for move
1719         and push insns.
1720
1721 2009-06-01  Nick Clifton  <nickc@redhat.com>
1722
1723         * doc/invoke.texi (IA-64 Options): Fix typo.
1724
1725 2009-06-01  Ira Rosen  <irar@il.ibm.com>
1726
1727         PR tree-optimization/39129
1728         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
1729         printed message.
1730         (vect_do_peeling_for_loop_bound): Use 
1731         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1732         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1733         (vect_loop_versioning): Likewise.
1734         (vect_create_cond_for_alias_checks): Fix indentation.
1735         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
1736         macros.
1737         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
1738         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
1739         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
1740         "control flow in loop".
1741         (vect_estimate_min_profitable_iters): Use 
1742         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
1743         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
1744         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1745         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
1746         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
1747         statement belongs to a group of strided accesses with the exact code 
1748         check.
1749         (vectorizable_load): Likewise.
1750         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
1751         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
1752
1753 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
1754
1755         * config/freebsd-stdint.h: New file.
1756         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
1757         Add freebsd-stdint.h to tm_file.
1758
1759 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
1760
1761         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
1762         (thumb2_extendhidi2): Likewise.
1763
1764 2009-05-31  Ian Lance Taylor  <iant@google.com>
1765
1766         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
1767
1768 2009-05-31  Ian Lance Taylor  <iant@google.com>
1769
1770         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
1771         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
1772         (ipa-reference.o): Depend upon gt-ipa-reference.h.
1773
1774 2009-05-31  Jason Merrill  <jason@redhat.com>
1775
1776         * tree-pretty-print.c (print_call_name): Take the callee, not the
1777         call itself.  Make non-static.  Use dump_function_name for functions.
1778         (dump_generic_node): Adjust.
1779         * diagnostic.h: Declare print_call_name.
1780         * gimple-pretty-print.c (dump_gimple_call): Use it.
1781
1782 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1783
1784         * config/sh/sh.md (ashldi3_std): New define_expand.
1785         (ashldi3): Use it.
1786
1787 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
1788
1789         PR target/40313
1790         * config/sh/sh.c: Include debug.h.
1791         (sh_expand_epilogue): Emit a blockage insn before the frame
1792         pointer adjustment also when dwarf2out_do_frame returns true.
1793
1794 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
1795
1796         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
1797         (thumb2_extendqidi2): New pattern.
1798
1799 2009-05-31  Ira Rosen  <irar@il.ibm.com>
1800
1801         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
1802         mark phis for renaming.
1803         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
1804         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
1805         Call mark_sym_for_renaming.
1806         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
1807         * tree-vect-loop.c (vect_transform_loop): Remove
1808         vect_memsyms_to_rename initialization and a call to
1809         mark_set_for_renaming.
1810
1811 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
1812
1813         PR middle-end/40304
1814         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
1815         frame related even if !set_cfa && style < 0.
1816
1817 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
1818
1819         * config/i386/mingw-tls.c: New file.
1820         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
1821         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
1822         defining _WIN32 but not __CYGWIN__.
1823
1824 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1825
1826         * configure.ac: Add MPC support.
1827         
1828         * config.in, configure: Regenerate.     
1829
1830 2009-05-29  Richard Henderson  <rth@redhat.com>
1831
1832         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
1833         NOTE_INSN_BASIC_BLOCK.
1834         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
1835         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
1836         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
1837         to be deleted.
1838         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
1839         add in_use field.
1840         (add_cfi): Disable check redefining cfa away from drap.
1841         (lookup_cfa_1): Add remember argument; handle remember/restore.
1842         (lookup_cfa): Pass remember argument.
1843         (cfa_remember): New.
1844         (compute_barrier_args_size_1): Remove sibcall check.
1845         (dwarf2out_frame_debug_def_cfa): New.
1846         (dwarf2out_frame_debug_adjust_cfa): New.
1847         (dwarf2out_frame_debug_cfa_offset): New.
1848         (dwarf2out_frame_debug_cfa_register): New.
1849         (dwarf2out_frame_debug_cfa_restore): New.
1850         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
1851         (dwarf2out_begin_epilogue): New.
1852         (dwarf2out_frame_debug_restore_state): New.
1853         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
1854         DW_CFA_restore_state.
1855         (output_cfi_directive): Likewise.
1856         (convert_cfa_to_fb_loc_list): Likewise.
1857         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
1858         * dwarf2out.h: Update.
1859         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
1860         (copy_insn_1): Early out for null.
1861         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
1862         and dwarf2out_frame_debug_restore_state.
1863         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
1864         (prologue_insn_hash, epilogue_insn_hash): New.
1865         (free_after_compilation): Adjust freeing accordingly.
1866         (record_insns): Create hash table if needed; push insns into
1867         hash instead of array.
1868         (maybe_copy_epilogue_insn): New.
1869         (contains): Search hash table instead of array.
1870         (sibcall_epilogue_contains): Remove.
1871         (thread_prologue_and_epilogue_insns): Split eh_return insns
1872         and mark them as epilogues.
1873         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
1874         scanning in terms of basic blocks.
1875         * insn-notes.def (CFA_RESTORE_STATE): New.
1876         * jump.c (returnjump_p_1): Accept EH_RETURN.
1877         (eh_returnjump_p_1, eh_returnjump_p): New.
1878         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
1879         CFA_REGISTER, CFA_RESTORE): New.
1880         * rtl.def (EH_RETURN): New.
1881         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
1882
1883         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
1884         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
1885
1886         * config/i386/i386.c (gen_push): Update cfa state.
1887         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
1888         add a CFA_ADJUST_CFA note.
1889         (ix86_dwarf_handle_frame_unspec): Remove.
1890         (ix86_expand_prologue): Update cfa state.
1891         (ix86_emit_restore_reg_using_pop): New.
1892         (ix86_emit_restore_regs_using_pop): New.
1893         (ix86_emit_leave): New.
1894         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
1895         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
1896         * config/i386/i386.h (struct machine_cfa_state): New.
1897         (ix86_cfa_state): New.
1898         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
1899         (eh_return_internal): Merge from eh_return_<mode>,
1900         use eh_return rtx, split w/ epilogue.
1901
1902 2009-05-29  Ian Lance Taylor  <iant@google.com>
1903
1904         * builtins.c (validate_gimple_arglist): Don't use va_arg with
1905         enum type.
1906         * calls.c (emit_library_call_value_1): Likewise.
1907
1908         * c-typeck.c (c_build_va_arg): New function.
1909         * c-tree.h (c_build_va_arg): Declare.
1910         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
1911         instead of build_va_arg.
1912
1913 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
1914
1915         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
1916         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
1917         (ptr_difference_cost): Use affine combinations to compute it.
1918         (difference_cost): Likewise.
1919         (get_computation_cost_at): Compute more accurate cost for addresses
1920         if the ratio is a multiplier allowed in addresses.
1921         For non-addresses, consider that an additional offset or symbol is
1922         added only once.
1923
1924 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
1925
1926         * config/i386/i386.c (ix86_decompose_address): Avoid useless
1927         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
1928
1929         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
1930         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
1931         (prefix_rex): For UNIT_MMX don't imply the prefix by default
1932         if MODE_DI.
1933         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
1934         to 1 for TYPE_SSE{IADD1,CVT1}.
1935         (prefix_vex_imm8): Removed.
1936         (length_vex): Only pass 1 as second argument to
1937         ix86_attr_length_vex_default if prefix_extra is 0.
1938         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
1939         (length): For prefix vex computation use length_immediate
1940         attribute instead of prefix_vex_imm8.
1941         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
1942         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
1943         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
1944         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
1945         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
1946         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
1947         a space in between the operands.
1948         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
1949         if one operand is 0xff and the other one si, di, bp or sp.
1950         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
1951         other one si, di, bp or sp.
1952         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
1953         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
1954         type and mode attributes.
1955         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
1956         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
1957         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
1958         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
1959         prefix_data16 attribute iff MODE_DF.
1960         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
1961         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
1962         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
1963         constm128_operand in length_immediate computation.
1964         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
1965         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
1966         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
1967         length_immediate attribute to 1.
1968         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
1969         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
1970         for certain alternatives.
1971         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
1972         prefix_data16 attribute if MODE_V1DF.
1973         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
1974         length_immediate to 1.
1975         (set_got_rex64, set_rip_rex64): Remove length attribute, set
1976         length_address to 4, set mode attribute to MODE_DI.
1977         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
1978         (fxam<mode>2_i387): Set length attribute to 4.
1979         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
1980         *prefetch_3dnow_rex): Override length_address attribute.
1981         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
1982         attributes.
1983         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
1984         (constm128_operand): Removed.
1985         * config/i386/i386.c (memory_address_length): For
1986         disp && !index && !base in 64-bit mode account for SIB byte if
1987         print_operand_address can't optimize disp32 into disp32(%rip)
1988         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
1989         for fs: or gs: segment.
1990         (ix86_attr_length_immediate_default): When checking if shortform
1991         is possible, truncate immediate to the length of the non-shortened
1992         immediate.
1993         (ix86_attr_length_address_default): Ignore MEM_P operands
1994         with X constraint.
1995         (ix86_attr_length_vex_default): Only check for DImode on
1996         GENERAL_REG_P operands.
1997         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
1998         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
1999         (sse_cvttps2pi): Clear prefix_rep attribute.
2000         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2001         attribute.
2002         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2003         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2004         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2005         iff operand 2 is const_int_operand.
2006         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2007         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2008         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
2009         instead of vex.
2010         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2011         prefix_data16.
2012         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2013         prefix_data16 attribute for movlpd and movhpd instructions.
2014         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
2015         length_immediate for shufpd instruction.
2016         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2017         (avx_cmpp<avxmodesuffixf2c><mode>3,
2018         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2019         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2020         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
2021         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
2022         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2023         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2024         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2025         prefix_data16 attribute for the first alternative to 1.
2026         (*avx_loadlps): Override length_immediate for the first alternative.
2027         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2028         attributes for second alternative.
2029         (*vec_concatv2sf_sse4_1): Override length_immediate and
2030         prefix_data16 attributes for second alternative.
2031         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2032         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2033         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2034         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2035         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2036         prefix_data16 and length_immediate to 1.
2037         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2038         to 1.
2039         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
2040         prefix_extra attribute for variants that don't have 0f prefix alone.
2041         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
2042         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2043         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2044         *sse4_1_pextrd): Set length_immediate to 1.
2045         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
2046         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2047         to 1.
2048         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2049         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2050         length_immediate to 1 for second alternative.
2051         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2052         prefix_extra and length_immediate attributes for the first
2053         alternative.
2054         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2055         first alternative.
2056         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
2057         to 1 for the first and third alternative.
2058         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2059         alternative.
2060         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2061         attribute.
2062         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2063         attribute to 0.
2064         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2065         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2066         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2067         *avx_psign<mode>3): Set prefix_extra attribute to 1.
2068         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2069         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2070         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2071         ssse3_psign<mode>3): Override prefix_rex attribute.
2072         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
2073         (ssse3_palignrti): Override length_immediate to 1.
2074         (ssse3_palignrdi): Override length_immediate to 1, override
2075         prefix_rex attribute.
2076         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
2077         (sse4a_extrqi): Override length_immediate to 2.
2078         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
2079         (sse4a_insertq): Override prefix_data16 to 0.
2080         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2081         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2082         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2083         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2084         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2085         and length_immediate to 1.
2086         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2087         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2088         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2089         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2090         and length_immediate to 1.
2091         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2092         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2093         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2094         avx_ptest256): Override prefix_extra to 1.
2095         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2096         Override prefix_data16 and length_immediate to 1.
2097         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2098         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2099         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2100         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2101         prefix_data16 to 0 and prefix_extra to 2.
2102         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2103         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2104         attribute.
2105         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2106         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2107         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2108         and prefix_extra to 2.
2109         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2110         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2111         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2112         avx_vpermilvar<mode>3,
2113         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2114         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2115         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2116         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2117         Override prefix_extra to 1.
2118         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2119         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2120         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2121         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2122         prefix_extra and length_immediate to 1.
2123         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2124         modrm to 0.
2125         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2126         to 1 for the first alternative.
2127         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2128         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2129         cases.
2130         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2131         *movv2sf_internal_avx, *movv2sf_internal): Override
2132         prefix_rep attribute for certain alternatives.
2133         (*mov<mode>_internal): Override prefix_rep or prefix_data16
2134         attributes for certain alternatives.
2135         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2136         attributes for certain alternatives.
2137         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2138         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2139         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2140         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2141         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2142         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2143         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2144         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2145         length_immediate to 1 if operand 2 is const_int_operand.
2146         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
2147         *vec_extractv2si_1): Set length_immediate attribute to 1.
2148         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2149         using old 3DNOW insn rather than SSE/3DNOW_A.
2150         (mmx_emms, mmx_femms): Clear modrm attribute.
2151
2152 2009-05-29  Martin Jambor  <mjambor@suse.cz>
2153
2154         * tree-sra.c:  New implementation of SRA.
2155
2156         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2157         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2158         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2159         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2160         (SRA_MAX_STRUCTURE_COUNT): Removed.
2161         (SRA_FIELD_STRUCTURE_RATIO): Removed.
2162         * doc/invoke.texi (sra-max-structure-size): Removed.
2163         (sra-field-structure-ratio): Removed.
2164
2165 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2166
2167         PR middle-end/40291
2168         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2169         before expansion.
2170
2171 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
2172
2173         PR rtl-optimization/40101
2174         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2175         seqno.  Adjust comment.
2176         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
2177         inserting bookkeeping before a jump, the jump is not scheduled.
2178         When no positive seqno found, provide a value.  Add comment.
2179
2180 2009-05-29  Richard Guenther  <rguenther@suse.de>
2181
2182         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2183         short-cutting on the first component.
2184
2185 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2186
2187         PR middle-end/39958
2188         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2189         for trees other than decls/types.
2190
2191 2009-05-29  Richard Guenther  <rguenther@suse.de>
2192
2193         * tree-ssa-operands.c (get_expr_operands): Do not handle
2194         INDIRECT_REFs in the handled-component case.  Remove
2195         unused get_ref_base_and_extent case.
2196         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2197         tree_low_cst and host_integerp where possible.
2198         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2199         codes for equivalence.
2200         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2201
2202 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
2203
2204         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2205         to tmake_file for i[34567]86-*-cygwin*. 
2206
2207 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2208
2209         PR target/40017
2210         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2211         (altivec_categorize_keyword, init_vector_keywords,
2212         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2213         similar to bool.
2214
2215 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
2216
2217         * tree.c (handle_dll_attribute): Check if node is
2218         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2219
2220 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
2221
2222         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2223         component.
2224         (thumb2_zero_extendqidi2): Likewise.
2225
2226 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2227
2228         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2229         instead of gen_movrt.
2230         * config/sh/sh.md (movrt): Remove.
2231
2232 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
2233
2234         * doc/invoke.texi (IA-64 Options):
2235         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
2236         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2237         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2238         -msched-prefer-non-control-spec-insns,
2239         -msched-stop-bits-after-every-cycle,
2240         -msched-count-spec-in-critical-path,
2241         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
2242         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
2243         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2244         and -msched-spec-verbose.
2245
2246 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
2247
2248         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
2249         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2250         error if used.
2251         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2252
2253 2009-05-28  Richard Guenther  <rguenther@suse.de>
2254
2255         * tree-ssa-alias.c (ao_ref_init): New function.
2256         (ao_ref_base): Likewise.
2257         (ao_ref_base_alias_set): Likewise.
2258         (ao_ref_alias_set): Likewise.
2259         (refs_may_alias_p_1): Change signature.
2260         (refs_may_alias_p): Adjust.
2261         (refs_anti_dependent_p): Likewise.
2262         (refs_output_dependent_p): Likewise.
2263         (call_may_clobber_ref_p_1): Change signature.
2264         (call_may_clobber_ref_p): Adjust.
2265         (stmt_may_clobber_ref_p_1): New function split out from ...
2266         (stmt_may_clobber_ref_p): ... here.
2267         (maybe_skip_until): Adjust signature.
2268         (get_continuation_for_phi): Likewise.
2269         (walk_non_aliased_vuses): Likewise.
2270         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2271         (ao_ref_init): Declare.
2272         (ao_ref_base): Likewise.
2273         (ao_ref_alias_set): Likewise.
2274         (stmt_may_clobber_ref_p_1): Likewise.
2275         (walk_non_aliased_vuses): Adjust.
2276         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2277         (get_ref_from_reference_ops): remove.
2278         (vn_reference_lookup_2): Adjust signature.
2279         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
2280         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
2281         (vn_reference_lookup): Adjust.
2282         (vn_reference_insert): Likewise.
2283         (vn_reference_insert_pieces): Adjust signature.
2284         (visit_reference_op_call): Adjust.
2285         * tree-ssa-pre.c (get_expr_type): Simplify.
2286         (phi_translate_1): Adjust.
2287         (compute_avail): Likewise.
2288         (translate_vuse_through_block): Do not re-build trees.
2289         (value_dies_in_block_x): Likewise.
2290         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2291         fields.
2292         (vn_reference_lookup_pieces): Adjust declaration.
2293         (vn_reference_insert_pieces): Likewise.
2294
2295 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
2296
2297         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2298         with checking disabled.
2299
2300 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
2301
2302         PR target/37216
2303
2304         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
2305         macro definition for support of three-operand format aligned
2306         .comm directive in assembler on cygwin/pe/mingw target OS.
2307         * configure:  Regenerate.
2308         * config.h:  Regenerate.
2309
2310         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
2311         aligned form of .comm directive if -mpe-aligned-commons is in effect.
2312         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
2313
2314         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
2315         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
2316
2317 2009-05-28  Ira Rosen  <irar@il.ibm.com>
2318
2319         PR tree-optimization/40254
2320         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
2321         in analysis of basic blocks.
2322
2323 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
2324
2325         PR middle-end/33699
2326         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
2327         * target-def.h (TARGET_CONST_ANCHOR): New macro.
2328         (TARGET_INITIALIZER): Use it.
2329         * cse.c (CHEAPER): Move it up to the other macros.
2330         (insert): Rename this ...
2331         (insert_with_costs): ... to this.  Add cost parameters.  Update
2332         function comment.
2333         (insert): New function.  Call insert_with_costs.
2334         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
2335         find_reg_offset_for_const, try_const_anchors): New functions.
2336         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
2337         when using a const-anchor.  Call insert_const_anchors.
2338         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2339         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
2340
2341 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
2342
2343         * tree-inline.c (remap_decls): Enable nonlocalized variables
2344         when not optimizing.
2345
2346 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
2347
2348         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
2349         Simplify other tests involving optimize.
2350
2351 2009-05-27  Tom Tromey  <tromey@redhat.com>
2352
2353         * unwind-dw2.c (_Unwind_DebugHook): New function.
2354         (uw_install_context): Call _Unwind_DebugHook.
2355
2356 2009-05-27  Tom Tromey  <tromey@redhat.com>
2357
2358         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
2359
2360 2009-05-27  Ian Lance Taylor  <iant@google.com>
2361
2362         * Makefile.in (LINKER, LINKER_FLAGS): Define.
2363         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
2364         (ALL_LINKERFLAGS): Define.
2365         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
2366         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2367         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
2368         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2369         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
2370         $(LINKER_FOR_BUILD).
2371         (build/gcov-iov$(build_exeext)): Likewise.
2372
2373 2009-05-27  Julian Brown  <julian@codesourcery.com>
2374
2375         * gcse.c (target.h): Include.
2376         (can_assign_to_reg_without_clobbers_p): Check that the target allows
2377         copy of argument to a pseudo register.
2378
2379 2009-05-27  Diego Novillo  <dnovillo@google.com>
2380
2381         * tree-ssa-live.c (dump_scope_block): Document arguments.
2382         (dump_scope_blocks): Document.
2383         (debug_scope_blocks): New.
2384         * tree-flow.h (debug_scope_blocks): Declare.
2385
2386 2009-05-21  Denis Chertykov  <denisc@overta.ru>
2387
2388         * doc/contrib.texi (Contributors): Add myself to the list.
2389
2390 2009-05-27  Olivier Hainque  <hainque@adacore.com>
2391
2392         * expr.c (target_align): New function.  Alignment the TARGET of an
2393         assignment may be assume to have.
2394         (highest_pow2_factor_for_target): Use it instead of relying on
2395         immediate tree attributes of TARGET, not necessarily honored when
2396         intermediate bitfields are involved.
2397         
2398 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
2399
2400         PR target/40266
2401         * config/i386/driver-i386.c (host_detect_local_cpu): Support
2402         AVX, SSE4, AES, PCLMUL and POPCNT.
2403
2404 2009-05-27  Diego Novillo  <dnovillo@google.com>
2405
2406         * tree-pretty-print.c (dump_location): New.
2407         (dump_generic_node): Call it.
2408         Factor code to handle BLOCK nodes ...
2409         (dump_block_node): ... here.
2410
2411 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
2412
2413         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
2414         with it.
2415         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
2416         included.
2417         * gcc-plugin.h: Include config.h and system.h.
2418         (IN_GCC): Define if not defined.
2419
2420 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
2421
2422         PR middle-end/40249
2423         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
2424         with -fno-inline.
2425
2426 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
2427
2428         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
2429         applicable.
2430         * config/m32r/m32r.h: Ditto.
2431         * config/m32r/m32r.md: Ditto.
2432         * config/m32r/predicates.md: Ditto.
2433
2434 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
2435
2436         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
2437
2438 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
2439
2440         * doc/plugins.texi
2441         (Loading plugins): typo.
2442         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
2443         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2444         (Interacting with the GCC Garbage Collector): Added new section.
2445         (Giving information about a plugin): Added new section for
2446         PLUGIN_INFO.
2447         * ggc.h (ggc_register_root_tab): Added declaration.
2448         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
2449         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
2450         (register_callback): Improved comment in declaration.
2451         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
2452         (extra_root_vec) Added static variable for dynamic roots registration.
2453         (ggc_register_root_tab) Added new routine.
2454         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
2455         PLUGIN_GGC_MARKING event.
2456         * ggc-zone.c: Include plugin.h.
2457         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2458         * ggc-page.c: Include plugin.h.
2459         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
2460         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
2461         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
2462         (register_callback): check lack of callbacks for
2463         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
2464         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
2465         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
2466         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
2467         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
2468         dependency on plugin.h.
2469         (plugin.o): Added dependency on ggc.h...
2470
2471 2009-05-26  Richard Guenther  <rguenther@suse.de>
2472
2473         PR middle-end/40248
2474         Revert
2475         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
2476         with mismatched comparison modes.
2477
2478         * expr.c (expand_expr_real_1): Expand the operand of a
2479         VIEW_CONVERT_EXPR in its natural mode.
2480
2481 2009-05-26  Ian Lance Taylor  <iant@google.com>
2482
2483         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
2484         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
2485         (ALL_COMPILERFLAGS): Define.
2486         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
2487         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
2488         (collect2$(exeext), collect2.o): Likewise.
2489         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
2490         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
2491         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
2492         (libbackend.o, intl.o, cppdefault.o): Likewise.
2493         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
2494         (build/%.o): Use $(COMPILER_FOR_BUILD).
2495         (build/gen%$(build_exeext)): Likewise.
2496         (build/gcov-iov$(build_exeext)): LIkewise.
2497         * config/t-darwin (darwin.o): Use $(COMPILER).
2498         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
2499         * config/t-sol2 (sol2-c.o): Likewise.
2500         (sol2.o): Likewise.
2501         * config/t-vxworks (vxworks.o): Likewise.
2502         * config/x-darwin (host-darwin.o): Likewise.
2503         * config/x-hpux (host-hpux.o): Likewise.
2504         * config/x-linux (host-linux.o): Likewise.
2505         * config/x-solaris (host-solaris.o): Likewise.
2506         * config/alpha/x-alpha (driver-alpha.o): Likewise.
2507         * config/arm/t-arm (arm-c.o): Likewise.
2508         * config/arm/t-pe (pe.o): Likewise.
2509         * config/arm/t-wince-pe (pe.o): Likewise.
2510         * config/i386/t-cygming (winnt.o): Likewise.
2511         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
2512         * config/i386/t-cygwin (cygwin1.o): Likewise.
2513         (cygwin2.o): Likewise.
2514         * config/i386/t-i386 (i386-c.o): Likewise.
2515         * config/i386/t-interix (winnt.o): Likewise.
2516         * config/i386/t-netware (netware.o): Likewise.
2517         * config/i386/t-nwld (nwld.o): Likewise.
2518         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
2519         * config/i386/x-i386 (driver-i386.o): Likewise.
2520         * config/i386/x-cygwin (host-cygwin.o): Likewise.
2521         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
2522         * config/ia64/t-ia64 (ia64-c.o): Likewise.
2523         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
2524         * config/mips/x-native (driver-native.o): Likewise.
2525         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
2526         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
2527         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
2528         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
2529         * config/score/t-score-elf (score7.o): Likewise.
2530         (score3.o): Likewise.
2531         * config/sh/t-sh (sh-c.o): Likewise.
2532         * config/sh/t-symbian (sh-c.o): Likewise.
2533         (symbian.o): Likewise.
2534         * config/spu/t-spu-elf (spu-c.o): Likewise.
2535         * config/v850/t-v850 (v850-c.o): Likewise.
2536         * config/v850/t-v850e (v850-c.o): Likewise.
2537
2538 2009-05-26  Richard Guenther  <rguenther@suse.de>
2539
2540         PR tree-optimization/40122
2541         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
2542         VECTOR_CSTs if possible.
2543         (fold_gimple_assign): Likewise.
2544
2545 2009-05-26  Richard Guenther  <rguenther@suse.de>
2546
2547         PR middle-end/40252
2548         * fold-const.c (fold_binary): Use the correct types for building
2549         rotates.
2550
2551 2009-05-26  Richard Guenther  <rguenther@suse.de>
2552
2553         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
2554         redundant calls to merge_alias_info.
2555         (bump_vector_ptr): Likewise.
2556         * tree-ssa-copy.c (merge_alias_info): Remove.
2557         (replace_exp_1): Remove call to merge_alias_info.
2558         (propagate_tree_value): Likewise.
2559         (fini_copy_prop): Propagate points-to info.
2560         * tree-flow.h (merge_alias_info): Remove.
2561
2562 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
2563
2564         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
2565
2566 2009-05-25  Jan Hubicka  <jh@suse.cz>
2567
2568         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
2569         * cgraph.h (struct inline_summary): New filed self_wize,
2570         size_inlining_benefit, self_time and time_inlining_benefit.
2571         (struct cgraph_global_info): Replace insns by time ans size fields.
2572         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
2573         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
2574         (ipcp_update_callgraph): Do not touch function bodies.
2575         * ipa-inline.c: Include except.h
2576         (MAX_TIME): New constant.
2577         (overall_insns): Remove.
2578         (leaf_node_p): New.
2579         (overall_size, max_benefit): New static variables.
2580         (cgraph_estimate_time_after_inlining): New function.
2581         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
2582         (cgraph_clone_inlined_nodes): Update size.
2583         (cgraph_mark_inline_edge): Update size.
2584         (cgraph_estimate_growth): Use size info.
2585         (cgraph_check_inline_limits): Check size.
2586         (cgraph_default_inline_p): Likewise.
2587         (cgraph_edge_badness): Compute badness based on benefit and size cost.
2588         (cgraph_decide_recursive_inlining): Check size.
2589         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
2590         and times.
2591         (cgraph_decide_inlining): Likewise.
2592         (cgraph_decide_inlining_incrementally): Likewise; honor
2593         PARAM_EARLY_INLINING_INSNS.
2594         (likely_eliminated_by_inlining_p): New predicate.
2595         (estimate_function_body_sizes): New function.
2596         (compute_inline_parameters): Use it.
2597         * except.c (must_not_throw_labels): New function.
2598         * except.h (must_not_throw_labels): Declare.
2599         * tree-inline.c (init_inline_once): Kill inlining_weigths
2600         * tree-ssa-structalias.c: Avoid uninitialized warning.
2601         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
2602         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
2603         (PARAM_INLINE_CALL_COST): Remove.
2604         (PARAM_EARLY_INLINING_INSNS): New.
2605
2606 2009-05-25  Richard Guenther  <rguenther@suse.de>
2607
2608         PR tree-optimization/36327
2609         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
2610         callback for reference translation or lookup at the point of may-defs.
2611         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
2612         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
2613         for union COMPONENT_REFs.
2614         (vn_reference_lookup_3): New callback.  Lookup from memset
2615         and CONSTRUCTOR assignment, translate through struct copies.
2616         (vn_reference_lookup_pieces): Make sure to not free the
2617         passed operands array.  Adjust walk_non_aliased_vuses call.
2618         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
2619         make sure we do not leak memory.
2620
2621 2009-05-25  Richard Guenther  <rguenther@suse.de>
2622
2623         * tree-ssa-alias.h (dump_points_to_solution): Declare.
2624         * tree-inline.c (expand_call_inline): Reset the escaped and
2625         callused solutions.
2626         * tree-ssa-structalias.c (pass_build_ealias): New.
2627         * tree-pass.h (pass_build_ealias): Declare.
2628         * passes.c (init_optimization_passes): Add PTA during 
2629         early optimizations.
2630         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
2631         and CALLUSED solutions.
2632         (dump_points_to_solution): New function, split out from ...
2633         (dump_points_to_info_for): ... here.
2634         * tree-parloops.c (parallelize_loops): Reset the escaped and
2635         callused solutions.
2636
2637 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2638
2639         PR bootstrap/40027
2640         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
2641         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
2642
2643 2009-05-25  Ira Rosen  <irar@il.ibm.com>
2644
2645         PR tree-optimization/40238
2646         * tree-vect-stmts.c (vect_init_vector): Insert initialization
2647         statements after basic block's labels.
2648         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
2649         to free the allocated memory.
2650
2651 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
2652
2653         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
2654         return address with a USE.
2655
2656 2009-05-24  Richard Guenther  <rguenther@suse.de>
2657
2658         PR middle-end/40233
2659         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
2660         array type from the main variant of the inner type.
2661
2662 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
2663
2664         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
2665         definition to bool (from int) to un-break build.
2666         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
2667
2668 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
2669
2670         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
2671         discard_stmt_changes): Delete.
2672         * tree-ssa-operands.c (scb_stack): Delete.
2673         (init_ssa_operands): Do not initialize it.
2674         (fini_ssa_operands): Do not free it.
2675         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
2676
2677         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
2678         update_stmt, remove the others.  Fix comments.
2679         * tree-dfa.c (optimize_stack_restore): Likewise.
2680         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
2681         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
2682         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
2683         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
2684         Likewise.
2685         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
2686         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
2687         (dom_opt_finalize_block): Likewise, adjusting access to
2688         stmts_to_rescan.
2689         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
2690         (stmts_to_rescan): Change item type to gimple.
2691         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
2692
2693 2009-05-24  Ira Rosen  <irar@il.ibm.com>
2694
2695         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
2696         * tree-pass.h (pass_slp_vectorize): New pass.
2697         * params.h (SLP_MAX_INSNS_IN_BB): Define.
2698         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
2699         * tree-vectorizer.c (timevar.h): Include.
2700         (user_vect_verbosity_level): Declare.
2701         (vect_location): Fix comment.
2702         (vect_set_verbosity_level): Update user_vect_verbosity_level
2703         instead of vect_verbosity_level.
2704         (vect_set_dump_settings): Add an argument. Ignore user defined
2705         verbosity if dump flags require higher level of verbosity. Print to
2706         stderr only for loop vectorization.
2707         (vectorize_loops): Update call to vect_set_dump_settings.
2708         (execute_vect_slp): New function.
2709         (gate_vect_slp): Likewise.
2710         (struct gimple_opt_pass pass_slp_vectorize): New.
2711         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
2712         access its members.
2713         (vec_info_for_bb): New function.
2714         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
2715         (VECTORIZATION_ENABLED): New macro.
2716         (SLP_ENABLED, SLP_DISABLED): Likewise.
2717         (vect_is_simple_use): Add bb_vec_info argument.
2718         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
2719         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2720         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2721         vect_schedule_slp, vect_analyze_slp): Likewise.
2722         (vect_analyze_stmt): Add slp_tree argument.
2723         (find_bb_location): Declare.
2724         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2725         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
2726         (vect_analyze_loop_operations, vect_analyze_loop,
2727         get_initial_def_for_induction, vect_create_epilog_for_reduction,
2728         vect_finalize_reduction, vectorizable_reduction,
2729         vectorizable_live_operation, vect_transform_loop): Likewise.
2730         * tree-data-ref.c (dr_analyze_innermost): Update comment,
2731         skip evolution analysis if analyzing a basic block.
2732         (dr_analyze_indices): Likewise.
2733         (initialize_data_dependence_relation): Skip the test whether the
2734         object is invariant for basic blocks.
2735         (compute_all_dependences): Skip dependence analysis for data
2736         references in basic blocks.
2737         (find_data_references_in_stmt): Don't fail in case of invariant
2738         access in basic block.
2739         (find_data_references_in_bb): New function.
2740         (find_data_references_in_loop): Move code to
2741         find_data_references_in_bb and add a call to it.
2742         (compute_data_dependences_for_bb): New function.
2743         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
2744         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
2745         that STEP is 0.
2746         (vect_analyze_data_ref_dependence): Check for interleaving in case of
2747         unknown dependence in basic block and fail in case of dependence in
2748         basic block.
2749         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
2750         dependence instances from either loop or basic block vectorization
2751         info.
2752         (vect_compute_data_ref_alignment): Check if it is loop vectorization
2753         before calling nested_in_vect_loop_p.
2754         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
2755         dependence instances from either loop or basic block vectorization
2756         info.
2757         (vect_verify_datarefs_alignment): Likewise.
2758         (vect_enhance_data_refs_alignment): Adjust function calls.
2759         (vect_analyze_data_refs_alignment): Likewise.
2760         (vect_analyze_group_access): Fix printing. Skip different checks if
2761         DR_STEP is 0. Keep strided stores either in loop or basic block
2762         vectorization data structure. Fix indentation.
2763         (vect_analyze_data_ref_access): Fix comments, allow zero step in
2764         basic blocks.
2765         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
2766         dependence instances from either loop or basic block vectorization
2767         info.
2768         (vect_analyze_data_refs): Update comment. Call
2769         compute_data_dependences_for_bb to analyze basic blocks.
2770         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
2771         case of loop vectorization. In case of basic block vectorization use
2772         data-ref itself as a base.
2773         (vect_create_data_ref_ptr): In case of basic block vectorization:
2774         don't advance the pointer, add new statements before the current
2775         statement.  Adjust function calls.
2776         (vect_supportable_dr_alignment): Support only aligned accesses in
2777         basic block vectorization.
2778         * common.opt (ftree-slp-vectorize): New flag.
2779         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
2780         (vect_pattern_recog_1): Likewise.
2781         * tree-vect-stmts.c (process_use): Likewise.
2782         (vect_init_vector): Add new statements in the beginning of the basic
2783         block in case of basic block SLP.
2784         (vect_get_vec_def_for_operand): Adjust function calls.
2785         (vect_finish_stmt_generation): Likewise.
2786         (vectorizable_call): Add assert that it is loop vectorization, adjust
2787         function calls.
2788         (vectorizable_conversion, vectorizable_assignment): Likewise.
2789         (vectorizable_operation): In case of basic block SLP, take
2790         vectorization factor from statement's type and skip the relevance
2791         check. Adjust function calls.
2792         (vectorizable_type_demotion): Add assert that it is loop
2793         vectorization, adjust function calls.
2794         (vectorizable_type_promotion): Likewise.
2795         (vectorizable_store): Check for outer loop only in case of loop
2796         vectorization. Adjust function calls. For basic blocks, skip the
2797         relevance check and don't advance pointers.
2798         (vectorizable_load): Likewise.
2799         (vectorizable_condition): Add assert that it is loop vectorization,
2800         adjust function calls.
2801         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
2802         that it is not reduction, get vector type, call only supported
2803         functions, skip loop specific parts.
2804         (vect_transform_stmt): Check for outer loop only in case of loop
2805         vectorization.
2806         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
2807         (vect_is_simple_use): Fix comment, add new argument, fix conditions
2808         for external definition.
2809         * passes.c (pass_slp_vectorize): New pass.
2810         * tree-vect-slp.c (find_bb_location): New function.
2811         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
2812         check for patterns only in loops.
2813         (vect_build_slp_tree): Add argument, adjust function calls, fail in
2814         case of multiple types in basic block SLP.
2815         (vect_mark_slp_stmts_relevant): New function.
2816         (vect_supported_load_permutation_p): Fix comment.
2817         (vect_analyze_slp_instance): Add argument. In case of basic block
2818         SLP, take vectorization factor from statement's type, check that
2819         unrolling factor is 1. Adjust function call. Save SLP instance in
2820         either loop or basic block vectorization structure. Return FALSE,
2821         if SLP failed.
2822         (vect_analyze_slp): Add argument. Get strided stores groups from
2823         either loop or basic block vectorization structure. Return FALSE
2824         if basic block SLP failed.
2825         (new_bb_vec_info): New function.
2826         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
2827         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
2828         (vect_schedule_slp): Add argument. Get SLP instances from either
2829         loop or basic block vectorization structure. Set vectorization factor
2830         to be 1 for basic block SLP.
2831         (vect_slp_transform_bb): New function.
2832         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
2833
2834 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
2835
2836         * final.c (shorten_branches): Do not align labels for jump tables.
2837         (final_scan_insn): Use JUMP_TABLE_DATA_P.
2838
2839 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
2840
2841         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
2842         Remove outdated reference to flow.c and fix nits.
2843         * doc/gccint.texi: Tweak RTL description.
2844         * doc/rtl.texi: Likewise.
2845
2846 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
2847
2848         * config/avr/avr.c: Change my email address.
2849         * config/avr/avr.h: Likewise.
2850         * config/avr/avr.md: Likewise.
2851         * config/avr/avr-protos.h: Likewise.
2852         * config/avr/libgcc.S: Likewise.
2853
2854 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
2855
2856         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
2857         (spu_split_load, spu_split_store): Change return type to int.
2858         (spu_split_convert): Declare.
2859         * config/spu/predicates.md (spu_mem_operand): Remove.
2860         (spu_mov_operand): Update.
2861         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
2862         * config/spu/spu.c (regno_aligned_for_load): Remove.
2863         (reg_aligned_for_addr, spu_expand_load): Define.
2864         (spu_expand_extv): Reimplement and handle MEM.
2865         (spu_expand_insv): Handle MEM.
2866         (spu_sched_reorder): Handle insn's with length 0.
2867         (spu_legitimate_address_p): Reimplement.
2868         (store_with_one_insn_p): Return TRUE for any mode with size
2869         larger than 16 bytes.
2870         (address_needs_split): Define.
2871         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
2872         operands.
2873         (spu_convert_move): Define.
2874         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
2875         (spu_split_store): Change all MEM's to TImode.
2876         (spu_init_expanders): Preallocate registers that correspond to
2877         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
2878         mark_reg_pointer.
2879         (spu_split_convert): Define.
2880         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
2881         (_move<mode>, _movdi, _movti): Update predicate and condition.
2882         (load, store): Change to define_split.
2883         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
2884         extend<mode>ti2.
2885         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
2886         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
2887         define_insn_and_split of lshr<mode>3.
2888         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
2889         (<v>ashr<mode>3_imm): Define.
2890         (extv, extzv, insv): Allow MEM operands.
2891         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
2892         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
2893         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
2894         (_spu_convert2): Change to define_insn_and_split and remove the
2895         corresponding define_peephole2.
2896         (stack_protect_set, stack_protect_test, stack_protect_test_si):
2897         Change predicates to memory_operand.
2898
2899 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
2900
2901         * config/arm/thumb2.md: Add 16-bit multiply instructions.
2902
2903 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2904
2905         PR tree-optimization/40219
2906         * tree.c (iterative_hash_expr): Make sure the builtin function is
2907         a normal builtin function and not a front end or back end builtin
2908         before indexing into the built_in_decls array.
2909
2910 2009-05-22  Richard Guenther  <rguenther@suse.de>
2911
2912         PR middle-end/38964
2913         * alias.c (write_dependence_p): Do not use TBAA for answering
2914         anti-dependence or output-dependence.
2915         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
2916         (emit_pointer_definition): Remove.
2917         (emit_alias_warning): Likewise.
2918         (find_what_var_points_to): Remove TBAA pruning code.
2919         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
2920         violations.
2921         (compute_points_to_sets): Remove code computing the set of
2922         dereferenced pointers.
2923         * tree-data-ref.c (dr_may_alias_p): Properly use the split
2924         oracle for querying anti and output dependencies.
2925         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
2926         if TBAA may be applied.
2927         (refs_anti_dependent_p): New function.
2928         (refs_output_dependent_p): Likewise.
2929         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
2930         (refs_output_dependent_p): Likewise.
2931         * doc/tree-ssa.texi (Memory model): New section.
2932         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2933         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2934         * cfgexpand.c (expand_gimple_basic_block): Do not handle
2935         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
2936         * expr.c (expand_expr_real_1): Likewise.
2937         * gimple-low.c (lower_stmt): Likewise.
2938         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
2939         (dump_gimple_cdt): Remove.
2940         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2941         (gimple_size): Likewise.
2942         (walk_gimple_op): Likewise.
2943         (is_gimple_stmt): Likewise.
2944         (walk_stmt_load_store_addr_ops): Likewise.
2945         (gimple_build_cdt): Remove.
2946         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
2947         * gimple.h (gimple_cdt_new_type): Remove.
2948         (gimple_cdt_new_type_ptr): Likewise.
2949         (gimple_cdt_set_new_type): Likewise.
2950         (gimple_cdt_location): Likewise.
2951         (gimple_cdt_location_ptr): Likewise.
2952         (gimple_cdt_set_location): Likewise.
2953         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2954         * tree-cfg.c (remove_useless_stmts_1): Do not handle
2955         GIMPLE_CHANGE_DYNAMIC_TYPE.
2956         (verify_types_in_gimple_stmt): Likewise.
2957         * tree-inline.c (estimate_num_insns): Likewise.
2958         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
2959         (copy_decl_to_var): Likewise.
2960         (copy_result_decl_to_var): Likewise.
2961         * tree-pretty-print.c (dump_generic_node): Do not handle
2962         CHANGE_DYNAMIC_TYPE_EXPR.
2963         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
2964         * tree-ssa-operands.c (get_expr_operands): Likewise.
2965         * tree-ssa-structalias.c (struct variable_info): Remove
2966         no_tbaa_pruning member.
2967         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
2968         (unify_nodes): Do not copy it.
2969         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
2970         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
2971         (set_uids_in_ptset): Do not check it.
2972         (find_what_var_points_to): Likewise.
2973         (compute_tbaa_pruning): Remove.
2974         (compute_points_to_sets): Do not call it.
2975         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
2976         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
2977         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
2978         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
2979         (DECL_NO_TBAA_P): Likewise.
2980         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
2981         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
2982         (expand_omp_atomic_pipeline): Do not set it.
2983         * print-tree.c (print_node): Do not dump it.
2984         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
2985         redundant check.
2986
2987 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
2988
2989         PR target/39856
2990         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
2991         for clobber.
2992
2993 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
2994
2995         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
2996         non-external.
2997
2998 2009-05-22  Ben Elliston  <bje@au.ibm.com>
2999
3000         * Makefile.in (bversion.h, s-bversion): New targets.
3001         (TOPLEV_H): Add bversion.h.
3002         * toplev.h: Include "bversion.h".
3003         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3004         the __format__ attribute only if compiling with the same version
3005         of GCC as the sources (the "build version").
3006
3007 2009-05-22  Ben Elliston  <bje@au.ibm.com>
3008
3009         * c-format.c (handle_format_attribute): Fix comment typo.
3010
3011 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
3012
3013         PR target/37846
3014         * config/ia64/ia64.opt (mfused-madd): New.
3015         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3016         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3017         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3018         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3019         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3020         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3021         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3022         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
3023         instruction if !TARGET_FUSED_MADD.
3024         (fpma, fpms): Remove colon from name.
3025
3026 2009-05-22  Richard Guenther  <rguenther@suse.de>
3027
3028         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3029         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
3030         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3031         TARGET_MEM_REF.
3032         (create_expression_by_pieces): Only convert if necessary.
3033         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3034         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3035
3036 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
3037
3038         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3039         regular pattern from a template and rename it ...
3040         (*extzv_truncsi_exts): ... to this.
3041
3042 2009-05-21  Richard Guenther  <rguenther@suse.de>
3043
3044         * cgraph.h (struct cgraph_node): Remove inline_decl member.
3045         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3046         (cgraph_default_inline_p): Likewise.
3047         (cgraph_decide_inlining_incrementally): Likewise.
3048
3049 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3050             Uros Bizjak  <ubizjak@gmail.com>
3051
3052         * config/i386/cpuid.h (bit_MOVBE): New.
3053
3054         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3055
3056         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3057         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3058         (ix86_handle_option): Handle OPT_mmovbe.
3059         (ix86_target_string): Add -mmovbe.
3060         (pta_flags): Add PTA_MOVBE.
3061         (processor_alias_table): Add PTA_MOVBE to "atom".
3062         (override_options): Handle PTA_MOVBE.
3063
3064         * config/i386/i386.h (TARGET_MOVBE): New.
3065
3066         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3067         (*bswapsi_movbe): New.
3068         (*bswapdi_movbe): Likewise.
3069         (bswapdi2): Renamed to ...
3070         (*bswapdi_1): This.
3071         (bswapdi2): New expander.
3072
3073         * config/i386/i386.opt (mmovbe): New.
3074
3075         * doc/invoke.texi: Document -mmovbe.
3076
3077 2009-05-21  Taras Glek  <tglek@mozilla.com>
3078
3079         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3080         * gcc-plugin.h (plugin_init): Updated signature.
3081         * gcc-plugin.h (plugin_name_args): Moved to this header.
3082         * doc/plugins.texi (plugin_init): Updated documention to reflect
3083         API change.
3084         * doc/plugins.texi (plugin_name_args): Added to documention.
3085
3086 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
3087
3088         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3089         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3090
3091 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
3092
3093         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3094         JUMP_TABLE_DATA_P predicates where applicable.
3095         * config/i386/predicates.md: Ditto.
3096         * config/i386/sse.md: Ditto.
3097
3098 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
3099
3100         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3101         operand2 -128 override length_immediate attribute to 1.
3102         * config/i386/predicates.md (constm128_operand): New predicate.
3103
3104         * config/i386/i386.c (memory_address_length): Handle %r12
3105         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
3106         also check REGNO.
3107         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3108         mode look through optional ZERO_EXTEND and SUBREG.
3109         * config/i386/i386.md (R12_REG): New define_constant.
3110         (prefix_data16): For sse unit set also for MODE_TI insns.
3111         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
3112         insns set if operand 1 is ext_QIreg_operand.
3113         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
3114         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3115         immediate.
3116         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3117         mode from MODE_DI to MODE_SI.
3118         (movdi_1_rex64): Override modrm and length_immediate attributes
3119         only for movabs (TYPE_IMOV, alternative 2).
3120         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3121         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3122         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3123         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3124         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3125         prefix_rex attribute if DImode.
3126         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3127         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3128         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3129         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3130         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3131         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3132         Likewise.  For TYPE_IMOV clear length_immediate attribute.
3133         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3134         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3135         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3136         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3137         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3138         or one operand TYPE_ISHIFT.
3139         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3140         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3141         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3142         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3143         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3144         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3145         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3146         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3147         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3148         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3149         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3150         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3151         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3152         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3153         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3154         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3155         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3156         set mode attribute, don't override length attribute.
3157         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3158         to 1.
3159         (return_internal_long): Set length attribute to 2 instead of 1.
3160         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3161         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3162         prefix_rex attribute.
3163         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3164         New predicates.
3165         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
3166
3167 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3168
3169         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3170
3171 2009-05-20  Ian Lance Taylor  <iant@google.com>
3172
3173         * tree.c (build_tree_list_vec_stat): New function.
3174         (ctor_to_vec): New function.
3175         (build_nt_call_vec): New function.
3176         (build_call_array): Change args to be a const pointer.
3177         (build_call_vec): New function.
3178         * tree.h (build_nt_call_vec): Declare.
3179         (build_tree_list_vec_stat): Declare.
3180         (build_tree_list_vec): Define.
3181         (build_call_array): Update declaration.
3182         (build_call_vec): Declare.
3183         (ctor_to_vec): Declare.
3184         * c-common.c (tree_vector_cache): New static variable.
3185         (make_tree_vector): New function.
3186         (release_tree_vector): New function.
3187         (make_tree_vector_single): New function.
3188         (make_tree_vector_copy): New function.
3189         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3190         (make_tree_vector_single, make_tree_vector_copy): Declare.
3191         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3192         (c_parser_expr_list): Don't manage cache here, instead call
3193         make_tree_vector.
3194         (c_parser_release_expr_list): Remove static function.
3195         (c_parser_vec_to_tree_list): Remove static function.
3196         (c_parser_attributes): Call build_tree_list_vec instead of
3197         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
3198         c_parser_release_expr_list.
3199         (c_parser_postfix_expression_after_primary): Likewise.
3200         (c_parser_objc_keywordexpr): Likewise.
3201
3202 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3203
3204         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3205         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3206         TARGET_CONVERT_TO_TYPE.
3207         * hooks.c (hook_tree_const_tree_null): Define.
3208         * hooks.h (hook_tree_const_tree_null): Declare.
3209         * target.h (struct gcc_target):  Add invalid_parameter_type,
3210         invalid_return_type, promoted_type, and convert_to_type fields.
3211         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3212         (TARGET_INVALID_RETURN_TYPE): Define.
3213         (TARGET_PROMOTED_TYPE): Define.
3214         (TARGET_CONVERT_TO_TYPE): Define.
3215         (TARGET_INITIALIZER): Update for new fields.
3216         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3217         (grokparms): Check targetm.invalid_parameter_type.
3218         * c-typeck.c (default_conversion): Check targetm.promoted_type.
3219         * c-convert.c (convert): Check targetm.convert_to_type.
3220
3221 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
3222
3223         * config/mips/mips.md (*extenddi_truncate<mode>,
3224         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
3225         defintions.
3226         (*extendhi_truncateqi): New define_insn_and_sptit.
3227
3228 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
3229
3230         PR middle-end/40204
3231         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
3232         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
3233
3234 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3235
3236         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
3237         the operand of VIEW_CONVERT_EXPR.
3238
3239 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
3240
3241         * config/i386/driver-i386.c (host_detect_local_cpu): Check
3242         extended family and model for Intel processors.  Support Intel Atom.
3243
3244 2009-05-20  Olivier Hainque  <hainque@adacore.com>
3245
3246         * gstab.h (stab_code_type): Define, to be used instead of the
3247         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
3248         notice.
3249         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
3250         occurrences by stab_code_type.
3251         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
3252
3253 2009-05-20  Martin Jambor  <mjambor@suse.cz>
3254
3255         * tree-flow.h (insert_edge_copies_seq): Undeclare.
3256         (sra_insert_before): Likewise.
3257         (sra_insert_after): Likewise.
3258         (sra_init_cache): Likewise.
3259         (sra_type_can_be_decomposed_p): Likewise.
3260         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
3261         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
3262         (sra_insert_before): Likewise.
3263         (sra_insert_after): Likewise.
3264         (sra_init_cache): Likewise.
3265         (insert_edge_copies_seq): Made static and moved upwards.
3266
3267         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
3268         case.
3269
3270         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
3271
3272         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
3273         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
3274         simple copies.
3275
3276 2009-05-20  Richard Guenther  <rguenther@suse.de>
3277
3278         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3279         with mismatched comparison modes.
3280
3281 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3282
3283         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
3284         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
3285         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
3286         with shifts for Thumb2.
3287         (orsi_notsi): New for orn.
3288         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
3289         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
3290         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
3291         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
3292         Don't invert remainder for IOR.
3293         
3294 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
3295
3296         PR tree-optimization/40087
3297         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
3298         number_of_iterations_ne): Rename never_infinite argument.
3299         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
3300         number_of_iterations_le): Handle pointer-type ivs when
3301         exit_must_be_taken is false.
3302         (number_of_iterations_cond):  Do not always assume that
3303         exit_must_be_taken if the control variable is a pointer.
3304
3305 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3306
3307         * c-typeck.c (build_binary_op): Allow % on integal vectors.
3308         * doc/extend.texi (Vector Extension): Document that % is allowed too.
3309
3310 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
3311
3312         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
3313         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
3314
3315 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3316
3317         PR c/40172
3318         * c.opt (Wlogical-op): Disabled by default.
3319         * c-opt (c_common_post_options): Do not enable Wlogical-op with
3320         Wextra.
3321         * doc/invoke.texi (Wlogical-op): Likewise.
3322         
3323 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
3324
3325         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
3326         into CASE_CONVERT.
3327         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
3328         Propagate the type of the first operand.
3329         <ASSERT_EXPR>: Simplify.
3330         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
3331         Rewrite using the RHS code as discriminant.
3332         <NOP_EXPR>: Turn into CASE_CONVERT.
3333         <PLUS_EXPR>: Propagate the type of the first operand.
3334
3335 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
3336
3337         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
3338         (ia64_dconst_0_375): New.
3339         * config/ia64/ia64.c (ia64_override_options): Remove
3340         -minline-sqrt-min-latency warning.
3341         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
3342         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
3343         * config/ia64/ia64.md (*sqrt_approx): Remove.
3344         (sqrtsf2): Remove #if 0.
3345         (sqrtsf2_internal_thr): Rewrite and move to div.md.
3346         (sqrtdf): Remove assert.
3347         (sqrtdf2_internal_thr): Rewrite and move to div.md.
3348         (sqrtxf2): Remove #if 0.
3349         (sqrtxf2_internal_thr): Rewrite and move to div.md.
3350         * div.md (sqrt_approx_rf): New.
3351         (sqrtsf2_internal_thr): New implementation.
3352         (sqrtsf2_internal_lat): New.
3353         (sqrtdf2_internal_thr: New implementation.
3354         (sqrtxf2_internal): New implementation.
3355
3356 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
3357             Hans-Peter Nilsson  <hp@axis.com>
3358
3359         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
3360         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
3361         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
3362         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
3363         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
3364         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
3365         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
3366         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
3367         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
3368         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
3369         * c-common.c: ...from here.
3370
3371 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3372
3373         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
3374
3375 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3376
3377         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
3378
3379 2009-05-19  Ben Elliston  <bje@au.ibm.com>
3380
3381         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
3382         assignments with memcpy calls.
3383         (add_fdes): Likewise.
3384         (binary_search_unencoded_fdes): Likewise.
3385         (linear_search_fdes): Eliminate type puns.
3386         
3387 2009-05-19  Richard Guenther  <rguenther@suse.de>
3388
3389         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
3390         not falsely claim to have propagated into all uses.
3391
3392 2009-05-19  Ben Elliston  <bje@au.ibm.com>
3393
3394         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
3395         version to v3.0.
3396
3397 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3398
3399         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
3400         * config/sh/sh.c (sh_legitimate_address_p): Make static.
3401         (TARGET_LEGITIMATE_ADDRESS_P): New.
3402         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3403         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3404         
3405 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
3406
3407         PR debug/40109
3408         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
3409         child of the containing namespace's DIE.
3410
3411 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
3412
3413         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
3414         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
3415         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
3416         extend patterns.
3417
3418 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
3419
3420         PR target/39942
3421         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
3422         gen_align with gen_pad.
3423         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
3424         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
3425
3426         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
3427         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
3428
3429         * config/i386/i386.md (align): Renamed to ...
3430         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
3431         ASM_OUTPUT_MAX_SKIP_PAD.
3432
3433 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
3434
3435         * config.gcc: Fix variable syntax.
3436
3437         PR target/39531
3438         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
3439         before calling exact_log2.
3440         (output_iorsi3): Likewise.
3441         (output_xorsi3): Likewise.
3442
3443 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3444
3445         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
3446         for the none zero constant operand except for EQ and NE
3447         comprisons even when the first operand is R0.
3448
3449 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3450
3451         * config/s390/2064.md: Remove trailing whitespaces.
3452         * config/s390/2084.md: Likewise.
3453         * config/s390/constraints.md: Likewise.
3454         * config/s390/fixdfdi.h: Likewise.
3455         * config/s390/libgcc-glibc.ver: Likewise.
3456         * config/s390/s390-modes.def: Likewise.
3457         * config/s390/s390-protos.h: Likewise.
3458         * config/s390/s390.c: Likewise.
3459         * config/s390/s390.h: Likewise.
3460         * config/s390/s390.md: Likewise.
3461         * config/s390/tpf-unwind.h: Likewise.
3462
3463 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3464
3465         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
3466
3467 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3468
3469         M68K TLS support.
3470         * configure.ac (m68k-*-*): Check if binutils support TLS.
3471         * configure: Regenerate.
3472         * config/m68k/predicates.md (symbolic_operand): Extend comment.
3473         * config/m68k/constraints.md (Cu): New constraint.
3474         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
3475         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
3476         (movsi): Handle TLS symbols.
3477         (addsi3_5200): Handle XTLS symbols, indent.
3478         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
3479         (m68k_tls_reference_p): Declare.
3480         (m68k_legitimize_address): Declare.
3481         (m68k_unwrap_symbol): Declare.
3482         * config/m68k/m68k.opt (mxtls): New option.
3483         * config/m68k/m68k.c (ggc.h): Include.
3484         (m68k_output_dwarf_dtprel): Implement hook.
3485         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
3486         (m68k_expand_prologue): Load GOT pointer when function needs it.
3487         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
3488         (m68k_legitimate_constant_address_p): Same.
3489         (m68k_decompose_address): Handle TLS references.
3490         (m68k_get_gp): New static function.
3491         (enum m68k_reloc): New contants.
3492         (TLS_RELOC_P): New macro.
3493         (m68k_wrap_symbol): New static function.
3494         (m68k_unwrap_symbol): New function.
3495         (m68k_final_prescan_insn_1): New static function.
3496         (m68k_final_prescan_insn): New function.
3497         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
3498         functions.
3499         (legitimize_pic_address): Handle TLS references..
3500         (m68k_tls_get_addr, m68k_get_tls_get_addr)
3501         (m68k_libcall_value_in_a0_p)
3502         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
3503         (m68k_call_m68k_read_tp): Helper variables and functions for ...
3504         (m68k_legitimize_tls_address): Handle TLS references.
3505         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
3506         New functions.
3507         (m68k_legitimize_address): Handle TLS symbols.
3508         (m68k_get_reloc_decoration): New static function.
3509         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
3510         UNSPEC_RELOC32.
3511         (m68k_output_dwarf_dtprel): Implement hook.
3512         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
3513         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
3514         m68k_call_* routines.
3515         (sched_attr_op_type): Handle TLS symbols.
3516         (gt-m68k.h): Include.
3517         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
3518         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
3519
3520 2009-05-18  Martin Jambor  <mjambor@suse.cz>
3521
3522         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
3523         (visit_store_addr_for_mod_analysis): New function.
3524         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
3525         (determine_cst_member_ptr): Use gimple_assign_single_p.
3526         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
3527         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
3528         operands.  Don't check number of operands of a NOP_EXPR.
3529
3530 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
3531
3532         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
3533
3534 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3535
3536         PR c/40172
3537         * c-common.c (warn_logical_operator): Don't warn if one of
3538         expression isn't always true or false.
3539
3540 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
3541
3542         * config/i386/biarch32.h: New file.
3543         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
3544
3545 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
3546
3547         * config/mips/mips.md (*zero_extend<mode>_trunchi,
3548         *zero_extend<mode>_truncqi): Merge these into ...
3549         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
3550         Name the pattern following this as *zero_extendhi_truncqi.
3551
3552 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
3553
3554         PR middle-end/39301
3555         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
3556         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
3557         (output_info): Make field HOST_WIDEST_INT.
3558         (print_statistics): Use HOST_WIDEST_INT_PRINT.
3559         (dump_bitmat_statistics): Same.
3560
3561 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
3562
3563         * config.gcc (use_gcc_stdint):  Set to wrap.
3564         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
3565         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
3566         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
3567         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
3568         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
3569         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
3570         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
3571         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
3572
3573 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
3574
3575         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
3576         tune_64.
3577         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
3578         Move definitions earlier.
3579         (OPT_ARCH64, OPT_ARCH32): Define.
3580         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
3581         and tune_64.
3582
3583 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
3584
3585         PR target/40153
3586         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
3587         implies.
3588
3589 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
3590
3591         * arm.md (movdi2): Copy non-reg values to DImode registers.
3592
3593 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
3594
3595         PR target/39942
3596         * final.c (label_to_max_skip): New function.
3597         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
3598         CODE_LABEL_NUMBER <= max_labelno.
3599         * output.h (label_to_max_skip): New prototype.
3600         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
3601         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
3602         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
3603         Handle CODE_LABELs with >= 16 byte alignment or with
3604         max_skip == (1 << align) - 1.
3605         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
3606         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
3607
3608         PR target/39942
3609         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
3610         .p2align 3 if MAX_SKIP is smaller than 7.
3611         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
3612
3613 2009-05-15  Ian Lance Taylor  <iant@google.com>
3614
3615         * alias.c (struct alias_set_entry_d): Rename from struct
3616         alias_set_entry.  Change all uses.
3617         * except.c (struct call_site_record_d): Rename from struct
3618         call_site_record.  Change all uses.
3619         * except.h (struct eh_region_d): Rename from struct eh_region.
3620         Change all uses.
3621         * gcse.c (struct hash_table_d): Rename from struct hash_table.
3622         Change all uses.
3623         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
3624         ivtype_map_elt.  Change all uses.
3625         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
3626         Change all uses.
3627         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
3628         * graphite.h (struct name_tree_d): Rename from struct name_tree.
3629         Change all uses.
3630         (struct sese_d): Rename from struct sese.  Change all uses.
3631         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
3632         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
3633         * optabs.h (struct optab_d): Rename from struct optab.  Change all
3634         uses.
3635         (struct convert_optab_d): Rename from struct convert_optab.
3636         Change all uses.
3637         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
3638         ipa_opt_pass.  Change all uses.
3639         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
3640         all uses.
3641
3642         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
3643         defined as a typedef.
3644         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
3645         defined as a tag.
3646
3647 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3648
3649         PR 16302
3650         * fold-const.c (make_range,build_range_check,merge_ranges): Move
3651         declaration to...
3652         (merge_ranges): Returns bool. 
3653         * tree.h (make_range): .. to here.
3654         (build_range_check): Likewise.
3655         (merge_ranges): Likewise. Renamed from merge_ranges.
3656         * c-typeck.c (parser_build_binary_op): Update calls to
3657         warn_logical_operator.
3658         * c-common.c (warn_logical_operator): Add new warning.
3659         * c-common.h (warn_logical_operator): Update declaration.
3660         
3661 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3662
3663         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
3664         
3665 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3666
3667         * doc/install.texi: Document MPC requirements, flags etc.
3668
3669         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
3670         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
3671         Evaluate constant arguments.
3672         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
3673         (fold_builtin_1): Likewise, also evaluate constant arguments.
3674         Remove superfluous break.
3675         (do_mpc_ckconv): New.
3676         * real.h: Include mpc.h.
3677         * toplev.c (print_version): Output MPC version info if available.
3678
3679 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
3680
3681         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
3682
3683 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3684
3685         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
3686         only once.
3687
3688 2009-05-15  Jan Hubicka  <jh@suse.cz>
3689
3690         * doc/invoke.texi (max-early-inliner-iterations): New flag.
3691         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
3692         (try_inline): Fix return value.
3693         (cgraph_decide_inlining_incrementally): Honor new value.
3694         (cgraph_early_inlining): Handle indirect inlining.
3695         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
3696
3697 2009-05-15  Jan Hubicka  <jh@suse.cz>
3698
3699         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
3700         * cgraphunit.c (cgraph_finalize_function): Set it.
3701         (cgraph_expand_function): Use it.
3702
3703 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
3704
3705         * real.c (encode_ieee_half): Define.
3706         (decode_ieee_half): Define.
3707         (ieee_half_format): Define.
3708         (arm_half_format): Define.
3709         * real.h (ieee_half_format): Declare.
3710         (arm_half_format): Declare.
3711
3712 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
3713
3714         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
3715         swapped, and reversed optabs exist before trying to use them.
3716
3717 2009-05-15  Paul Brook  <paul@codesourcery.com>
3718             Sandra Loosemore  <sandra@codesourcery.com>
3719
3720         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
3721         loads.  Allow PRE_DEC.
3722         (output_move_neon): Handle PRE_DEC.
3723         (arm_print_operand): Add 'A' for neon structure loads.
3724         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
3725         * config/arm/neon.md (neon_mov): Update comment.
3726         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
3727         calls.
3728         (Um): New constraint.
3729
3730 2009-05-15  Jan Hubicka  <jh@suse.cz>
3731
3732         Revert the following patch until testsuite fallout is fixed:
3733         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3734         * cgraph.h (struct inline_summary): New filed self_wize,
3735         size_inlining_benefit, self_time and time_inlining_benefit.
3736         (struct cgraph_global_info): Replace insns by time ans size fields.
3737         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3738         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3739         (ipcp_update_callgraph): Do not touch function bodies.
3740         * ipa-inline.c: Include except.h
3741         (MAX_TIME): New constant.
3742         (overall_insns): Remove
3743         (overall_size, max_benefit): New static variables.
3744         (cgraph_estimate_time_after_inlining): New function.
3745         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3746         (cgraph_clone_inlined_nodes): Update size.
3747         (cgraph_mark_inline_edge): Update size.
3748         (cgraph_estimate_growth): Use size info.
3749         (cgraph_check_inline_limits): Check size.
3750         (cgraph_default_inline_p): Likewise.
3751         (cgraph_edge_badness): Compute badness based on benefit and size cost.
3752         (cgraph_decide_recursive_inlining): Check size.
3753         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3754         and times.
3755         (cgraph_decide_inlining): Likewise.
3756         (cgraph_decide_inlining_incrementally): Likewise; honor
3757         PARAM_EARLY_INLINING_INSNS.
3758         (likely_eliminated_by_inlining_p): New predicate.
3759         (estimate_function_body_sizes): New function.
3760         (compute_inline_parameters): Use it.
3761         * except.c (must_not_throw_labels): New function.
3762         * except.h (must_not_throw_labels): Declare.
3763         * tree-inline.c (init_inline_once): Kill inlining_weigths
3764         * tree-ssa-structalias.c: Avoid uninitialized warning.
3765         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3766         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3767         (PARAM_INLINE_CALL_COST): Remove.
3768         (PARAM_EARLY_INLINING_INSNS): New.
3769
3770 2009-05-15  Richard Guenther  <rguenther@suse.de>
3771
3772         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
3773         not TODO_update_ssa.
3774
3775 2009-05-15  Richard Guenther  <rguenther@suse.de>
3776
3777         PR tree-optimization/39999
3778         * gimple.h (gimple_expr_type): Use the expression type looking
3779         through useless conversions.
3780         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
3781         (vn_nary_op_insert_stmt): Likewise.
3782         (simplify_binary_expression): Likewise.
3783
3784 2009-05-15  Richard Guenther  <rguenther@suse.de>
3785
3786         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3787         New options, enabled by default.
3788         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
3789         Document.
3790         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
3791         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
3792         * tree-ssa-structalias.c (gate_tree_pta): New function.
3793         (pass_build_alias): Use it.
3794
3795 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
3796
3797         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
3798         recurse on an invariant address if a conversion from a pointer
3799         type to a wider integer type is involved.
3800
3801 2009-05-15  Jan Hubicka  <jh@suse.cz>
3802
3803         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3804         * cgraph.h (struct inline_summary): New filed self_wize,
3805         size_inlining_benefit, self_time and time_inlining_benefit.
3806         (struct cgraph_global_info): Replace insns by time ans size fields.
3807         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3808         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3809         (ipcp_update_callgraph): Do not touch function bodies.
3810         * ipa-inline.c: Include except.h
3811         (MAX_TIME): New constant.
3812         (overall_insns): Remove
3813         (overall_size, max_benefit): New static variables.
3814         (cgraph_estimate_time_after_inlining): New function.
3815         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3816         (cgraph_clone_inlined_nodes): Update size.
3817         (cgraph_mark_inline_edge): Update size.
3818         (cgraph_estimate_growth): Use size info.
3819         (cgraph_check_inline_limits): Check size.
3820         (cgraph_default_inline_p): Likewise.
3821         (cgraph_edge_badness): Compute badness based on benefit and size cost.
3822         (cgraph_decide_recursive_inlining): Check size.
3823         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3824         and times.
3825         (cgraph_decide_inlining): Likewise.
3826         (cgraph_decide_inlining_incrementally): Likewise; honor
3827         PARAM_EARLY_INLINING_INSNS.
3828         (likely_eliminated_by_inlining_p): New predicate.
3829         (estimate_function_body_sizes): New function.
3830         (compute_inline_parameters): Use it.
3831         * except.c (must_not_throw_labels): New function.
3832         * except.h (must_not_throw_labels): Declare.
3833         * tree-inline.c (init_inline_once): Kill inlining_weigths
3834         * tree-ssa-structalias.c: Avoid uninitialized warning.
3835         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3836         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3837         (PARAM_INLINE_CALL_COST): Remove.
3838         (PARAM_EARLY_INLINING_INSNS): New.
3839         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
3840         (inline-call-cost): Remove.
3841         (early-inlining-insns): New.
3842
3843 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
3844
3845         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
3846         for bounds.
3847         (print_int_cst_bounds_in_octal_p): Likewise.
3848         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
3849         with subtypes.
3850         * dwarf2out.c (base_type_die): Likewise.
3851         (is_subrange_type): Delete.
3852         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
3853         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
3854         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
3855         if the destination type is boolean.
3856         (build_range_check): Do not special-case subtypes.
3857         (fold_sign_changed_comparison): Likewise.
3858         (fold_unary): Likewise.
3859         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
3860         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
3861         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
3862         * tree.c (subrange_type_for_debug_p): New predicate based on the
3863         former is_subrange_type.
3864         * tree.h (subrange_type_for_debug_p): Declare.
3865         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
3866         (convert_affine_scev): Remove call to above function.
3867         (chrec_convert_aggressive): Likewise.
3868         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
3869         false for conversions involving subtypes.
3870         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
3871         (vrp_val_min): Likewise.
3872         (needs_overflow_infinity): Likewise.
3873         (extract_range_from_unary_expr): Likewise.
3874
3875 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
3876
3877         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
3878         * config/frv/frv.c: Likewise.
3879         * config/s390/s390.c: Likewise.
3880         * config/sparc/sparc.h: Likewise.
3881         * config/i386/i386.h: Likewise.
3882         * config/i386/i386.c: Likewise.
3883         * config/crx/crx.c: Likewise.
3884         * config/m68hc11/m68hc11.h: Likewise.
3885         * config/iq2000/iq2000.c: Likewise.
3886         * config/mn10300/mn10300.h: Likewise.
3887         * config/mn10300/mn10300.c: Likewise.
3888         * config/m68k/m68k.c: Likewise.
3889         * config/rs6000/rs6000.c: Likewise.
3890         * config/rs6000/xcoff.h: Likewise.
3891         * config/rs6000/linux64.h: Likewise.
3892         * config/rs6000/sysv4.h: Likewise.
3893         * config/score/score3.c: Likewise.
3894         * config/score/score7.c: Likewise.
3895         * config/score/score.c: Likewise.
3896         * config/arm/arm.md: Likewise.
3897         * config/mips/mips.c: Likewise.
3898         * config/mips/mips.md: Likewise.
3899         * config/bfin/bfin.h: Likewise.
3900         * config/pa/pa.c: Likewise.
3901         * config/pa/constraints.md: Likewise.
3902
3903         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
3904         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
3905         * config/pdp11/pdp11.h: Use memory_address_p instead.
3906
3907 2009-05-14  Ian Lance Taylor  <iant@google.com>
3908
3909         * passes.c (finish_optimization_passes): Change i to int.
3910         * plugin.c (plugins_active_p): Change event to int.
3911         (dump_active_plugins): Likewise.
3912         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
3913         Add cast.
3914         * tree.c (tree_range_check_failed): Change c to unsigned int.
3915         (omp_clause_range_check_failed): Likewise.
3916         (build_common_builtin_nodes): Change mode to int.  Add cast.
3917         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
3918         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
3919
3920         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
3921         ++ or -- with a variable of enum type.
3922
3923 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
3924
3925         PR driver/40144
3926         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
3927
3928 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
3929
3930         * store-motion.c: Do not include params.h
3931         * Makefile.in: Fix dependencies for various files.
3932
3933 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
3934
3935         * auto-inc-dec.c: Fix pass description, remove apparent
3936         accidental duplication.
3937
3938 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
3939
3940         PR middle-end/40147
3941         * ipa-utils.h (memory_identifier_string): Moved to ...
3942         * tree.h (memory_identifier_string): Here.  Add GTY(()).
3943
3944 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
3945
3946         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
3947         in the former documentation of...
3948         (GO_IF_LEGITIMATE_ADDRESS): ... this.
3949         * ira-conflicts.c (get_dup_num): Use address_operand.
3950         * targhooks.c (default_legitimate_address_p): New.
3951         * targhooks.h (default_legitimate_address_p): New.
3952         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
3953         Call hook.
3954         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
3955         * target.h (struct target): Add legitimate_address_p.
3956         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
3957         (TARGET_INITIALIZER): Include it.
3958
3959         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3960         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
3961         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
3962         (TARGET_LEGITIMATE_ADDRESS_P): New.
3963
3964         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3965         (REG_OK_STRICT_P): Delete.
3966         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
3967         (frv_legitimate_address_p_1): ... this.
3968         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
3969         (frv_legitimate_address_p_1): ... the renamed old
3970         frv_legitimate_address_p.
3971         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
3972         (TARGET_LEGITIMATE_ADDRESS_P): New.
3973
3974         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3975         * config/s390/s390-protos.h (legitimate_address_p): Remove.
3976         * config/s390/s390.c (legitimate_address_p): Rename to...
3977         (s390_legitimate_address_p): ... this, make static.
3978         (legitimize_address): Adjust call.
3979         (TARGET_LEGITIMATE_ADDRESS_P): New.
3980         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
3981
3982         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3983         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
3984         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
3985         (TARGET_LEGITIMATE_ADDRESS_P): New.
3986
3987         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3988         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
3989         * config/spu/spu.c (spu_legitimate_address): Rename to...
3990         (spu_legitimate_address_p): ... this, make static.
3991         (TARGET_LEGITIMATE_ADDRESS_P): New.
3992
3993         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
3994         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
3995         * config/sparc/sparc.c (legitimate_address_p): Rename to...
3996         (sparc_legitimate_address_p): ... this, make static and return bool.
3997         (legitimize_address): Adjust call.
3998         (TARGET_LEGITIMATE_ADDRESS_P): New.
3999
4000         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4001         * config/i386/i386-protos.h (legitimate_address_p): Remove.
4002         * config/i386/i386.c (legitimate_address_p): Rename to...
4003         (ix86_legitimate_address_p): ... this, make static.
4004         (constant_address_p): Move after it, adjust call.
4005         (TARGET_LEGITIMATE_ADDRESS_P): New.
4006
4007         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4008         * config/avr/avr-protos.h (legitimate_address_p): Remove.
4009         * config/avr/avr.c (legitimate_address_p): Rename to...
4010         (avr_legitimate_address_p): ... this, make static.
4011         (legitimize_address): Adjust call.
4012         (TARGET_LEGITIMATE_ADDRESS_P): New.
4013
4014         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4015         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
4016         * config/crx/crx.c (crx_legitimate_address_p): Make static.
4017         (TARGET_LEGITIMATE_ADDRESS_P): New.
4018
4019         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4020         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
4021         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
4022         (TARGET_LEGITIMATE_ADDRESS_P): New.
4023
4024         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4025         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
4026         Remove.
4027         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
4028         Make static.
4029         (TARGET_LEGITIMATE_ADDRESS_P): New.
4030
4031         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4032         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
4033         Remove.
4034         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
4035         Rename to...
4036         (m68hc11_legitimate_address_p): ... this, make static.
4037         (go_if_legitimate_address_internal): Rename to...
4038         (m68hc11_legitimate_address_p_1): ... this.
4039         (legitimize_address): Adjust call.
4040         (TARGET_LEGITIMATE_ADDRESS_P): New.
4041
4042         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4043         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
4044         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
4045         (TARGET_LEGITIMATE_ADDRESS_P): New.
4046
4047         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4048         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
4049         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
4050         (mn10300_legitimate_address_p): ... this, make static.
4051         (TARGET_LEGITIMATE_ADDRESS_P): New.
4052
4053         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4054         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
4055         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
4056         (TARGET_LEGITIMATE_ADDRESS_P): New.
4057
4058         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4059         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
4060         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
4061         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4062         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
4063         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
4064         (rs6000_legitimate_address_p): ... this, make static.
4065         (TARGET_LEGITIMATE_ADDRESS_P): New.
4066         (REG_MODE_OK_FOR_BASE_P): Delete.
4067         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
4068
4069         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4070         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
4071         Delete.
4072         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
4073         static, adjust types.
4074         (TARGET_LEGITIMATE_ADDRESS_P): New.
4075
4076         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4077         * config/score/score.c (score_address_p): Rename to...
4078         (score_legitimate_address_p): ... this.
4079         (TARGET_LEGITIMATE_ADDRESS_P): New.
4080         * config/score/score3.c (score3_address_p): Rename to...
4081         (score3_legitimate_address_p): ... this.
4082         * config/score/score7.c (score7_address_p): Rename to...
4083         (score7_legitimate_address_p): ... this.
4084
4085         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
4086         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
4087         GO_IF_LEGITIMATE_ADDRESS): Delete.
4088         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
4089         thumb2_legitimate_address_p): Delete.
4090         (arm_legitimate_address_p): Rename to...
4091         (arm_legitimate_address_outer_p): ... this.
4092         * config/arm/constraints.md ("Uq"): Adjust call.
4093         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
4094         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
4095         to...
4096         (arm_legitimate_address_outer_p): ... this.
4097         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
4098         static.
4099         (TARGET_LEGITIMATE_ADDRESS_P): New.
4100
4101         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4102         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
4103         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
4104         (TARGET_LEGITIMATE_ADDRESS_P): New.
4105
4106         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4107         * config/vax/vax-protos.h (legitimate_address_p): Remove.
4108         * config/vax/vax.c (legitimate_address_p): Rename to...
4109         (vax_legitimate_address_p): ... this, make static.
4110         (TARGET_LEGITIMATE_ADDRESS_P): New.
4111
4112         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4113         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
4114         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
4115         (TARGET_LEGITIMATE_ADDRESS_P): New.
4116
4117         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4118         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
4119         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
4120         (mmix_legitimate_address_p): ... this, make static.
4121         (TARGET_LEGITIMATE_ADDRESS_P): New.
4122
4123         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4124         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
4125         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
4126         (TARGET_LEGITIMATE_ADDRESS_P): New.
4127
4128 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
4129
4130         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
4131         of MODE_COMPLEX_INT.
4132
4133 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4134
4135         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
4136         LCT_NORMAL in function call.
4137         * mips-tdump.c (print_file_desc): Add cast to enum type.
4138         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
4139         (mark_stabs): Add casts to enum types.
4140         (parse_stabs_common): Add casts to enum types.
4141
4142 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
4143
4144         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
4145         Check for invalid values of LETTER.
4146
4147 2009-05-13  Taras Glek  <tglek@mozilla.com>
4148
4149         * attribs.c (register_attribute): moved out attribute registration
4150         into register_attribute.
4151         * doc/plugins.texi: Documented register_attribute and
4152         PLUGIN_ATTRIBUTES.
4153         * gcc-plugin.h: Added forward decl for register_attribute.
4154         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
4155         * plugin.c (register_callback, invoke_plugin_callbacks): Added
4156         PLUGIN_ATTRIBUTES boilerplate.
4157
4158 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
4159
4160         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
4161         values even in sentinel and empty entries.
4162         (ms_printf_flag_specs):  Likewise.
4163         (ms_scanf_flag_specs):  Likewise.
4164         (ms_strftime_flag_specs):  Likewise.
4165         (ms_print_char_table):  Likewise.
4166         (ms_scan_char_table):  Likewise.
4167         (ms_time_char_table):  Likewise.
4168
4169 2009-05-13  Doug Kwan  <dougkwan@google.com>
4170
4171         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
4172
4173 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
4174
4175         * config/mips/mips.md (store): Add attributes for QI and HI.
4176         Update comment.
4177         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
4178         (truncdi<mode>2): ... this new pattern.
4179
4180 2009-05-13  Brad Hards  <bradh@kde.org>
4181
4182         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
4183
4184 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
4185             Ben Elliston <bje@au.ibm.com>
4186
4187         PR middle-end/40035
4188         * dse.c (check_mem_read_rtx): Guard against width == -1.
4189
4190 2009-05-13  Michael Matz  <matz@suse.de>
4191
4192         PR middle-end/39976
4193         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
4194         (trivially_conflicts_p): New function.
4195         (insert_backedge_copies): Use it.
4196
4197 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
4198
4199         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
4200         (handle_stdc_pragma): Use new enum constant names.
4201         (handle_pragma_float_const_decimal64): Ditto.
4202
4203 2009-05-13  Ian Lance Taylor  <iant@google.com>
4204
4205         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
4206         tree.def.
4207
4208 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
4209
4210         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
4211         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
4212         multilibs.
4213         * config/m68k/m68k.h (FL_UCLINUX): Define.
4214
4215 2009-05-13  Jan Hubicka  <jh@suse.cz>
4216
4217         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
4218
4219 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4220
4221         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
4222         unless -fschedule-insns is specified.
4223
4224 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4225
4226         PR target/39561
4227         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
4228         TARGET_EXPAND_CBRANCHDI4.
4229         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
4230         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
4231         (cmpeqdi): Fix comment.
4232
4233 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
4234
4235         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
4236         (sh_legitimate_address_p): Likewise.
4237         * config/sh/sh.c (sh_legitimate_index_p): New.
4238         (sh_legitimate_address_p): Likewise.
4239         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
4240         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
4241         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
4242         (MAYBE_BASE_REGISTER_RTX_P): New macro.
4243         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
4244         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
4245         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
4246         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
4247         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
4248
4249 2009-05-12  Jan Hubicka  <jh@suse.cz>
4250
4251         * tree-inline.c (estimate_operator_cost): Add operands;
4252         when division happens by constant, it is cheap.
4253         (estimate_num_insns): Loads and stores are not having cost of 0;
4254         EH magic stuff is cheap; when computing runtime cost of switch,
4255         use log2 base of amount of its cases; builtin_expect has cost of 0;
4256         compute cost for moving return value of call.
4257         (init_inline_once): Initialize time_based flags.
4258         * tree-inline.h (eni_weights_d): Add time_based flag.
4259
4260 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4261
4262         * df-core.c: Update head documentation.
4263
4264 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4265
4266         PR bootstrap/40118
4267         * rs6000.c (rs6000_generate_compare): Use op1b instead of
4268         shadowing exisiting variable op1.
4269
4270 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
4271
4272         PR target/37179
4273         * config/i386/driver-i386.c (processor_signatures): New enum.
4274         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
4275         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
4276         processor signature to detect geode processor.
4277
4278 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4279
4280         Revert:
4281
4282         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4283
4284         * optabs.c (prepare_cmp_insn): Temporarily disable test that
4285         causes spurious differences between trunk and cond-optab branch.
4286
4287 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4288
4289         * dojump.c (compare_from_rtx): Delete.
4290         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
4291         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
4292         if the comparison does not satisfy the predicate; test predicates for
4293         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
4294         further if one existing pattern fails.
4295         * expr.h (compare_from_rtx): Delete.
4296         (prepare_operand): Declare it.
4297         * optabs.c: Change "lib call" to "libcall" throughout.
4298         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
4299         HAVE_conditional_trap, emit_cmp_insn): Delete.
4300         (can_compare_p): Delete cmp_optab case.
4301         (prepare_float_lib_cmp): Return an rtx and a machine mode.
4302         Accept other parameters by value.
4303         (prepare_operand): Make non-static.
4304         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
4305         other parameters by value.  Try to widen operands here based on
4306         an optab_methods argument and looking at cbranch_optab.
4307         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
4308         loop.  Use cbranch_optab directly.
4309         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
4310         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
4311         assertion.
4312         (emit_conditional_move, emit_conditional_add): Inline what's needed
4313         of compare_from_rtx, using new prepare_cmp_insn for the rest.
4314         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
4315         with COMPARE.  Move cmov_optab and cstore_optab above
4316         with cbranch_optab, move cmp_optab down with ucmp_optab,
4317         remove tst_otpab.  Do not initialize trap_rtx.
4318         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
4319         for trap code.  Do not check HAVE_conditional_trap.  Use
4320         prepare_cmp_insn.  Accept no predicate for operand 3.
4321         * optabs.h (OTI_cmp): Mark as used only for libcalls.
4322         (OTI_ctrap, ctrap_optab): New.
4323         (tst_optab): Delete.
4324         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
4325         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
4326         with lookup of ctrap_optab.
4327         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
4328         Delete.
4329         (ctrap_optab): New.
4330
4331         * combine.c (combine_simplify_rtx, simplify_set): Do not
4332         special case comparing against zero for cc0 machines.
4333         * simplify-rtx.c (simplify_binary_operation_1): Never remove
4334         COMPARE on cc0 machines.
4335         (simplify_relational_operation): Return a new expression when
4336         a COMPARE could be removed.
4337         * final.c (final_scan_insn): Compare cc_status values
4338         against LHS of a (compare FOO (const_int 0)) cc0 source.
4339         Also check if cc_status.value is the full compare.
4340
4341         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
4342         (cstoreMM4): Document.
4343         (conditional_trap): Document ctrapMM4 instead.
4344         (sync_compare_and_swapMM): Refer to cbranchcc4.
4345         (Dependent Patterns): Eliminate obsolete information referring to
4346         the old jump optimization phase.
4347         (Canonicalization): Include cbranchcc4 case, omit canonicalization
4348         of compares with 0 on cc0 machines.
4349         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
4350         avoiding references to cc0.  Remove text about storing operands
4351         in cmpMM.
4352         * doc/tm.texi (Condition Codes): Include blurb on different
4353         condition code representations, separate into subsections for
4354         CC0, MODE_CC and conditional execution.
4355
4356         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
4357         alpha_emit_setcc): Accept operands and a machine mode.
4358         * config/alpha/alpha.c (alpha_emit_conditional_branch):
4359         Get code/op0/op1 from operands, use machine mode argument
4360         instead of alpha_compare.fp_p.  Emit the branch here.
4361         (alpha_emit_setcc): Likewise, and return boolean.
4362         (alpha_emit_conditional_move): Likewise.  Assert that
4363         cmp_op_mode == cmp_mode, and simplify accordingly.
4364         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
4365         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
4366         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
4367         Delete.
4368         (stack probe test): Use cbranchdi4.
4369         * config/alpha/predicates.md (alpha_cbranch_operator): New.
4370
4371         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
4372         * config/arc/arc.h (movsicc, movsfcc): Use it.
4373         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
4374         (cbranchsi4, cstoresi4): New.
4375         (cmpsi, bCC and sCC expanders): Remove. 
4376
4377         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
4378         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
4379         * config/arm/predicates.md (arm_comparison_operator): Only include
4380         floating-point operators if there is a hardware floating-point unit.
4381         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
4382         deferring to cbranch_cc and cstore_cc respectively.
4383         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
4384         cbranch_cc, cstore_cc): New.
4385         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
4386         arm_compare_op1.
4387         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
4388
4389         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
4390         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
4391         as an argument.
4392         (adjust_insn_length): Adjust calls.
4393         (avr_reorg): Handle (compare (foo) (const_int 0)).
4394         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
4395         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
4396         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
4397         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
4398         (bCC): Remove.
4399         (cbranchqi4, cbranchhi4, cbranchsi4): New.
4400         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
4401
4402         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
4403         (cbranchsi4, cstorebi4, cstoresi4): New.
4404         (movbisi): This insn is duplicate, split it to zero_extend.
4405         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
4406         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
4407         (bfin_optimize_loop): Use cbranch expander.
4408         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
4409         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
4410         (bfin_bimode_comparison_operator): ... this.
4411         (bfin_direct_comparison_operator): New.
4412  
4413         * config/cris/cris.c (cris_normal_notice_update_cc): Look
4414         inside (compare FOO (const_int 0)).
4415         (cris_rtx_costs): Handle ZERO_EXTRACT.
4416         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
4417         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
4418         (*tstdi_v32): Delete.
4419         (*cmpdi_non_v32): Add M alternative for operand 1.
4420         (cmpsi, cmp<mode>): Make private.
4421         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
4422         with COMPARE.
4423         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
4424
4425         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
4426         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
4427         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
4428         (cc_reg_operand): New.
4429         (any_cond): Delete.
4430         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
4431         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
4432         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
4433         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
4434         crx_expand_scond): Delete.
4435
4436         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
4437         (cbranchsi4): New.
4438         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
4439         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
4440
4441         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
4442         cstoresi4, cstoresf4, cstoredf4): New.
4443         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
4444         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4445         Receive the entire operands array.
4446         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
4447         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
4448         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
4449         Get test/op0/op1 from the operands array.
4450         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
4451
4452         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
4453         (h8300_expand_store): New.
4454         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
4455         (const_int 0)).
4456         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
4457         (h8300_expand_store): New.
4458         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
4459         or do not try to produce (set (cc0) REG).
4460         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
4461         change a compare into a move to a scratch register.  Disable some
4462         peepholes when comparing with zero.
4463         (tstsi, tsthi, tstsi, cmpqi): Make private.
4464         (cmphi): Delete.
4465         (bCC, sCC): Delete.
4466         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
4467         cstoresi4): New.
4468
4469         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
4470         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
4471         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
4472         (ix86_emit_i387_log1p): Use cbranchxf2.
4473         (ix86_expand_setcc): Return void.
4474         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
4475         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
4476         cmp<MODEF>, cmpcc): Remove.
4477         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
4478         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
4479         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
4480         (sCC and bCC expanders): Remove.
4481         (stack_protect_test): Use cbranchcc4.
4482
4483         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
4484         Delete.
4485         (ia64_expand_compare): Accept three rtx by reference and return void.
4486         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
4487         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
4488         from *expr.  Update *expr with the BImode comparison to do.
4489         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
4490         cmptf, bCC, sCC, conditional_trap): Delete.
4491         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
4492         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
4493         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
4494         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
4495         * config/ia64/predicates.md (ia64_cbranch_operator): New.
4496
4497         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
4498         type of last argument.
4499         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
4500         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
4501         use machine mode argument instead of branch_type.  Remove dead
4502         code for floating-point comparisons.
4503         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
4504         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
4505         Remove.
4506         (cbranchsi4, cstoresi4): New.
4507         * config/iq2000/predicates.md (reg_or_const_operand): New.
4508
4509         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
4510         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
4511         (b<code>_op): Rewrite to...
4512         (bcc_op): ... this, using match_operator.
4513         (s<code>_op): Rewrite to...
4514         (scc_op): ... this, using match_operator.
4515         (s<code>_24_op): Rewrite to...
4516         (scc_op_24): ... this, using match_operator.
4517         (s<code>_<mode>): Rewrite to...
4518         (cstore<mode>4): ... this, using match_operator.
4519         (s<code>_<mode>_24): Rewrite to...
4520         (cstore<mode>4_24): ... this, using match_operator.
4521         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
4522         m32c_unpend_compare, m32c_expand_scc): Delete.
4523         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
4524         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
4525         (m32c_expand_movcc): Change NE to EQ if necessary.
4526         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
4527
4528         * config/m32r/m32r-protos.h (gen_cond_store): New.
4529         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
4530         (gen_cond_store): New, from sCC patterns.
4531         (m32r_expand_block_move): Use cbranchsi4.
4532         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
4533         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
4534         (cbranchsi4, cstoresi4): New.
4535         
4536         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
4537         Delete.
4538         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
4539         (m68hc11_notice_update_cc): Look into a compare with 0.
4540         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
4541         Delete.
4542         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
4543         cmphi, cmpqi, bCC): Delete.
4544         (cbranchsi4, cbranchhi4, cbranchqi4): New.
4545         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
4546         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
4547         sets with COMPARE.
4548
4549         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
4550         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
4551         * config/m68k/constraints.md (H): New.
4552         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
4553         the define_insn below.
4554         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
4555         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
4556         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
4557         patterns): Wrap RHS with COMPARE.
4558         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
4559         (*cmpdi_internal): Name this pattern.
4560         (cmpdi): Change to define_insn.
4561         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
4562         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
4563         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
4564         predicate.
4565         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
4566         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
4567         (conditional_trap): Change to...
4568         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
4569         (*conditional_trap): Use the ordered_comparison_operator and
4570         const1_operand predicates.
4571         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
4572         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
4573         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
4574         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
4575
4576         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
4577         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
4578         (mcore_gen_compare): New. 
4579         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
4580         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
4581         (mcore_gen_compare): ... this.
4582         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
4583         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
4584         (stack probe pattern): Use cbranchsi4.
4585
4586         * config/mips/predicates.md (mips_cstore_operator): New.
4587         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
4588         * config/mips/mips.md (any_cond): Delete.
4589         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
4590         always succeed.
4591         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
4592         fixuns_truncsfdi2): Use cbranch patterns.
4593         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
4594         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
4595         Adjust call to mips_expand_conditional_branch.
4596         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
4597         cstore<GPR:mode>4.
4598         * config/mips/mips-protos.h (mips_expand_conditional_branch,
4599         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
4600         * config/mips/mips.c (cmp_operands): Delete.
4601         (mips_emit_compare): Get comparison operands from *op0/*op1.
4602         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
4603         that it succeeds.  Use op0/op1 instead of cmp_operands.
4604         (mips_expand_conditional_branch, mips_expand_conditional_move,
4605         mips_expand_conditional_trap): Likewise.
4606         (mips_block_move_loop): Use cbranch patterns. 
4607         * config/mips/mips.h (cmp_operands): Delete.
4608
4609         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
4610         (mmix_gen_compare_reg): Just return a register in the right CC mode.
4611         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
4612         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
4613         (*cmpcc_folded): Rename to...
4614         (*cmpdi_folded): this.
4615         (*cmpcc): Rename to...
4616         (*cmps): ... this.
4617         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
4618         (bCC): Remove.
4619         (cbranchdi4): New.
4620         (cbranchdf4): New.  Handle invalid comparisons here.
4621         * config/mmix/predicates.md (float_comparison_operator): New.
4622
4623         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
4624         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
4625         * config/mn10300/mn10300.md (tst): Delete.
4626         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
4627         Name these patterns and wrap RHS in a compare.
4628         (*cmpsi): Make this pattern private.  Include tst.
4629         (*cmpsf): Make this pattern private.
4630         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
4631         (compare with zero peepholes): Likewise.
4632         (bCC): Remove.
4633         (cbranchsi4, cbranchsf4): New.
4634         (casesi): Use cbranchsi4.
4635
4636         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
4637         hppa_branch_type): Delete.
4638         (return_addr_rtx): Use cbranchsi4.
4639         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
4640         Emit CCFPmode comparison here.
4641         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
4642         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
4643         hppa_branch_type): Delete.
4644         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
4645         (movsicc, movdicc): Remove references to hppa_compare_op0,
4646         hppa_compare_op1 and compare_from_rtx.
4647         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
4648         (casesi): Use cbranchsi4.
4649
4650         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
4651         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
4652         * config/pdp11/pdp11.md (register_or_const0_operand): New.
4653         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
4654         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
4655         (bCC): Delete.
4656         (cbranchdf4, cbranchhi4, cbranchqi4): New.
4657         (*branch, *branch_inverted): New.
4658
4659         * config/picochip/picochip.md (cbranchhi4): Use
4660         ordered_comparison_operator.
4661         (cmphi, bCC): Remove.
4662
4663         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
4664         (trap_comparison_operator): Delete.
4665         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
4666         rs6000_emit_cbranch): Accept mode and operands.
4667         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
4668         rs6000_compare_fp_p): Delete.   
4669         (rs6000_generate_compare): Accept mode and comparison.  Extract code
4670         and op0/op1 from there.  Replace references to rs6000_compare_op0
4671         and rs6000_compare_op1.
4672         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
4673         extract result from passed operands.
4674         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
4675         extract loc from passed operands.
4676         (rs6000_emit_cmove): Likewise.
4677         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
4678         rs6000_compare_fp_p): Delete.
4679         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
4680         (cbranch<GPR>4, cbranch<FP>4): New.
4681         (cstore<mode>4): New.  Consolidate here all choices about when to use
4682         portable or specialized sCC sequences.
4683         (stack_protect_test): Use cbranchsi4.
4684         (conditional_trap): Replace with ctrap<GPR>4.
4685         (conditional trap insn): Replace trap_comparison_operator with
4686         ordered_comparison_operator. 
4687
4688         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
4689         (s390_emit_prologue): Use ctrap.
4690         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
4691         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
4692         New predicates replacing...
4693         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
4694         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
4695         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
4696         (add<mode>cc): Do not use s390_compare_op0/op1.
4697         (s<code>): Change to...
4698         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
4699         (seq): Change to...
4700         (cstorecc4): ... this.  Handle EQ or NE equally.
4701         (*sne): Un-privatize for use in cstorecc4.
4702         (b<code>): Change to...
4703         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
4704         (conditional_trap): Replace with...
4705         (ctrap<GPR>4, ctrap<FP>4): ... these.
4706         (stack_protect): Use cbranchcc4.
4707
4708         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
4709         * config/score/score-protos.h (score_gen_cmp): Delete.
4710         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
4711         (score_block_move-loop): Use cbranchsi4.
4712         * config/score/score.md (cbranchsi4): New.
4713         (cmpsi, bCC): Delete.
4714         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
4715         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4716         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
4717         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
4718         * config/score/score3.h (score3_gen_cmp): Delete.
4719         * config/score/score7.h (score7_gen_cmp): Delete.
4720
4721         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
4722         (sh_emit_scc_to_t): ... this.  Return void.
4723         (from_compare): Rename to...
4724         (sh_emit_compare_and_branch): ... this.
4725         (sh_emit_compare_and_set): New.
4726         (sh_expand_t_scc): Accept operands.
4727         * config/sh/predicates.md (sh_float_comparison_operator): New.
4728         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
4729         (prepare_scc_operands): Rename to...
4730         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
4731         arguments.
4732         (sh_emit_cheap_store_flag): New.
4733         (sh_emit_set_t_insn): New.
4734         (from_compare): Rename to...
4735         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
4736         handling of TARGET_SH2E floating point to avoid recursive call.
4737         Generate branch here.
4738         (sh_emit_compare_and_set): New.
4739         (sh_expand_t_scc): Get op0/op1 from arguments.
4740         (sh_emit_cheap_store_flag): New.
4741         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
4742         cases.
4743         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
4744         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
4745         (movsicc, movdicc): Do nothing when it recreated operands from
4746         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
4747         prepare_scc_operands (now sh_emit_scc_to_t).
4748         (udivdi3): Use cstoresi4.
4749         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
4750         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
4751         (cbranchint4_media, cbranchfp4_media): New.
4752         (casesi): Use cbranchdi4.
4753         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
4754         Delete.
4755         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
4756         (movnegt): Remove second operand.
4757         (cbranchsf4, cbranchdf4): New.
4758         (stack_protect): Use cbranchdi4/cbranchsi4.
4759
4760         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
4761         (gen_compare_reg): Accept comparison, extract part of it to...
4762         (gen_compare_reg_1): ... this. 
4763         (gen_compare_operator): Delete.
4764         (gen_v9_scc): Accept separate destination, comparison code and arms.
4765         Do not use sparc_compare_op0/sparc_compare_op1.
4766         (emit_scc_insn, emit_conditional_branch_insn): New.
4767         (emit_v9_brxx): Make static.  Remove useless assertion.
4768         (sparc_emit_float_lib_cmp): Return RTL instead of calling
4769         emit_cmp_insn.
4770         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
4771         * config/sparc/sparc-protos.h (gen_compare_reg,
4772         sparc_emit_float_lib_cmp): Adjust prototype.
4773         (emit_scc_insn, emit_conditional_branch_insn): New.
4774         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
4775         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
4776         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
4777         iterators to the top.
4778         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
4779         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
4780         snedi_special_trunc): Delete.
4781         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
4782         and snedi_special_trunc.
4783         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
4784         cbranchdi4, cbranch<F:mode>4): New.
4785         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
4786         here.  Use gen_compare_reg instead of gen_compare_operator.
4787         (conditional_trap): Replace with...
4788         (ctrapsi4, ctrapdi4): ... this.
4789         (stack_protect_test): Use cbranchcc4.
4790
4791         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
4792         argument to rtx.
4793         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
4794         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
4795         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
4796         from operands[0] or operands[3] depending on is_set.
4797         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
4798         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
4799         cmpdf, bCC), sCC: Remove.
4800         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
4801         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
4802         cstoredf4): New.
4803         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
4804         spu_emit_branch_or_set.
4805
4806         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
4807         Add two arguments.
4808         * config/stormy16/stormy16.h (xstormy16_compare_op0,
4809         xstormy16_compare_op1): Delete.
4810         * config/stormy16/stormy16.c (xstormy16_compare_op0,
4811         xstormy16_compare_op1): Delete. 
4812         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
4813         Adjust calls.
4814         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
4815         (cmphi, cmpsi, bCC): Remove.
4816
4817         * config/v850/v850.md (tstsi, cmpsi): Fold into...
4818         (*cmpsi): ... this one.
4819         (cbranchsi4, cstoresi4): New.
4820         (bCC expanders): Delete.
4821         (sCC insns): Fold into...
4822         (*setcc): ... this one.
4823         (casesi): Do not use gen_cmpsi and gen_bgtu. 
4824         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
4825         (movsicc): Simplify.
4826         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
4827
4828         * config/vax/vax-protos.h (cond_name): New.
4829         (vax_output_conditional_branch): Remove.
4830         * config/vax/vax.c (cond_name): New.
4831         (vax_output_conditional_branch): Remove.
4832         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
4833         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
4834         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
4835         (bit<VAXint>): Wrap source with (compare).
4836         (b<code> and following unnamed pattern): Rename to *branch and
4837         *branch_reversed.  Change macroization to match_operator.
4838         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
4839
4840         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
4841         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
4842         Change last argument to machine_mode.
4843         (xtensa_expand_scc): Add machine_mode argument.
4844         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
4845         (gen_conditional_move, xtensa_expand_conditional_branch,
4846         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
4847         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
4848         Adjust operand numbers.
4849         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
4850         Delete.
4851         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
4852         (cmpsi, cmpsf, b<code>, s<code>): Delete.
4853         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
4854
4855 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
4856
4857         * optabs.c (prepare_cmp_insn): Temporarily disable test that
4858         causes spurious differences between trunk and cond-optab branch.
4859
4860 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
4861
4862         PR target/37137
4863         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
4864
4865 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
4866
4867         * tree.c (iterative_hash_pointer): Delete.
4868         (iterative_hash_expr): Short-circuit handling of NULL pointer.
4869         Hash UIDs and versions of SSA names.  Don't special-case built-in
4870         function declarations.
4871
4872 2009-05-11  Ian Lance Taylor  <iant@google.com>
4873
4874         PR bootstrap/40103
4875         * graphite.c: Force -Wc++-compat to only be a warning before
4876         #including "cloog/cloog.h".
4877
4878 2009-05-11  Martin Jambor  <mjambor@suse.cz>
4879
4880         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
4881         
4882 2009-05-11  Jan Hubicka  <jh@suse.cz>
4883
4884         * tree-ssa-loop-ivcanon.c: Include target.h
4885         (struct loop_size): new structure.
4886         (constant_after_peeling): New predicate.
4887         (tree_estimate_loop_size): New function.
4888         (estimated_unrolled_size): Rewrite for new estimates.
4889         (try_unroll_loop_completely): Use new estimates.
4890         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
4891
4892 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4893
4894         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
4895         libcpp interface change.
4896         (spu_macro_to_expand): Likewise.
4897
4898 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
4899
4900         PR tree-optimization/40026
4901         * gimplify.c (gimplify_init_constructor): Change initial conditional
4902         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
4903         optimize_compound_literals_in_ctor.
4904
4905 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
4906
4907         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
4908         New devices.
4909         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
4910
4911 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
4912
4913         * tree-vect-data-refs.c (vect_analyze_group_access): Use
4914         HOST_WIDE_INT for gap.
4915
4916 2009-05-11  Ira Rosen  <irar@il.ibm.com>
4917
4918         PR tree-optimization/40074
4919         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
4920         account in group size and step comparison.
4921
4922 2009-05-11  Richard Guenther  <rguenther@suse.de>
4923
4924         * passes.c (init_optimization_passes): Strip now incorrect comment.
4925         (execute_function_todo): Do not set PROP_alias.
4926         * tree-pass.h (PROP_alias): Remove.
4927         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
4928         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
4929         * tree-nrv.c (pass_return_slot): Likewise.
4930         * tree-object-size.c (pass_object_sizes): Likewise.
4931         * tree-ssa-dom.c (pass_dominator): Likewise.
4932         (pass_phi_only_cprop): Likewise.
4933         * tree-ssa-dse.c (pass_dse): Likewise.
4934         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
4935         (pass_cselim): Likewise.
4936         * tree-ssa-pre.c (pass_pre): Likewise.
4937         (pass_fre): Likewise.
4938         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
4939         * tree-ssa-sink.c (pass_sink_code): Likewise.
4940         * tree-stdarg.c (pass_stdarg): Likewise.
4941         * tree-tailcall.c (pass_tail_calls): Likewise.
4942         * tree-vrp.c (pass_vrp): Likewise.
4943
4944 2009-05-10  Ian Lance Taylor  <iant@google.com>
4945
4946         * basic-block.h (enum profile_status): Break out of struct
4947         control_flow_graph.
4948         * cgraph.h (struct inline_summary): Break out of struct
4949         cgraph_local_info.
4950         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
4951         of struct cgraph_order_sort.
4952         * combine.c (enum undo_kind): New enum, broken out of struct undo.
4953         * cse.c (struct branch_path): Break out of struct
4954         cse_basic_block_data.
4955         * except.h (enum eh_region_type): Break out of struct eh_region.
4956         * gcc.c (enum add_del): Break out of struct modify_target.
4957         * genrecog.c (enum decision_type): Break out of struct decision_test.
4958         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
4959         ggc_pch_data.
4960         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
4961         * regmove.c (enum match_use): New enum, broken out of struct match.
4962         * sched-int.h (enum post_call_group): New enum, broken out of
4963         struct deps.
4964         (struct deps_reg): Break out of struct deps.
4965         * target.h (struct asm_int_op): Break out of struct gcc_target.
4966         * tree-eh.c (struct goto_queue_node): Break out of struct
4967         leh_tf_state.
4968         * tree-inline.h (enum copy_body_cge_which): Break out of
4969         copy_body_data.
4970         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
4971
4972         * c-decl.c (in_struct, struct_types): New static variables.
4973         (pushtag): Add loc parameter.  Change all callers.
4974         (lookup_tag): Add ploc parameter.  Change all callers.
4975         (check_compound_literal_type): New function.
4976         (parser_xref_tag): Add loc parameter.  Change all callers.  If
4977         -Wc++-compat, warn about struct/union/enum types defined within a
4978         struct or union.
4979         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
4980         and loc parameters.  Change all callers.  Change error calls to
4981         error_at, using loc.  For a redefinition, if the location of the
4982         original definition is known, report it.  Set in_struct and
4983         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
4984         (finish_struct): Add new parameters enclosing_in_struct and
4985         enclosing_struct_types.  Change all callers.  Set
4986         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
4987         in the struct.  If in a struct, add this struct to struct_types.
4988         (start_enum): Add loc parameter.  Change all callers.  Use
4989         error_at for errors, using loc.  For a redefinition, if the
4990         location of the original definition is known, report it.  If in a
4991         struct, add this enum type to struct_types.  If -Wc++-compat warn
4992         if in sizeof, typeof, or alignof.
4993         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
4994         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
4995         (c_parser_enum_specifier): Get enum location for start_enum.
4996         (c_parser_struct_or_union_specifier): Get struct location for
4997         start_struct.  Save in_struct and struct_types status between
4998         start_struct and finish_struct.
4999         (c_parser_cast_expression): Get location of cast.
5000         (c_parser_alignof_expression): Get location of type.
5001         (c_parser_postfix_expression): Likewise.
5002         (c_parser_postfix_expression_after_paren_type): Add type_loc
5003         parameter.  Change all callers.  Call check_compound_literal_type.
5004         Use type_loc for error about variable size type.
5005         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
5006         of an enum constant from an enum type defined in a struct or union.
5007         (c_cast_expr): Add loc parameter.  Change all callers.  If
5008         -Wc++-compat, warn about defining a type in a cast.
5009         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
5010         (start_enum, start_struct, finish_struct): Update declarations.
5011         (parser_xref_tag, c_cast_expr): Update declarations.
5012         (check_compound_literal_type): Declare.
5013
5014 2009-05-11  Ben Elliston  <bje@au.ibm.com>
5015
5016         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
5017         for recent libcpp interface change.
5018         (rs6000_macro_to_expand): Likewise.
5019
5020 2009-05-10  Michael Matz  <matz@suse.de>
5021
5022         PR target/40031
5023         * config/arm/arm.c (require_pic_register): Emit on entry edge,
5024         not at entry of function.
5025
5026 2009-05-10  Richard Guenther  <rguenther@suse.de>
5027
5028         PR tree-optimization/40081
5029         Revert
5030         * tree-sra.c (instantiate_element): Instantiate scalar replacements
5031         using the main variant of the element type.  Do not fiddle with
5032         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5033
5034         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
5035         structs with volatile fields.
5036
5037 2009-05-10  Jan Hubicka  <jh@suse.cz>
5038
5039         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
5040         (estimate_move_cost): Assert that it does not get called for
5041         VOID_TYPE_P.
5042         (estimate_num_insns): Skip VOID types in argument handling.
5043         (optimize_inline_calls): Delete unreachable blocks and verify that
5044         callgraph is valid.
5045
5046 2009-05-10  Jan Hubicka  <jh@suse.cz>
5047
5048         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
5049         * cgraph.c (cgraph_mark_address_taken_node): New function.
5050         (dump_cgraph_node): Dump new flag.
5051         * cgraph.h (struct cgraph_node): Add address_taken.
5052         (cgraph_mark_address_taken_node): New function.
5053         * ipa.c (cgraph_postorder): Prioritize functions with address taken
5054         since new direct calls can be born.
5055
5056 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
5057
5058         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
5059         tok->val.node.node.
5060
5061 2009-05-10  Jan Hubicka  <jh@suse.cz>
5062
5063         PR middle-end/40084
5064         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
5065         argument; rewrite.
5066         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
5067         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
5068         * tree-inline.c (copy_bb): Set frequency correctly.
5069         (fold_marked_statements): Update call to
5070         cgraph_update_edges_for_call_stmt.
5071
5072 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
5073
5074         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
5075         identifiers in diagnostics.
5076         * config/arm/arm.c (arm_handle_fndecl_attribute,
5077         arm_handle_isr_attribute): Likewise.
5078         * config/avr/avr.c (avr_handle_progmem_attribute,
5079         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
5080         * config/bfin/bfin.c (handle_int_attribute,
5081         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
5082         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
5083         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
5084         Likewise.
5085         * config/darwin.c (darwin_handle_kext_attribute,
5086         darwin_handle_weak_import_attribute): Likewise.
5087         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
5088         h8300_handle_eightbit_data_attribute,
5089         h8300_handle_tiny_data_attribute): Likewise.
5090         * config/i386/i386.c (ix86_handle_cconv_attribute,
5091         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
5092         * config/i386/winnt.c (ix86_handle_shared_attribute,
5093         ix86_handle_selectany_attribute): Likewise.
5094         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
5095         * config/m32c/m32c.c (function_vector_handler): Likewise.
5096         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
5097         m68hc11_handle_fntype_attribute): Likewise.
5098         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
5099         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
5100         * config/mips/mips.c (mips_insert_attributes,
5101         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
5102         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
5103         rs6000_handle_struct_attribute): Likewise.
5104         * config/sh/sh.c (sh_insert_attributes,
5105         sh_handle_resbank_handler_attribute,
5106         sh_handle_interrupt_handler_attribute,
5107         sh2a_handle_function_vector_handler_attribute,
5108         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
5109         Likewise.
5110         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
5111         * config/spu/spu.c (spu_handle_fndecl_attribute,
5112         spu_handle_vector_attribute): Likewise.
5113         * config/stormy16/stormy16.c
5114         (xstormy16_handle_interrupt_attribute): Likewise.
5115         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
5116         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
5117
5118 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
5119
5120         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
5121         (pp_translate_identifiers): New.
5122         (pp_identifier): Only conditionally translate identifier to locale
5123         character set.
5124         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
5125         (pp_base_tree_identifier): Only conditionally translate identifier
5126         to locale character set.
5127         * c-pretty-print.c (M_): Define.
5128         (pp_c_type_specifier, pp_c_primary_expression): Mark English
5129         fragments for conditional translation with M_.
5130         * tree-pretty-print.c (maybe_init_pretty_print): Disable
5131         identifier translation.
5132
5133 2009-05-10  Richard Guenther  <rguenther@suse.de>
5134
5135         PR tree-optimization/40081
5136         * tree-sra.c (instantiate_element): Instantiate scalar replacements
5137         using the main variant of the element type.  Do not fiddle with
5138         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
5139
5140 2009-05-09  Jan Hubicka  <jh@suse.cz>
5141
5142         PR middle-end/40080
5143         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
5144         indirect calls; verify cgraph afterwards.
5145
5146 2009-05-09  Jan Hubicka  <jh@suse.cz>
5147
5148         PR bootstrap/40082
5149         * ipa.c (update_inlined_to_pointer): New function.
5150         (cgraph_remove_unreachable_nodes): Use it.
5151
5152 2009-05-09  Jan Hubicka  <jh@suse.cz>
5153
5154         * tree-eh.c (struct leh_state): Remove prev_try.
5155         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
5156         not track prev_try.
5157         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
5158         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
5159         remove_eh_handler_and_replace, foreach_reachable_handler,
5160         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
5161         * except.h (struct eh_region): Remove eh_region_u_cleanup.
5162         (gen_eh_region_cleanup): Update prototype.
5163
5164 2009-05-09  Jan Hubicka  <jh@suse.cz>
5165
5166         PR middle-end/40043
5167         * except.c (copy_eh_region): Always set prev_try.
5168         (redirect_eh_edge_to_label): Find outer try.
5169         (foreach_reachable_handler): When looking for prev try
5170         handle case where previous try is not going to be taken.
5171
5172 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
5173
5174         PR tree-optimization/40049
5175         * tree-vect-stmts.c (vectorizable_operation): If the machine has
5176         only vector/vector shifts, convert the type of the constant to the
5177         appropriate type to avoid building incorrect trees, which
5178         eventually have problems with garbage collection.
5179
5180 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
5181
5182         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
5183         -1 for complex floating-point types if honoring signed zeros.
5184
5185 2009-05-08  Jan Hubicka  <jh@suse.cz>
5186
5187         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
5188         argument; handle correctly when profile is absent.
5189         (build_cgraph_edges): Update.
5190         (rebuild_cgraph_edges): Update.
5191         * cgraph.c: Do not include varray.h.
5192         (cgraph_set_call_stmt_including_clones): New function.
5193         (cgraph_create_edge_including_clones): Likewise
5194         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
5195         (cgraph_update_edges_for_call_stmt): Handle clones.
5196         (cgraph_remove_node): Handle clone tree.
5197         (cgraph_remove_node_and_inline_clones): New function.
5198         (dump_cgraph_node): Dump clone tree.
5199         (cgraph_clone_node): Handle clone tree.
5200         (clone_function_name): Bring here from tree-inline.c.
5201         (cgraph_create_virtual_clone): New function.
5202         * cgraph.h (ipa_replace_map): Move here from ipa.h.
5203         (cgraph_clone_info): New function.
5204         (strut cgraph_node): Add clone_info and new clone tree pointers.
5205         (cgraph_remove_node_and_inline_clones,
5206         cgraph_set_call_stmt_including_clones,
5207         cgraph_create_edge_including_clones,
5208         cgraph_create_virtual_clone): Declare.
5209         (cgraph_function_versioning): Use VEC argument.
5210         (compute_call_stmt_bb_frequency): Update prototype.
5211         (cgraph_materialize_all_clones): New function.
5212         * ipa-cp.c (ipcp_update_cloned_node): Remove.
5213         (ipcp_create_replace_map): Update to VECtors.
5214         (ipcp_update_callgraph): Use virtual clones.
5215         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
5216         (ipcp_update_profiling): Do not update local profiling.
5217         (ipcp_insert_stage): Use VECtors and virtual clones.
5218         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
5219         (clone_of_p): New function.
5220         (cgraph_preserve_function_body_p): Use clone tree.
5221         (cgraph_optimize): Materialize clones.
5222         (cgraph_function_versioning): Update for VECtors.
5223         (save_inline_function_body): Use clone tree.
5224         (cgraph_materialize_clone): New function.
5225         (cgraph_materialize_all_clones): Likewise.
5226         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
5227         * ipa.c: Include gimple.h.
5228         (cgraph_remove_unreachable_nodes): Use clone tree.
5229         * ipa-prop.c (ipa_note_param_call): Update call to
5230         compute_call_stmt_bb_frequencycall.
5231         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
5232         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
5233         (copy_bb): Handle updating of clone tree; add new edge when new call
5234         appears.
5235         (expand_call_inline): Be strict about every call having edge.
5236         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
5237         (delete_unreachable_blocks_update_callgraph): New function.
5238         (tree_function_versioning): Use VECtors; always remove unreachable
5239         blocks and fold conditionals.
5240         * tree-inline.h: Do not include varray.h.
5241         (tree_function_versioning): Remove.
5242         * Makefile.in (GTFILES): Remove tree-inline.c
5243         * passes.c (do_per_function): Do only functions having body.
5244         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
5245         tree.
5246
5247 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
5248             Andrew Morrow  <acm@google.com>
5249
5250         PR c/36892
5251         * c-common.c (c_common_attribute_table): Permit deprecated
5252         attribute to take an optional argument.
5253         (handle_deprecated_attribute): If the optional argument to
5254         __attribute__((deprecated)) is not a string ignore the attribute
5255         and emit a warning.
5256
5257         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
5258         * c-typeck.c (build_component_ref): Likewise.
5259         (build_external_ref): Likewise.
5260
5261         * toplev.c (warn_deprecated_use): Add an attribute argument.
5262         Emit the message associated with __attribute__((deprecated)).
5263
5264         * toplev.h (warn_deprecated_use): Updated.
5265
5266         * doc/extend.texi: Document new optional parameter to
5267         __attribute__((deprecated))
5268
5269 2009-05-08  Michael Eager <eager@eagercon.com>
5270
5271         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
5272         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
5273
5274 2009-05-08  Richard Guenther  <rguenther@suse.de>
5275
5276         PR tree-optimization/40062
5277         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
5278         Avoid exponential behavior.
5279
5280 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
5281
5282         PR rtl-optimization/33928
5283         PR 26854
5284         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
5285         process_uses, build_single_def_use_links): New.
5286         (update_df): Update use_def_ref.
5287         (forward_propagate_into): Use get_def_for_use instead of use-def
5288         chains.
5289         (fwprop_init): Call build_single_def_use_links and let it initialize
5290         dataflow.
5291         (fwprop_done): Free use_def_ref.
5292         (fwprop_addr): Eliminate duplicate call to df_set_flags.
5293         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
5294         df_rd_simulate_one_insn): New.
5295         (df_rd_bb_local_compute_process_def): Update head comment.
5296         (df_chain_create_bb): Use the new RD simulation functions.
5297         * df.h (df_rd_simulate_artificial_defs_at_top, 
5298         df_rd_simulate_one_insn): New.
5299         * opts.c (decode_options): Enable fwprop at -O1.
5300         * doc/invoke.texi (-fforward-propagate): Document this.
5301
5302 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
5303
5304         PR c/24581
5305         * c-typeck.c (build_binary_op): Handle arithmetic between one real
5306         and one complex operand specially.
5307         * tree-complex.c (some_nonzerop): Do not identify a real value as
5308         zero if flag_signed_zeros.
5309
5310 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
5311
5312         PR rtl-optimization/33928
5313         * loop-invariant.c (record_use): Fix && vs. || mishap.
5314
5315 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
5316
5317         PR rtl-optimization/33928
5318         * loop-invariant.c (struct use): Add addr_use_p.
5319         (struct def): Add n_addr_uses.
5320         (struct invariant): Add cheap_address.
5321         (create_new_invariant): Set cheap_address.
5322         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
5323         (record_uses): Pass df_ref to record_use.
5324         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
5325         used only as such.
5326
5327 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5328
5329         * config/sh/sh.c: Do not include c-pragma.h.
5330
5331 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5332
5333         * config/spu/spu.c: Remove include of c-common.h.
5334
5335 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
5336
5337         PR c/39037
5338         * c-common.h (mark_valid_location_for_stdc_pragma,
5339         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
5340         clear_float_const_decimal64, float_const_decimal64_p): New.
5341         * c.opt (Wunsuffixed-float-constants): New.
5342         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
5343         unsuffixed float constant, handle new warning.
5344         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
5345         * c-decl.c (c_scope): New flag float_const_decimal64.
5346         (set_float_const_decimal64, clear_float_const_decimal64,
5347         float_const_decimal64_p): New.
5348         (push_scope): Set new flag.
5349         * c-parser.c (c_parser_translation_unit): Mark when it's valid
5350         to use STDC pragmas.
5351         (c_parser_external_declaration): Ditto.
5352         (c_parser_compound_statement_nostart): Ditto.
5353         * c-pragma.c (valid_location_for_stdc_pragma,
5354         mark_valid_location_for_stdc_pragma,
5355         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
5356         handle_pragma_float_const_decimal64): New.
5357         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
5358         * cp/semantics.c (valid_location_for_stdc_pragma_p,
5359         set_float_const_decimal64, clear_float_const_decimal64,
5360         float_const_decimal64_p): New dummy functions.
5361         * doc/extend.texi (Decimal Float): Remove statement that the
5362         pragma, and suffix for double constants, are not supported.
5363         * doc/invoke.texi (Warning Options): List new option.
5364         (-Wunsuffixed-float-constants): New.
5365
5366 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
5367
5368         * config/i386/i386.c: Do not include c-common.h.
5369
5370 2009-05-07  Mark Heffernan  <meheff@google.com>
5371
5372         * doc/invoke.texi (Debugging Options): Document change of debugging
5373         dump location.
5374         * opts.c (decode_options): Make dump_base_name relative to
5375         aux_base_name directory.
5376
5377 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
5378
5379         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
5380         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
5381
5382 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
5383
5384         * Makefile.in (install-plugin): Simplify a bit.
5385
5386 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
5387
5388         * Makefile.in (OBJS-common): Add regcprop.o.
5389         (regcprop.o): New.
5390         * timevar.def (TV_CPROP_REGISTERS): New.
5391         * regrename.c (regrename_optimize): Return 0.
5392         (rest_of_handle_regrename): Delete.
5393         (pass_rename_registers): Point to regrename_optimize.
5394         (struct value_data_entry, struct value_data, 
5395         kill_value_one_regno, kill_value_regno, kill_value,
5396         set_value_regno, init_value_data, kill_clobbered_value,
5397         kill_set_value, kill_autoinc_value, copy_value,
5398         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
5399         replace_oldest_value_reg, replace_oldest_value_addr,
5400         replace_oldest_value_mem, copyprop_hardreg_forward_1,
5401         debug_value_data, validate_value_data): Move...
5402         * regcprop.c: ... here.
5403         (rest_of_handle_cprop): Delete.
5404         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
5405
5406 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
5407
5408         PR middle-end/40057
5409         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
5410         GEN_INT for 1 << bitnum.
5411         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
5412         build_int_cst_type.
5413
5414 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
5415
5416         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
5417         Remove wrong description of "nand" operation.
5418
5419 2009-05-06  Richard Guenther  <rguenther@suse.de>
5420             Adam Nemet  <anemet@caviumnetworks.com>
5421
5422         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
5423         comment.  Add that if LHS is not a gimple register, then RHS1 has
5424         to be a single object (GIMPLE_SINGLE_RHS).
5425
5426 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
5427
5428         * expr.c (get_def_for_expr): Move it up in the file.
5429         (store_field): When expanding a bit-field store, look at the
5430         defining gimple stmt for the masking conversion.
5431
5432 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
5433
5434         PR middle-end/39986
5435         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
5436         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
5437         32-bit memcpy into long.
5438
5439 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
5440
5441         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
5442         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
5443         new_reg_loc_descr.
5444         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
5445         instead of appending DW_OP_deref*.
5446
5447 2009-05-06  Michael Matz  <matz@suse.de>
5448
5449         PR middle-end/40021
5450         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
5451         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
5452
5453 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
5454
5455         * Makefile.in (install-plugin): Fix srcdir handling.
5456
5457 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
5458
5459         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
5460         when processing for not_regs_needed bitmap.
5461         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
5462         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
5463         handling it for rhs. 
5464
5465 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5466
5467         * config/i386/i386.md (unnamed inc/dec peephole): Use
5468         optimize_insn_for_size_p instead of optimize_size.
5469         * config/i386/predicates.md (incdec_operand): Likewise.
5470         (aligned_operand): Likewise.
5471         * config/i386/sse.md (divv8sf3): Likewise.
5472         (sqrtv8sf2): Likewise.
5473
5474 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5475
5476         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
5477
5478         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
5479
5480 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5481
5482         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
5483         ssemodesuffixf2c with avxmodesuffixf2c.
5484
5485 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
5486
5487         PR c/40032
5488         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
5489
5490 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
5491
5492         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
5493         (struct tree_base): Adjust spacing for 8 bit boundaries.
5494         (struct tree_decl_common): Add decl_by_reference_flag bit.
5495         (DECL_BY_REFERENCE): Adjust.
5496         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
5497         print DECL_BY_REFERENCE bit.
5498         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
5499         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
5500         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
5501         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
5502         unconditionally.
5503
5504         PR middle-end/39666
5505         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
5506         range of the type, but default label is missing, add it with one
5507         of the existing labels instead of adding a new label for it.
5508
5509 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
5510
5511         * dwarf.h: Remove.
5512
5513 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
5514
5515         * Makefile.in (enable_plugin, plugin_includedir): New.
5516         (install): Depend on install-plugin.
5517         (PLUGIN_HEADERS): New.
5518         (install-plugin): New.
5519         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
5520
5521 2009-05-05  Richard Guenther  <rguenther@suse.de>
5522
5523         PR tree-optimization/40022
5524         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
5525         the only vuse.
5526         (phivn_valid_p): Fix tuplification error, simplify.
5527         (phiprop_insert_phi): Add dumps.
5528         (propagate_with_phi): Simplify.
5529
5530 2009-05-05  Richard Guenther  <rguenther@suse.de>
5531
5532         PR middle-end/40023
5533         * builtins.c (gimplify_va_arg_expr): Properly build the address.
5534
5535 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
5536
5537         * tree.h (strip_float_extensions): Remove duplicate declaration.
5538         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
5539         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
5540         block_ultimate_origin): Rearrange the declarations line to match the
5541         comment that indicates the .c file which the functions are defined.
5542         (dwarf2out_*, set_decl_rtl): Add comment.
5543         (get_base_address): Adjust comment.
5544         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
5545         declarations line and add comment.
5546         (is_builtin_name): Add blank after function name, for clarity.
5547
5548 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
5549
5550         * attribs.c (decl_attributes): Use %qE for identifiers in
5551         diagnostics.
5552         * cgraphunit.c (verify_cgraph_node): Translate function names to
5553         locale character set in diagnostics.
5554         * coverage.c (get_coverage_counts): Use %qE for identifiers in
5555         diagnostics.
5556         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
5557         Document that functions are named in UTF-8.
5558         * expr.c (expand_expr_real_1): Translate function names to locale
5559         character set in diagnostics.
5560         * gimplify.c (omp_notice_variable, omp_is_private,
5561         gimplify_scan_omp_clauses): Use %qE for identifiers in
5562         diagnostics.
5563         * langhooks.c (lhd_print_error_function): Translate function names
5564         to locale character set.
5565         * langhooks.h (decl_printable_name): Document that return value is
5566         in internal character set.
5567         * stmt.c: Include pretty-print.h
5568         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
5569         diagnostics.
5570         (resolve_operand_name_1): Translate named operand name to locale
5571         character set.
5572         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
5573         diagnostics.
5574         * toplev.c (announce_function): Translate function names to locale
5575         character set.
5576         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
5577         (default_tree_printer): Use pp_identifier or translate identifiers
5578         to locale character set.  Mark "<anonymous>" for translation.
5579         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
5580         for identifiers in diagnostics.
5581         * tree.c (handle_dll_attribute): Use %qE for identifiers in
5582         diagnostics.
5583         * varasm.c (output_constructor): Use %qE for identifiers in
5584         diagnostics.
5585
5586 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
5587
5588         * configure.ac: use ` ` instead of $()
5589         * configure: Regenerate.
5590
5591 2009-05-05  Ben Elliston  <bje@au.ibm.com>
5592
5593         * config/pa/linux-atomic.c: Eliminate conditional include of
5594         errno.h on non-LP64 systems to simplify build requirements.
5595
5596 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
5597
5598         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
5599         diagnostics.
5600         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
5601         and pass value to identifier_to_locale.
5602         (warn_variable_length_array): Make name a tree.
5603         (grokdeclarator): Separate diagnostic texts for named and unnamed
5604         declarators.  Use %qE for named declarators.
5605         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
5606         diagnostics.
5607         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
5608         identifiers in diagnostics.
5609         * c-typeck.c (push_member_name, start_init): Pass identifiers to
5610         identifier_to_locale.  Mark "anonymous" strings for translation.
5611
5612 2009-05-04  Michael Eager <eager@eagercon.com>
5613
5614         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
5615         address for DImode/DFmode only if double-precision FP regs.
5616
5617 2009-05-04  Michael Eager <eager@eagercon.com>
5618
5619         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
5620         TARGET_SINGLE_FLOAT check.
5621
5622 2009-05-04  Michael Eager <eager@eagercon.com>
5623
5624         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
5625
5626 2009-05-04  Michael Eager <eager@eagercon.com>
5627
5628         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
5629         * config/rs6000/t-xilinx: New
5630
5631 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
5632
5633         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
5634         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
5635         * gcc/explow.c (memory_address): Use target hook.
5636         * gcc/targhooks.c (default_legitimize_address): New.
5637         * gcc/targhooks.h (default_legitimize_address): New.
5638         * gcc/target.h (legitimize_address): New.
5639         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
5640         (TARGET_INITIALIZER): Include it.
5641         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
5642
5643         * config/bfin/bfin-protos.h (legitimize_address): Remove.
5644         * config/bfin/bfin.c (legitimize_address): Remove.
5645         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
5646         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
5647         Remove.
5648         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
5649         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
5650
5651         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
5652         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
5653         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
5654         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
5655         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
5656         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
5657         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
5658         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
5659         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
5660         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
5661         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
5662         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
5663         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
5664         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
5665         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
5666         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
5667         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
5668         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
5669         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
5670         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
5671         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
5672         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
5673         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
5674
5675         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
5676         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
5677         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
5678         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
5679         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
5680         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
5681         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
5682         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
5683         (thumb_legitimize_address): Delete.
5684         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
5685         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
5686         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
5687         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
5688         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
5689         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
5690         Delete.
5691         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
5692         Delete.
5693
5694         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
5695         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
5696         * config/m32r/m32r.c (m32r_legitimize_address): New.
5697         * config/m68k/m68k.c (m68k_legitimize_address): New.
5698         * config/score/score.c (score_legitimize_address): Standardize.
5699         * config/score/score3.c (score3_legitimize_address): Standardize.
5700         * config/score/score3.h (score3_legitimize_address): Adjust.
5701         * config/score/score7.c (score7_legitimize_address): Standardize.
5702         * config/score/score7.h (score7_legitimize_address): Adjust.
5703         * config/sh/sh.c (sh_legitimize_address): New.
5704         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
5705
5706         * gcc/config/s390/s390.c (legitimize_address): Rename to...
5707         (s390_legitimize_address): ... this.
5708         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
5709         (sparc_legitimize_address): ... this.
5710         * gcc/config/i386/i386.c (legitimize_address): Rename to...
5711         (ix86_legitimize_address): ... this.
5712         * gcc/config/avr/avr.c (legitimize_address): Rename to...
5713         (avr_legitimize_address): ... this.
5714         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
5715         (mn10300_legitimize_address): ... this.
5716         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
5717         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
5718         (alpha_expand_mov): Adjust call.
5719
5720         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
5721         * config/spu/spu.c (spu_legitimize_address): Likewise.
5722         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
5723         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
5724
5725 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
5726
5727         * intl.c (locale_encoding, locale_utf8): New.
5728         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
5729         * intl.h (locale_encoding, locale_utf8): Declare.
5730         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
5731         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
5732         New.
5733         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
5734         argument.
5735         (pp_tree_identifier): Define to call pp_base_tree_identifier.
5736         (pp_base_tree_identifier): Declare as function.
5737         (identifier_to_locale): Declare.
5738         * Makefile.in (pretty-print.o): Update dependencies.
5739         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
5740
5741 2009-05-04  Richard Guenther  <rguenther@suse.de>
5742
5743         PR middle-end/40015
5744         * builtins.c (fold_builtin_memory_op): Do not decay to element
5745         type if the size matches the whole array.
5746
5747 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
5748
5749         * expmed.c (synth_mult): When trying out a shift, pass the result
5750         of a signed shift.
5751
5752 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
5753
5754         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
5755         (shiftsub1_cost): New.
5756         (init_expmed): Compute shiftsub1_cost.
5757         (synth_mult): Optimize multiplications by constants of the form
5758         -(2^^m-1) for some constant positive integer m.
5759
5760 2009-05-03  Richard Guenther  <rguenther@suse.de>
5761
5762         PR c/39983
5763         * c-typeck.c (array_to_pointer_conversion): Do not built
5764         ADDR_EXPRs of arrays of pointer-to-element type.
5765         * c-gimplify.c (c_gimplify_expr): Revert change fixing
5766         up wrong ADDR_EXPRs after-the-fact.
5767         * c-common.c (strict_aliasing_warning): Strip pointer
5768         conversions for obtaining the original type.
5769         * builtins.c (fold_builtin_memset): Handle array types.
5770         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
5771         and array types
5772
5773 2009-05-03  Richard Guenther  <rguenther@suse.de>
5774
5775         PR middle-end/23329
5776         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
5777         Do not lose casts from array types with unknown extent to array
5778         types with known extent.
5779         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
5780         alias set compatibility.
5781
5782 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5783
5784         * flags.h (extra_warnings): Delete.
5785         * toplev.c (process_options): Handle Wuninitialized here.
5786         * opts.c (extra_warnings): Delete.
5787         (set_Wextra): Delete.
5788         (common_handle_option): -Wextra can be handled automatically.
5789         * c-opts.c (c_common_handle_option): Delete obsolete code.
5790         (c_common_post_options): Simplify comment.
5791         * common.opt (W): Add Var.
5792         (Wextra): Add Var.
5793         (Wuninitialized): Initialize to -1.
5794
5795 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
5796             Richard Guenther  <rguenther@suse.de>
5797
5798         * expr.c (get_def_for_expr): New function.
5799         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
5800         SSA rather than trees.
5801         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
5802         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
5803         
5804 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
5805
5806         * c-common.c (reswords): Add _Imaginary.
5807         * c-common.c (enum rid): Add RID_IMAGINARY.
5808
5809 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
5810
5811         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
5812         Patch by Richard Guenther.
5813
5814 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
5815
5816         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
5817         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
5818         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
5819         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
5820         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
5821         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
5822         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
5823         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
5824         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
5825         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
5826         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
5827         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
5828         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
5829         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
5830         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
5831         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
5832         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
5833         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
5834
5835 2009-05-02  Richard Guenther  <rguenther@suse.de>
5836
5837         PR tree-optimization/39940
5838         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
5839         doing so.
5840
5841 2009-05-02  Richard Guenther  <rguenther@suse.de>
5842
5843         PR middle-end/40001
5844         * tree-ssa.c (execute_update_addresses_taken): Properly check
5845         if we can mark a variable DECL_GIMPLE_REG_P.
5846         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
5847         back to the end of the function.
5848         (is_gimple_reg_type): Remove complex type special casing.
5849         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
5850         if not optimizing.
5851
5852 2009-05-02  Ben Elliston  <bje@au.ibm.com>
5853
5854         * doc/collect2.texi (Collect2): Document search path behaviour
5855         when configured with --with-ld.
5856
5857 2009-05-02  Jan Hubicka  <jh@suse.cz>
5858
5859         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
5860         parameter; update callers.
5861         (coalesce_cost_edge): EH edges are costier because they needs
5862         splitting even if not critical and even more costier when there are
5863         multiple EH predecestors.
5864
5865 2009-05-02  Jan Hubicka  <jh@suse.cz>
5866
5867         * except.c (remove_eh_handler_and_replace): Handle updating after
5868         removing TRY blocks.
5869
5870 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
5871
5872         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
5873
5874 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
5875
5876         * varasm.c: Do not include c-pragma.h.
5877         * attribs.c: Do not incude c-common.h.
5878
5879 2009-05-01  Michael Matz  <matz@suse.de>
5880
5881         * calls.c (initialize_argument_information): Handle SSA names like
5882         decls with a non MEM_P DECL_RTL.
5883
5884 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
5885
5886         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
5887         * ipa-utils.c: Likewise.
5888         * ipa-type-escape.c: Likewise.
5889         * cgraphunit.c Do not include c-common.h.
5890         * ipa-pure-const.c: Likewise.
5891         * tree-if-conv.c: Likewise.
5892         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
5893         * ipa-struct-reorg.c: Likewise.
5894         * tree-nomudflap.c: Likewise.
5895         * tree-ssa-structalias.c: Likewise.
5896
5897 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
5898
5899         * store-motion.c: Many cleanups to make this pass a first-class
5900         citizen instead of an appendix to gcse load motion.  Add TODO list
5901         to make this pass faster/cleaner/better.
5902
5903         (struct ls_expr): Post gcse.c-split cleanups.
5904         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
5905         "stores" field to "avail_stores".
5906         (pre_ldst_mems): Rename to store_motion_mems.
5907         (pre_ldst_table): Rename to store_motion_mems_table.
5908         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
5909         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
5910         (ldst_entry): Rename to st_expr_entry, update users.
5911         (free_ldst_entry): Rename to free_st_expr_entry, update users.
5912         (free_ldst_mems): Rename to free_store_motion_mems, update users.
5913         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
5914         update caller.
5915         (first_ls_expr): Rename to first_st_expr, update users.
5916         (next_ls_expr): Rename to next_st_expr, update users.
5917         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
5918         fields properly for store motion instead of names inherited from load
5919         motion in gcse.c.
5920         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
5921         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
5922         are done with it.
5923
5924         (ae_kill): Rename to st_kill, update users.
5925         (ae_gen): Rename to st_avloc, update users.
5926         (transp): Rename to st_transp, update users.
5927         (pre_insert_map): Rename to st_insert_map, update users.
5928         (pre_delete_map): Rename to st_delete_map, update users.
5929         (insert_store, build_store_vectors, free_store_memory,
5930         one_store_motion_pass): Update for abovementioned changes.
5931
5932         (gcse_subst_count, gcse_create_count): Remove.
5933         (one_store_motion_pass): New statistics counters "n_stores_deleted"
5934         and "n_stores_created", local variables.
5935
5936         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
5937         use for_each_rtx.
5938
5939         (regvec, compute_store_table_current_insn): Remove.
5940         (reg_set_info, reg_clear_last_set): Remove.
5941         (compute_store_table): Use DF caches instead of local dataflow
5942         solvers.
5943
5944 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
5945
5946         * c-objc-common.c (c_tree_printer): Print identifiers with
5947         pp_identifier, not pp_string.  Mark "({anonymous})" for
5948         translation.
5949         * c-pretty-print.c (pp_c_ws_string): New.
5950         (pp_c_cv_qualifier, pp_c_type_specifier,
5951         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
5952         pp_c_storage_class_specifier, pp_c_function_specifier,
5953         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
5954         pp_c_primary_expression, pp_c_postfix_expression,
5955         pp_c_unary_expression, pp_c_shift_expression,
5956         pp_c_relational_expression, pp_c_equality_expression,
5957         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
5958         use pp_string and pp_c_ws_string in place of pp_identifier and
5959         pp_c_identifier for non-identifiers.  Mark English strings for
5960         translation.
5961         * c-pretty-print.h (pp_c_ws_string): Declare.
5962
5963 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
5964             Roland McGrath <roland@redhat.com>
5965
5966         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
5967         (ENABLE_LD_BUILDID): New configuration option.
5968         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
5969         (LINK_BUILDID_SPEC): New macro.
5970         (init_spec): If defined, prepend it between LINK_EH_SPEC and
5971         link_spec.
5972         * doc/install.texi: Document --enable-linker-build-id option.
5973         * configure: Rebuild.
5974         * config.in: Rebuild.
5975
5976 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
5977
5978         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
5979         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
5980         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
5981         MIPS_GP_SAVE_AREA_SIZE.
5982         * config/mips/mips.c (struct mips_frame_info): Update comment
5983         before arg_pointer_offset and hard_frame_pointer_offset.
5984         (mips_compute_frame_info): Update diagram before function: to
5985         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
5986         indicate the position of frame_pointer_rtx with -fstack-protector and
5987         to show args_size.  Don't allocate cprestore area for leaf functions
5988         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
5989         cprestore_size.
5990         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
5991
5992 2009-04-30  Michael Matz  <matz@suse.de>
5993
5994         PR tree-optimization/39955
5995         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
5996
5997 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
5998
5999         * ira.c (setup_cover_and_important_classes):  Use safe macro
6000         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
6001         directly.
6002         * genpreds.c (write_tm_preds_h):  Output suitable definition of
6003         REG_CLASS_FOR_CONSTRAINT.
6004
6005 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
6006
6007         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
6008         instead of an int.
6009         * bitmap.c (bitmap_descriptor): Likewise.
6010         * ggc-common.c (loc_descriptor): Likewise.
6011         * varray.c (varray_descriptor): Likewise.
6012         * vec.c (vec_descriptor): Likewise.
6013
6014 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
6015
6016         * Makefile.in (dce.o): Add $(EXCEPT_H).
6017         * dce.c: Include except.h and delete redundant vector definitions.
6018         (deletable_insn_p): Return false for non-call insns that can throw
6019         if DF is running.
6020
6021 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
6022
6023         * gcse.c (ae_gen): Remove.
6024         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
6025         and make non-static function to make it available in store-motion.c.
6026         Update call sites with search-and-replace.
6027         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
6028         extract_mentioned_regs, extract_mentioned_regs_helper,
6029         find_moveable_store, compute_store_table, load_kills_store, find_loads,
6030         store_killed_in_insn, store_killed_after, store_killed_before,
6031         build_store_vectors, insert_insn_start_basic_block, insert-store,
6032         remove_reachable_equiv_notes, replace_store_insn, delete_store,
6033         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
6034         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
6035         * store-motion.c: ...new file.  Also copy data structures from gcse.c
6036         and clean up to remove parts not used by store motion.
6037         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
6038         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
6039
6040 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6041
6042         PR target/38571
6043         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
6044         when optimizing for size.
6045
6046 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
6047
6048         * gcse.c (gcse_constant_p): Fix typo in last change.
6049
6050 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
6051
6052         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
6053
6054 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
6055
6056         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
6057
6058 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
6059
6060         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
6061         CONST_HIGH_PART result.
6062
6063 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
6064
6065         * config/avr/avr.c (initial_elimination_offset): Rename to
6066         avr_initial_elimination_offset.
6067         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
6068         change return type to bool.
6069         (avr_can_eliminate): New function.
6070         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
6071         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
6072         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
6073         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
6074         avr_initial_elimination_offset.
6075         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
6076         (avr_initial_elimination_offset): Define.
6077
6078 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
6079             Steven Bosscher  <steven@gcc.gnu.org>
6080
6081         PR rtl-optimization/39938
6082         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
6083         * cfgrtl.c: Include insn-attr.h.
6084         (rest_of_pass_free_cfg): New function.
6085         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
6086         * resource.c (init_resource_info): Remove call to df_analyze.
6087
6088 2009-04-29  Richard Guenther  <rguenther@suse.de>
6089
6090         PR target/39943
6091         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
6092         allow conversion to signed integers.
6093
6094 2009-04-29  Richard Guenther  <rguenther@suse.de>
6095
6096         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
6097         shifts of floating point vectors if the shift amount is
6098         a constant multiple of the element size.
6099
6100 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
6101             Michael Matz  <matz@suse.de>
6102
6103         PR middle-end/39927
6104         PR bootstrap/39929
6105         * tree-outof-ssa.c (emit_partition_copy): New function.
6106         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
6107         insert_part_to_rtx_on_edge): Perform the partition base var
6108         copy using emit_partition_copy.
6109         (insert_value_copy_on_edge): Convert constants to the right mode.
6110         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
6111         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
6112
6113 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6114
6115         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
6116         scan backwards to try to find a constant to initialize it.
6117
6118         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
6119         insn before the loop_end instruction, don't look past labels.
6120
6121 2009-04-29  Richard Guenther  <rguenther@suse.de>
6122
6123         PR middle-end/39937
6124         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
6125         loose type conversions.
6126         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
6127         stmts only if there are no uses of its definition.
6128
6129 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6130
6131         * config/bfin/bfin.h (splitting_loops): Declare.
6132         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
6133         Reorder bit definitions to be ascending.
6134         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
6135         * config/bfin/bfin.c (splitting_loops): New variable.
6136         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
6137         (struct loop_info): Remove members INIT and LOOP_INIT.
6138         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
6139         the LSETUP sequence.  Allow LC to be loaded from any register, but
6140         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
6141         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
6142         set to 1.
6143         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
6144         of reload_completed.
6145
6146         From Jie Zhang:
6147         * config/bfin/bfin.md (movsi_insn): Refine constraints.
6148
6149 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
6150
6151         * Makefile.in (PLUGIN_VERSION_H): New.
6152         (OBJS-common): Remove plugin-version.o.
6153         (plugin.o): Depend on (PLUGIN_VERSION_H).
6154         (plugin-version.o): Remove.
6155         * configure: Regenerate
6156         * configure.ac: Create plugin-version.h.
6157         * gcc-plugin.h (plugin_gcc_version): Remove.
6158         (plugin_default_version_check): Change signature.
6159         * plugin-version.c: Remove.
6160         * plugin.c: Include plugin-version.h.
6161         (str_plugin_gcc_version_name): Remove.
6162         (try_init_one_plugin): Pass gcc version to plugin_init.
6163         (plugin_default_version_check): Both gcc and plugin versions are now
6164         arguments.
6165
6166 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6167         
6168         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
6169         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
6170         Remove special case testing for last insn of inner loops. Don't fail
6171         if the loop ends with a jump, emit an extra nop instead.
6172
6173         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
6174         DREGS rather than comparing directly.  Remove code that tries to
6175         account for latencies.
6176
6177 2009-04-29  Richard Guenther  <rguenther@suse.de>
6178
6179         PR tree-optimization/39941
6180         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
6181         eliminating an indirect call.
6182
6183 2009-04-29  Richard Guenther  <rguenther@suse.de>
6184
6185         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
6186         parameter.  Allow invariants as base if !require_lvalue.
6187         (verify_gimple_assign_single): Adjust.
6188
6189 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
6190
6191         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
6192         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
6193         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
6194         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
6195         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
6196         a VEC_SELECT.
6197         * config/bfin/bfin.c (bfin_expand_builtin,
6198         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
6199
6200 2009-04-28  Richard Guenther  <rguenther@suse.de>
6201
6202         * tree-vect-loop.c (get_initial_def_for_induction): Use
6203         correct types for pointer increment.
6204
6205 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6206
6207         * toplev.c (print_version): Update GMP version string calculation.
6208
6209 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6210
6211         PR rtl-optimization/39938
6212         * resource.c (init_resource_info): Add call to df_analyze.
6213
6214 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6215
6216         * config/alpha/alpha.md (usegp): Cast the result of
6217         alpha_find_lo_sum_using_gp to enum attr_usegp.
6218         * config/alpha/alpha.c (override_options): Remove end-of-structure
6219         marker element from cpu_table.  Use array size of cpu_table to handle
6220         -mcpu and -mtune options.
6221         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
6222
6223 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
6224
6225         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
6226         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
6227         tune_32 and tune_64.
6228         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
6229         support on PowerPC.
6230         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
6231         * config/rs6000/option-defaults.h: ... here.  New file.
6232         (OPT_64, OPT_32): Define.
6233         (MASK_64BIT): Define to 0 if not already defined.
6234         (OPT_ARCH64, OPT_ARCH32): Define.
6235         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
6236         and tune_64.
6237
6238 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6239
6240         * config/arm/arm.c (arm_override_options): Emit error on using
6241         fpa with AAPCS.
6242
6243 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6244
6245         PR rtl-optimization/39914
6246         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6247         registers for allocnos created from user-defined variables only
6248         when not optimizing.
6249
6250 2009-04-28  Richard Guenther  <rguenther@suse.de>
6251
6252         PR middle-end/39937
6253         * fold-const.c (fold_binary): Use distribute_real_division only
6254         on float types.
6255
6256 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
6257
6258         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
6259         add hpux-stdint.h to tm_file.
6260         (hppa[12]*-*-hpux11*): Ditto.
6261         (ia64*-*-hpux*): Ditto.
6262         * config/hpux-stdint.h: New.
6263         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
6264         __STDC_EXT__ for all compiles.
6265         * config/pa/pa-hpux.h: Ditto.
6266         * config/pa/pa-hpux10.h: Ditto.
6267         * config/pa/pa-hpux11.h: Ditto.
6268
6269 2009-04-28  Catherine Moore  <clm@codesourcery.com>
6270
6271         * debug.h (set_name): Add comment.
6272
6273 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
6274
6275         PR target/39929
6276         * config/darwin.c (machopic_gen_offset): Check
6277         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
6278         * config/arm/arm.c (require_pic_register): Likewise.
6279
6280 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
6281
6282         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
6283         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
6284         m32c_promote_prototypes): Delete.
6285
6286 2009-04-28  Michael Matz  <matz@suse.de>
6287
6288         PR middle-end/39922
6289         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
6290         constants.
6291
6292 2009-04-28  Richard Guenther  <rguenther@suse.de>
6293
6294         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
6295
6296 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6297
6298         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
6299         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
6300         * config/arm/arm-tune.md: Regenerate.
6301
6302 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
6303
6304         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
6305         block if there are complex incoming edges.
6306         (sel_merge_blocks): Remove useless assert.
6307         (sel_redirect_edge_and_branch): Check that edge was redirected.
6308         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
6309         (sel_find_rgns): Delete declaration.
6310         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
6311         the region when it is not a preheader.
6312
6313 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6314
6315         PR c/39323
6316         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
6317
6318 2009-04-28  Richard Guenther  <rguenther@suse.de>
6319
6320         * tree.h (SSA_NAME_VALUE): Remove.
6321         (struct tree_ssa_name): Remove value_handle member.
6322         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
6323         array for jump threading.
6324         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
6325         SSA_NAME_VALUEs.
6326         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
6327         * tree-flow.h (threadedge_initialize_values): Declare.
6328         (threadedge_finalize_values): Likewise.
6329         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
6330         (SSA_NAME_VALUE): Define.
6331         (threadedge_initialize_values): New function.
6332         (threadedge_finalize_values): Likewise.
6333         * tree-ssa-dom.c (ssa_name_values): New global variable.
6334         (SSA_NAME_VALUE): Define.
6335         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
6336
6337 2009-04-28  Ira Rosen  <irar@il.ibm.com>
6338
6339         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
6340         Use REPORT_VECTORIZED_LOCATIONS instead 
6341         REPORT_VECTORIZED_LOOPS.
6342         * tree-vectorizer.c (vect_verbosity_level): Make static.
6343         (vect_loop_location): Rename to vect_location.
6344         (vect_set_verbosity_level): Update comment.
6345         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
6346         and vect_location.
6347         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
6348         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
6349         instead REPORT_UNVECTORIZED_LOOPS.
6350         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
6351         and vect_loop_def to vect_external_def and vect_internal_def.
6352         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
6353         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
6354         REPORT_UNVECTORIZED_LOCATIONS.
6355         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
6356         and vect_used_in_loop and to vect_unused_in_scope and 
6357         vect_used_in_scope.
6358         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
6359         (vect_verbosity_level): Remove declaration.
6360         (vect_analyze_operations): Likewise.
6361         (vect_analyze_stmt): Declare.
6362         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
6363         REPORT_UNVECTORIZED_LOCATIONS.
6364         (vect_get_loop_niters): Fix indentation.
6365         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
6366         (vect_analyze_loop_operations): New function.
6367         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
6368         vect_analyze_operations.
6369         (vect_is_simple_reduction): Use new names.
6370         (vectorizable_live_operation, vect_transform_loop): Likewise.
6371         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
6372         to specify whether the data references can be a part of interleaving
6373         chain.
6374         (vect_analyze_data_ref_dependence): Use new names.
6375         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
6376         (vect_create_addr_base_for_vector_ref): Remove redundant code.
6377         * tree-vect-patterns.c (widened_name_p): Use new names.
6378         (vect_recog_dot_prod_pattern): Likewise.
6379         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
6380         (process_use, vect_mark_stmts_to_be_vectorized, 
6381         vect_model_simple_cost, vect_model_store_cost,
6382         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
6383         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
6384         vectorizable_operation, vectorizable_type_demotion,
6385         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
6386         vectorizable_condition): Likewise.
6387         (vect_analyze_operations): Split into vect_analyze_loop_operations
6388         and ...
6389         (vect_analyze_stmt): ... new function.
6390         (new_stmt_vec_info): Use new names.
6391         (vect_is_simple_use): Use new names and fix comment.
6392         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
6393         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
6394
6395 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
6396
6397         PR target/39911
6398         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
6399         and integer modes for x87 operands.  Do not ICE for unsupported size,
6400         generate error instead.  Generate error for unsupported operand types.
6401         ['z']: Do not handle HImode memory operands specially.  Warning
6402         for floating-point operands.  Fallthru to 'Z' for unsupported operand
6403         types.  Do not ICE for unsupported size, generate error instead.
6404         (output_387_binary_op): Use %Z to output operands.
6405         (output_fp_compare): Ditto.
6406         (output_387_reg_move): Ditto.
6407
6408 2009-04-28  Ben Elliston  <bje@au.ibm.com>
6409
6410         PR c++/35652
6411         Revert:
6412
6413         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6414
6415         * builtins.c (c_strlen): Do not warn here.
6416         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6417         * c-common.c (pointer_int_sum): Take an explicit location.
6418         Warn about offsets out of bounds.
6419         * c-common.h (pointer_int_sum): Adjust declaration.
6420
6421 2009-04-27  Ian Lance Taylor  <iant@google.com>
6422
6423         * collect2.c (is_ctor_dtor): Change type of ret field in struct
6424         names to symkind.
6425         * dce.c (run_fast_df_dce): Change type of old_flags to int.
6426         * df-core.c (df_set_flags): Change return type to int.  Change
6427         type of old_flags to int.
6428         (df_clear_flags): Likewise.
6429         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
6430         (df_get_conditional_uses): Likewise.
6431         * df.h (df_set_flags, df_clear_flags): Update declarations.
6432         * dwarf2out.c (struct indirect_string_node): Change type of form
6433         field to enum dwarf_form.
6434         (AT_string_form): Change return type to enum dwarf_form.
6435         * fixed-value.c (fixed_compare): Add cast to enum type.
6436         * fwprop.c (update_df): Change 0 to VOIDmode.
6437         * gensupport.c: Change 0 to UNKNOWN.
6438         * gimple.h (gimple_cond_code): Add cast to enum type.
6439         * haifa-sched.c (reemit_notes): Add cast to enum type.
6440         * hooks.c (hook_int_void_no_regs): Remove function.
6441         * hooks.h (hook_int_void_no_regs): Remove declaration.
6442         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
6443         * predict.c (combine_predictions_for_insn): Add casts to enum type.
6444         * real.c (real_arithmetic): Add cast to enum type.
6445         (real_compare): Likewise.
6446         * target.h (struct gcc_target): Change return type of
6447         branch_target_register_class to enum reg_class.
6448         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
6449         default_branch_target_register_class.
6450         * targhooks.c (default_branch_target_register_class): New function.
6451         * targhooks.h (default_branch_target_register_class): Declare.
6452         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
6453         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
6454         cast to int.
6455         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
6456         ERROR_MARK.
6457         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
6458         vect_uninitialized_def.  Change 0 to ERROR_MARK.
6459         * tree-vect-stmts.c (supportable_widening_operation): Don't
6460         initialize icode1 and icode2.
6461         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
6462         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
6463         and to STD_C89.
6464         (cmn_err_flag_specs): Change 0 to STD_C89.
6465         (cmn_err_char_table): Likewise.
6466         * config/arm/arm.c (get_arm_condition_code): Change type of code
6467         to enum arm_cond_code.
6468         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
6469         (IWMMXT_BUILTIN2): Likewise.
6470         (neon_builtin_type_bits): Don't define typedef.
6471         (neon_builtin_datum): Change type of bits field to int.
6472         (arm_expand_neon_args): Add cast to enum type.
6473         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
6474         TLS_MODEL_NONE.
6475         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
6476         casts to enum type.
6477         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
6478         MIPS_FP_COND_f.
6479         * config/mips/mips.md (jal_macro): Return enum constant.
6480         (single_insn): Likewise.
6481         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
6482         CODE_FOR_nothing.
6483         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6484         casts to enum type.
6485         * config/s390/s390.c (s390_tune_flags): Change type to int.
6486         (s390_arch_flags): Likewise.
6487         (s390_handle_arch_option): Change flags field of struct pta to int.
6488         * config/s390/s390.h (s390_tune_flags): Update declaration.
6489         (s390_arch_flags): Likewise.
6490         * config/sh/sh.c (prepare_move_operands): Compare
6491         tls_symbolic_operand result with enum constant.
6492         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
6493         (sh_expand_prologue): Add cast to enum type.
6494         (sh_expand_epilogue): Likewise.
6495         (tls_symbolic_operand): Change return type to enum tls_model.
6496         (fpscr_set_from_mem): Add cast to enum type.
6497         (legitimize_pic_address): Compare tls_symbolic_operand result with
6498         enum constant.
6499         (sh_target_reg_class): Change return type to enum reg_class.
6500         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
6501         PROCESSOR_xxx.
6502         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
6503         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
6504         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
6505         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
6506         (delayed_branch, tls_call_delay): Likewise.
6507         (eligible_for_sibcall_delay): Likewise.
6508         (eligible_for_return_delay): Likewise. 
6509         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
6510         (spu_expand_builtin_1): Likewise.
6511
6512         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
6513         for all types of conversions.
6514         (output_init_element): Issue -Wc++-compat warning if needed when
6515         initializing a bitfield with enum type.
6516         * c-parser.c (c_parser_expression): Set original_type to
6517         original_type of right hand operand of comman operator.
6518
6519 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6520
6521         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
6522         grammar nits.
6523         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
6524         * doc/cpp.texi (Standard Predefined Macros)
6525         (Implementation-defined behavior): Likewise.
6526         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
6527         * doc/gimple.texi (GIMPLE Exception Handling)
6528         (@code{GIMPLE_ASSIGN}): Likewise.
6529         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
6530         * doc/invoke.texi (Warning Options, Optimize Options)
6531         (AVR Options, Darwin Options): Likewise.
6532         (Optimize Options): Reformulate -fwhole-program description.
6533         * doc/loop.texi (Lambda): Likewise.
6534         * doc/md.texi (Output Template, Define Constraints)
6535         (Standard Names, Insn Splitting): Likewise.
6536         * doc/options.texi (Option properties): Likewise.
6537         * doc/passes.texi (Tree-SSA passes): Likewise.
6538         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
6539         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
6540         (File Names and DBX): Likewise.
6541         * doc/trouble.texi (Incompatibilities): Likewise.
6542
6543 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
6544
6545         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
6546         instruction is correct.
6547
6548 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
6549
6550         Allow non-constant arguments to conversion intrinsics.
6551         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
6552         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
6553         * spu.c (print_operand): Handle 'v' and 'w'.
6554         (exp2_immediate_p, spu_gen_exp2): Define.
6555         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
6556         spu_convtf_1): Update parameter descriptions.
6557         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
6558         * constraints.md ('v', 'w'): New.
6559         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
6560         Remove.
6561         (i2f, I2F): New define_mode_attr.
6562         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
6563         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
6564         fixuns_truncv4sfv4si2):  Update to use mode attribute.
6565         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
6566         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
6567         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
6568         patterns for combine.
6569
6570 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
6571
6572         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
6573         (cprop, hoist, pre, store_motion): New debug counters.
6574         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6575         is not an RTL pass anymore.
6576         (pass_profiling): Remove extern decl for pass removed in 2005.
6577         (pass_gcse, pass_jump_bypass): Remove.
6578         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
6579         to 0 for clean state.
6580         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
6581         * cse.c (gate_handle_cse_after_global_opts,
6582         rest_of_handle_cse_after_global_opts): New functions.
6583         (pass_cse_after_global_opts): New pass, does local CSE.
6584         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
6585         (TV_CPROP): New timevar.
6586         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
6587         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
6588         (gcse_main, recompute_all_luids): Remove.
6589         (compute_hash_table_work): Call max_reg_num instead of reading
6590         max_gcse_regno.
6591         (cprop_jump): Don't set run_jump_opt_after_gcse.
6592         (constprop_register): Always allow to alter jumps.
6593         (cprop_insn): Likewise.
6594         (do_local_cprop): Likewise.
6595         (local_cprop_pass): Likewise.  Return non-zero if something changed.
6596         (cprop): Remove function, fold interesting bits into one_cprop_pass.
6597         (find_implicit_sets): Add note about missed optimization opportunity.
6598         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
6599         pass_rtl_cprop execute function.
6600         Don't bother tracking the pass number, each pass gets its own dumpfile
6601         now anyway.
6602         Always allow to alter jumpsand bypass jumps.
6603         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
6604         will just find no suitable set.
6605         (pre_edge_insert): Fix dumping, this function is for PRE only.
6606         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
6607         pass_rtl_pre execute function.
6608         (hoist_code): Return non-zero if something changed.  Keep track of
6609         substitutions and insertions for statistics gathering similar to PRE.
6610         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
6611         called from the pass_rtl_hoist execute function.  Show pass statistics.
6612         (compute_store_table): Use max_reg_num directly instead of using the
6613         formerly global max_gcse_regno.
6614         (build_store_vectors): Likewise.
6615         (replace_store_insn): Fix dumping.
6616         (store_motion): Rename to ...
6617         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
6618         pass, called from the pass_rtl_store_motion execute function.  Keep
6619         track of substitutions and insertions for statistics gathering similar
6620         to PRE.
6621         (bypass_jumps): Remove, fold interesting bits into ...
6622         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
6623         from the pass_rtl_cprop execute function.
6624         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
6625         pass_jump_bypass): Remove.
6626         (gate_handle_gcse, rest_of_handle_gcse): Remove.
6627         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
6628         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
6629         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
6630         (gate_rtl_store_motion, execute_rtl_store_motion,
6631         pass_rtl_store_motion): New.
6632         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
6633         make it clear that -fcse-skip-blocks is a no-op for backward compat.
6634         * passes.c (init_optimization_passes): Remove pass_gcse and
6635         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
6636         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
6637         instead of pass_jump_bypass.
6638
6639 2009-04-27  Richard Guenther  <rguenther@suse.de>
6640
6641         PR middle-end/39928
6642         * gimplify.c (gimplify_expr): If we are required to create
6643         a temporary make sure it ends up as register.
6644
6645 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
6646
6647         PR target/39903
6648         * config/i386/i386.c (construct_container): Don't call
6649         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
6650         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
6651
6652 2009-04-27  Michael Matz  <matz@suse.de>
6653
6654         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
6655         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
6656         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
6657         (dump_replaceable_exprs): Take a bitmap.
6658         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
6659         array.
6660         (expand_gimple_basic_block): Likewise.
6661         * tree-ssa-ter.c (struct temp_expr_table_d): Make
6662         replaceable_expressions member a bitmap.
6663         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
6664         (mark_replaceable): Likewise.
6665         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
6666         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
6667
6668 2009-04-27  Richard Guenther  <rguenther@suse.de>
6669
6670         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
6671         (verify_stmts): Dispatch to gimple/type verification code.
6672         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
6673         issue with call argument types.
6674
6675 2009-04-27  Michael Matz  <matz@suse.de>
6676
6677         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
6678         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
6679         to above.
6680
6681 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
6682             Eric Botcazou  <ebotcazou@adacore.com>
6683
6684         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
6685         a label's basic block.
6686         (mark_target_live_regs): Tidy and rework obsolete comments.
6687         Change back DF problem to LIVE.  If a label starts a basic block,
6688         assume that all registers that used to be live then still are.
6689         (init_resource_info): If a label starts a basic block, set its
6690         BLOCK_FOR_INSN accordingly.
6691         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
6692
6693 2009-04-27  Richard Guenther  <rguenther@suse.de>
6694
6695         * tree-flow-inline.h (function_ann): Remove.
6696         (get_function_ann): Likewise.
6697         * tree-dfa.c (create_function_ann): Remove.
6698         * tree-flow.h (struct static_var_ann_d): Remove.
6699         (struct function_ann_d): Likewise.
6700         (union tree_ann_d): Remove fdecl member.
6701         (function_ann_t): Remove.
6702         (function_ann, get_function_ann, create_function_ann): Remove
6703         declarations.
6704
6705 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
6706
6707         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
6708
6709 2009-04-27  Jan Hubicka  <jh@suse.cz>
6710
6711         * ipa-pure-const.c (struct funct_state_d): New fields
6712         state_previously_known, looping_previously_known; remove
6713         state_set_in_source.
6714         (analyze_function): Use new fields.
6715         (propagate): Avoid assumption that state_set_in_source imply
6716         nonlooping.
6717
6718         * tree-ssa-loop-niter.c (finite_loop_p): New function.
6719         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
6720         * cfgloop.h (finite_loop_p): Declare.
6721
6722 2009-04-26  Michael Matz  <matz@suse.de>
6723
6724         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
6725
6726 2009-04-26  Michael Matz  <matz@suse.de>
6727
6728         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
6729         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
6730         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
6731         pass_mark_used_blocks): Remove.
6732         * tree-optimize.c (pass_free_datastructures,
6733         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
6734         * passes.c (init_optimization_passes): Don't call
6735         pass_mark_used_blocks, remove dead code.
6736
6737 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
6738
6739         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
6740         * tree-ssa-live.h (register_ssa_partition): Likewise.
6741
6742 2009-04-26  Michael Matz  <matz@suse.de>
6743
6744         Expand from SSA.
6745         * builtins.c (fold_builtin_next_arg): Handle SSA names.
6746         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
6747         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
6748         SSA names. 
6749         (compare_pairs): Swap cost comparison.
6750         (coalesce_ssa_name): Don't use change_partition_var.
6751         * tree-nrv.c (struct nrv_data): Add modified member.
6752         (finalize_nrv_r): Set it.
6753         (tree_nrv): Use it to update statements.
6754         (pass_nrv): Require PROP_ssa.
6755         * tree-mudflap.c (mf_decl_cache_locals,
6756         mf_build_check_statement_for): Use make_rename_temp.
6757         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
6758         * alias.c (find_base_decl): Handle SSA names.
6759         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
6760         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
6761         * rtl.h (set_reg_attrs_for_parm): Declare.
6762         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
6763         to "optimized", remove unused locals at finish.
6764         (execute_free_datastructures): Make global, call
6765         delete_tree_cfg_annotations.
6766         (execute_free_cfg_annotations): Don't call
6767         delete_tree_cfg_annotations.
6768
6769         * ssaexpand.h: New file.
6770         * expr.c (toplevel): Include ssaexpand.h.
6771         (expand_assignment): Handle SSA names the same as register variables.
6772         (expand_expr_real_1): Expand SSA names.
6773         * cfgexpand.c (toplevel): Include ssaexpand.h.
6774         (SA): New global variable.
6775         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
6776         (SSAVAR): New macro.
6777         (set_rtl): New helper function.
6778         (add_stack_var): Deal with SSA names, use set_rtl.
6779         (expand_one_stack_var_at): Likewise.
6780         (expand_one_stack_var): Deal with SSA names.
6781         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
6782         before unique numbers.
6783         (expand_stack_vars): Use set_rtl.
6784         (expand_one_var): Accept SSA names, add asserts for them, feed them
6785         to above subroutines.
6786         (expand_used_vars): Expand all partitions (without default defs),
6787         then only the local decls (ignoring those expanded already).
6788         (expand_gimple_cond): Remove edges when jumpif() expands an
6789         unconditional jump.
6790         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
6791         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
6792         SSA name.
6793         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
6794         members of SA; deal with PARM_DECL partitions here; expand
6795         all PHI nodes, free tree datastructures and SA.  Commit instructions
6796         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
6797         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
6798         info and statements at start, collect garbage at finish.
6799         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
6800         (VAR_ANN_PARTITION) Remove.
6801         (change_partition_var): Don't declare.
6802         (partition_to_var): Always return SSA names.
6803         (var_to_partition): Only accept SSA names.
6804         (register_ssa_partition): Only check argument.
6805         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
6806         member.
6807         (delete_var_map): Don't free it.
6808         (var_union): Only accept SSA names, simplify.
6809         (partition_view_init): Mark only useful SSA names as used.
6810         (partition_view_fini): Only deal with SSA names.
6811         (change_partition_var): Remove.
6812         (dump_var_map): Use ssa_name instead of partition_to_var member.
6813         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
6814         basic blocks.
6815         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
6816         (struct _elim_graph): New member const_dests; nodes member vector of
6817         ints.
6818         (set_location_for_edge): New static helper.
6819         (create_temp): Remove.
6820         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
6821         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
6822         (new_elim_graph): Allocate const_dests member.
6823         (clean_elim_graph): Truncate const_dests member.
6824         (delete_elim_graph): Free const_dests member.
6825         (elim_graph_size): Adapt to new type of nodes member.
6826         (elim_graph_add_node): Likewise.
6827         (eliminate_name): Likewise.
6828         (eliminate_build): Don't take basic block argument, deal only with
6829         partition numbers, not variables.
6830         (get_temp_reg): New static helper.
6831         (elim_create): Use it, deal with RTL temporaries instead of trees.
6832         (eliminate_phi): Adjust all calls to new signature.
6833         (assign_vars, replace_use_variable, replace_def_variable): Remove.
6834         (rewrite_trees): Only do checking.
6835         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
6836         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
6837         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
6838         contains_tree_r, MAX_STMTS_IN_LATCH,
6839         process_single_block_loop_latch, analyze_edges_for_bb,
6840         perform_edge_inserts): Remove.
6841         (expand_phi_nodes): New global function.
6842         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
6843         functions, initialize new parameter, remember partitions having a
6844         default def.
6845         (finish_out_of_ssa): New global function.
6846         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
6847         don't reset in_ssa_p here, don't disable TER when mudflap.
6848         (pass_del_ssa): Remove.
6849         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
6850         partition members.
6851         (execute_free_datastructures): Declare.
6852         * Makefile.in (SSAEXPAND_H): New variable.
6853         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
6854         * basic-block.h (commit_one_edge_insertion): Declare.
6855         * passes.c (init_optimization_passes): Move pass_nrv and
6856         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
6857         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
6858         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
6859         (redirect_branch_edge): Deal with super block when expanding, split
6860         out jump patching itself into ...
6861         (patch_jump_insn): ... here, new static helper.
6862
6863 2009-04-26  Michael Matz  <matz@suse.de>
6864
6865         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
6866         beyond num_ssa_names.
6867         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6868         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
6869
6870 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
6871
6872         PR inline-asm/39543
6873         * fwprop.c (forward_propagate_asm): New function.
6874         (forward_propagate_and_simplify): Propagate also into __asm, if it
6875         doesn't increase the number of referenced registers.
6876
6877         PR c/39889
6878         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
6879
6880 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
6881
6882         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
6883         note_nonlocal_vla_type for nonlocal VLAs.
6884         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
6885         contains_remapped_vars, remap_vla_decls): New functions.
6886         (convert_nonlocal_reference_stmt): If not optimizing, call
6887         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
6888         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
6889         if it wasn't found in var_map.
6890         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
6891         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
6892         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
6893         declare_vars.
6894         * gimplify.c (nonlocal_vlas): New variable.
6895         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
6896         referenced VLAs.
6897         (gimplify_body): Create and destroy nonlocal_vlas.
6898
6899         * dwarf2out.c (loc_descr_plus_const): New function.
6900         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
6901         mem_loc_descriptor, loc_descriptor_from_tree_1,
6902         descr_info_loc, gen_variable_die): Use it.
6903
6904         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
6905         !TREE_STATIC VAR_DECLs.
6906         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
6907         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
6908         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
6909         DECL_BY_REFERENCE is valid.
6910         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
6911         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
6912         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
6913         Copy DECL_BY_REFERENCE.
6914         (struct nesting_copy_body_data): New type.
6915         (nesting_copy_decl): New function.
6916         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
6917         if they have variable length.
6918
6919 2009-04-26  Michael Matz  <matz@suse.de>
6920
6921         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
6922         mark new temporaries for renaming.
6923
6924 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
6925
6926         PR c/39581
6927         * c-decl.c (global_bindings_p): Return negative value.
6928         (c_variable_size): New.  Based on variable_size from
6929         stor-layout.c.
6930         (grokdeclarator): Call c_variable_size not variable_size.
6931
6932 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
6933
6934         * config/i386/i386.c (print_operand) ['z']: Fix typo.
6935
6936 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
6937
6938         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
6939         Redefine it to just use mingw/include.
6940         (ASM_SPEC): Rules for -m32 and -m64.
6941         (LINK_SPEC): Use Likewise.
6942         (SPEC_32): New define.
6943         (SPEC_64): Likewise.
6944         (SUB_LINK_SPEC): Likewise.
6945         (MULTILIB_DEFAULTS): New define.
6946         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
6947         Add multilib options.
6948         (MULTILIB_DIRNAMES): Likewise.
6949         (MULTILIB_OSDIRNAMES): Likewise.
6950         (LIBGCC): Likewise.
6951         (INSTALL_LIBGCC): Likewise.
6952
6953 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
6954
6955         PR c/39556
6956         * c-tree.h (enum c_inline_static_type): New.
6957         (record_inline_static): Declare.
6958         * c-decl.c (struct c_inline_static, c_inline_statics,
6959         record_inline_static, check_inline_statics): New.
6960         (pop_file_scope): Call check_inline_statics.
6961         (start_decl): Call record_inline_static instead of pedwarning
6962         directly for static in inline function.
6963         * c-typeck.c (build_external_ref): Call record_inline_static
6964         instead of pedwarning directly for static referenced in inline
6965         function.
6966
6967 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
6968
6969         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
6970         not new but only being rescanned.
6971         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
6972         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
6973         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
6974         record_set_info, compute_set, grealloc): Remove.
6975         (recompute_all_luids): New function.
6976         (gcse_main): Don't compute sets, and don't do related memory
6977         allocations/free-ing.  If something changed before the end of the
6978         pass, update LUIDs using recompute_all_luids.
6979         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
6980         (free_gcse_mem): Don't free it either.
6981         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
6982         Use the df insn LUIDs.
6983         (load_killed_in_block): Likewise.
6984         (compute_hash_table_work): Don't compute reg_set_in_block.
6985         (compute_transp): Use DF_REG_DEF_CHAINs.
6986         (local_cprop_pass): Don't use compute_sets and related functions.
6987         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
6988         Use get_max_uid() instead of max_cuid.
6989         (insert_insn_end_basic_block, pre_insert_copy_insn,
6990         update_ld_motion_stores): Don't try to
6991         keep reg_set tables up to date.
6992         (pre_insert_copies): Use df insn LUIDs.
6993         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
6994         (reg_set_info): Don't use extra bitmap argument.
6995         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
6996         information to compute regs_set_in_block.
6997         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
6998         (bypass_jumps): Don't use compute_sets and friends.
6999
7000 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7001
7002         PR testsuite/39710
7003         * opts.c (undocumented_msg): Do not leave blank even with
7004         ENABLE_CHECKING.
7005
7006 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
7007
7008         * c-decl.c (build_enumerator): Allow values folding to integer
7009         constants but not integer constant expressions with a pedwarn if
7010         pedantic.
7011
7012 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
7013
7014         PR c/39582
7015         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
7016         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
7017         type is an integer constant.
7018
7019 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
7020
7021         PR target/39897
7022         * config/i386/i386.c (print_operand) ['z']: Revert handling of
7023         HImode operands.
7024
7025 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
7026
7027         PR c/39564
7028         * c-decl.c (grokdeclarator): Diagnose declarations of functions
7029         with variably modified return type and no storage class
7030         specifiers, except for the case of nested functions.  Distinguish
7031         extern declarations of functions with variably modified return
7032         types from those of objects with variably modified types.
7033
7034 2009-04-25  Jan Hubicka  <jh@suse.cz>
7035
7036         * tree.c (list_equal_p): New function.
7037         * tree.h (list_equal_p): Declare.
7038         * coretypes.h (edge_def, edge, const_edge, basic_block_def
7039         basic_block_def, basic_block, const_basic_block): New.
7040         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
7041         (redirect_eh_edge): New function.
7042         (make_eh_edge_update_phi): EH edges are not abnormal.
7043         * except.c: Include tree-flow.h.
7044         (list_match): New function.
7045         (eh_region_replaceable_by_p): New function.
7046         (replace_region): New function.
7047         (hash_type_list): New function.
7048         (hash_eh_region): New function.
7049         (eh_regions_equal_p): New function.
7050         (merge_peers): New function.
7051         (remove_unreachable_regions): Verify EH tree when checking;
7052         merge peers.
7053         (copy_eh_region_1): New function.
7054         (copy_eh_region): New function.
7055         (push_reachable_handler): New function.
7056         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
7057         regions without label but with live RESX.
7058         * except.h (redirect_eh_edge_to_label): New.
7059         * tree-flow.h (redirect_eh_edge): New.
7060         * coretypes.h (edge_def, edge, const_edge, basic_block_def
7061         basic_block_def, basic_block, const_basic_block): Remove.
7062         * Makefile.in (except.o): Add dependency on tree-flow.h
7063         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
7064         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
7065         Remove.
7066
7067 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
7068
7069         PR bootstrap/39645
7070         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
7071         on the destination of memcpy.
7072
7073 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
7074
7075         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
7076         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
7077         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
7078
7079 2009-04-25  Jan Hubicka  <jh@suse.cz>
7080
7081         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
7082         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
7083         to be reached by different label than left.
7084         (update_eh_edges): Update comment; remove edge_to_remove if possible
7085         and return true if suceeded.
7086         (cleanup_empty_eh): Accept sharing map; handle shared regions.
7087         (cleanup_eh): Compute sharing map.
7088         * except.c (remove_eh_handler_and_replace): Add argument if we should
7089         update regions.
7090         (remove_unreachable_regions): Update for label sharing.
7091         (label_to_region_map): Likewise.
7092         (get_next_region_sharing_label): New function.
7093         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
7094         prev_try pointers.
7095         (remove_eh_handler): Update.
7096         (remove_eh_region_and_replace_by_outer_of): New function.
7097         * except.h (struct eh_region): Add next_region_sharing_label.
7098         (remove_eh_region_and_replace_by_outer_of,
7099         get_next_region_sharing_label): Declare.
7100         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
7101
7102 2009-04-25  Jan Hubicka  <jh@suse.cz>
7103
7104         * tree-cfg.c (split_critical_edges): Split also edges where we can't
7105         insert code even if they are not critical.
7106
7107 2009-04-25  Jan Hubicka  <jh@suse.cz>
7108
7109         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7110         (gimple_can_remove_branch_p): EH edges won't remove branch by
7111         redirection.
7112         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
7113         updating of non-abnormal EH edges.
7114         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
7115         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
7116         (split_critical_edges): Split also edges where emitting code on them
7117         will lead to splitting later.
7118
7119 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
7120             H.J. Lu  <hongjiu.lu@intel.com>
7121
7122         PR target/39590
7123         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
7124         the configured assembler supports fildq and fistpq mnemonics.
7125         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
7126         * configure: Regenerated.
7127         * config.in: Ditto.
7128
7129         * config/i386/i386.c (print_operand): Handle 'Z'.
7130         ['z']: Remove handling of special fild/fist suffixes.
7131         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
7132         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
7133         suffix of fild insn.
7134         (*floatsi<mode>2_vector_mixed): Ditto.
7135         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
7136         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
7137         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
7138         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
7139         * config/i386/gas.h (GAS_MNEMONICS): Remove.
7140
7141 2009-04-25  Ben Elliston  <bje@au.ibm.com>
7142  
7143         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
7144         the source of a set operation.
7145
7146 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
7147
7148         * target.h (struct gcc_target): Add case_values_threshold field.
7149         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
7150         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
7151         * targhooks.c (default_case_values_threshold): New function.
7152         * targhooks.h (default_case_values_threshold): Declare function.
7153         * stmt.c (expand_case): Use case_values_threshold target hook.
7154         * expr.h (case_values_threshold): Remove declartation.
7155         * expr.c (case_values_threshold): Remove function.
7156         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
7157
7158         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
7159         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7160         (avr_case_values_threshold): Declare as static.
7161         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
7162
7163         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
7164         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
7165         (mn10300_case_values_threshold): New function.
7166
7167 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
7168
7169         * ira.c (setup_cover_and_important_classes): Add enum cast.
7170
7171 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
7172
7173         * genpreds.c (write_enum_constraint_num): Output definition of
7174         CONSTRAINT_NUM_DEFINED_P macro.
7175         * ira.c (setup_cover_and_important_classes): Use
7176         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
7177         
7178 2009-04-24  DJ Delorie  <dj@redhat.com>
7179
7180         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
7181         __SH2A_SINGLE_ONLY__ also.
7182
7183 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
7184
7185         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
7186         (movdf_internal): Ditto.
7187         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
7188         SFmode and DFmode constants.
7189         (ia64_print_operand): Add 'G' format for printing
7190         floating point constants.
7191
7192 2009-04-24  Richard Guenther  <rguenther@suse.de>
7193
7194         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
7195         from unsigned additions.
7196
7197 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
7198
7199         * c-typeck.c (set_init_index): Allow array designators that are
7200         not integer constant expressions with a pedwarn if pedantic.
7201
7202 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
7203
7204         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
7205         zero if no overlap in nonzero bits between the operands.
7206
7207 2009-04-24  Ian Lance Taylor  <iant@google.com>
7208
7209         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
7210         (record_dead_and_set_regs): Likewise.
7211         * df.h (struct df_mw_hardreg): Change flags field to int.
7212         (struct df_base_ref): Likewise.
7213         (struct df): Change changeable_flags field to int.
7214         * df-scan.c (df_defs_record): Change clobber_flags to int.
7215         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
7216         constants rather than #define macros.
7217         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
7218         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
7219         (enum dwarf_calling_convention): Likewise.
7220         (enum dwarf_line_number_x_ops): Likewise.
7221         (enum dwarf_call_frame_info): Likewise.
7222         (enum dwarf_source_language): Likewise.
7223         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
7224         (add_calling_convention_attribute): Likewise.
7225         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
7226         (combine_comparisons): Change compcode to int.  Add cast to enum type.
7227         * genrecog.c (maybe_both_true_2): Change c to int.
7228         (write_switch): Likewise.  Add cast to enum type.
7229         * gimplify.c (gimplify_omp_for): Handle return values from
7230         gimplify_expr using MIN rather than bitwise or.
7231         (gimplify_expr): Add cast to enum type.
7232         * ipa-prop.c (update_jump_functions_after_inlining): Change
7233         IPA_BOTTOM to IPA_JF_UNKNOWN.
7234         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
7235         Add casts to enum type.
7236         (setup_cover_and_important_classes): Change cl to int.  Add casts
7237         to enum type.
7238         (setup_class_translate): Change cl and mode to int.
7239         (ira_init_once): Change mode to int.
7240         (free_register_move_costs): Likewise.
7241         (setup_prohibited_mode_move_regs): Add casts to enum type.
7242         * langhooks.c (add_builtin_function_common): Rework assertion that
7243         value fits bitfield.
7244         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
7245         * omega.c (omega_do_elimination): Avoid math on enum types.
7246         * optabs.c (expand_vec_shift_expr): Remove casts to int.
7247         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
7248         int local to handle integral_argment value.
7249         * regmove.c (try_auto_increment): Change PUT_MODE to
7250         PUT_REG_NOTE_KIND.
7251         * reload.c (push_secondary_reload): Add casts to enum type.
7252         (secondary_reload_class, find_valid_class): Likewise.
7253         * reload1.c (emit_input_reload_insns): Likewise.
7254         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
7255         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
7256         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
7257         constant.
7258         * tree.c (build_common_builtin_nodes): Add casts to enum type.
7259         * tree-complex.c (complex_lattice_t): Typedef to int rather than
7260         enum type.
7261         (expand_complex_libcall): Add casts to enum type.
7262         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
7263         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
7264         with ERROR_MARK, not NUM_TREE_CODES.
7265         (vect_create_epilog_for_reduction): Likewise.
7266         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
7267         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
7268         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
7269         enum machine_mode.
7270         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
7271         vect_unused_in_loop.  Change 0 to loop_vect.
7272         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
7273         * var-tracking.c (get_init_value): Change return type to enum
7274         var_init_status.
7275         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
7276         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
7277         arm_fp_model.
7278         (arm_override_options): Add casts to enum type.
7279         (arm_emit_tls_decoration): Likewise.
7280         * config/i386/i386.c (ix86_function_specific_restore): Add casts
7281         to enum type.
7282         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
7283         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
7284         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
7285         enum type.
7286         * config/s390/s390.c (code_for_builtin_64): Change to array of
7287         enum insn_code.
7288         (code_for_builtin_31): Likewise.
7289         (s390_expand_builtin): Change code_for_builtin to enum insn_code
7290         const *.
7291         * config/sparc/sparc.c (sparc_override_options): Change value
7292         field in struct code_model to enum cmodel.  In initializer change
7293         0 to NULL and add cast to enum type.
7294
7295         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
7296         Change all callers.  Issue a -Wc++-compat warning using
7297         lhs_origtype if necessary.
7298         (convert_for_assignment): Issue -Wc++-compat warnings about
7299         invalid conversions to enum type on assignment.
7300         * c-common.h (build_modify_expr): Update declaration.
7301
7302 2009-04-24  Nick Clifton  <nickc@redhat.com>
7303
7304         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
7305         (function_arg_advance): Likewise.
7306         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
7307         5th alternative.
7308
7309 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
7310
7311         * config/s390/constraints.md ('I', 'J'): Fix condition.
7312
7313 2009-04-24  Diego Novillo  <dnovillo@google.com>
7314
7315         * gengtype-parse.c (parse_error): Add newline after message.
7316
7317 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
7318
7319         * config/i386/sse.md (avxmodesuffixs): Removed.
7320         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
7321         (*avx_pinsr<ssevecsize>): This.
7322
7323 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
7324
7325         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
7326         follow chains of regs with a single definition, and allow expressions
7327         that are function_invariant_p.
7328         (simple_rhs_p): Allow expressions that are function_invariant_p.
7329
7330 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
7331
7332         PR middle-end/39867
7333         * fold-const.c (fold_cond_expr_with_comparison): When folding
7334         > and >= to MAX, make sure the MAX uses the same type as the
7335         comparison's operands.
7336
7337 2009-04-24  Nick Clifton  <nickc@redhat.com>
7338
7339         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
7340         addressing for DImode accesses.
7341         (frv_print_operand_address): Handle PLUS case.
7342         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
7343
7344 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
7345
7346         PR rtl-optimization/39794
7347         * alias.c (canon_true_dependence): Add x_addr argument.
7348         * rtl.h (canon_true_dependence): Adjust prototype.
7349         * cse.c (check_dependence): Adjust canon_true_dependence callers.
7350         * cselib.c (cselib_invalidate_mem): Likewise.
7351         * gcse.c (compute_transp): Likewise.
7352         * dse.c (scan_reads_nospill): Likewise.
7353         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
7354         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
7355         canon_base_addr of the group, plus optional offset.
7356         (struct group_info): Rename canon_base_mem to
7357         canon_base_addr.
7358         (get_group_info): Set canon_base_addr to canon_rtx of base, not
7359         canon_rtx of base_mem.
7360
7361 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
7362
7363         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
7364         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
7365
7366 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7367
7368         * config/spu/spu-builtins.h: Delete file.
7369
7370         * config/spu/spu.h (enum spu_builtin_type): Move here from
7371         spu-builtins.h.
7372         (struct spu_builtin_description): Likewise.  Add GTY marker.
7373         Do not use enum spu_function_code or enum insn_code.
7374         (spu_builtins): Add extern declaration.
7375
7376         * config/spu/spu.c: Do not include "spu-builtins.h".
7377         (enum spu_function_code, enum spu_builtin_type_index,
7378         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
7379         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
7380         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
7381         unsigned_V2DI_type_node): Move here from spu-builtins.h.
7382         (spu_builtin_types): Make static.  Add GTY marker.
7383         (spu_builtins): Add extern declaration with GTY marker.
7384         Include "gt-spu.h".
7385
7386         * config/spu/spu-c.c: Do not include "spu-builtins.h".
7387         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
7388         Check programmatically whether all parameters are scalar.
7389
7390         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
7391
7392 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
7393
7394         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
7395         assignment from the constructor either if the target is volatile.
7396
7397 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
7398
7399         * config/arm/arm.md (insv): Do not share operands[0].
7400
7401 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
7402
7403         * config/vxlib-tls.c (active_tls_threads): Delete.
7404         (delete_hook_installed): New.
7405         (tls_delete_hook): Don't delete the delete hook.
7406         (tls_destructor): Delete it here.
7407         (__gthread_set_specific): Adjust installing the delete hook.
7408         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
7409         __gthread_leave_tsd_dtor_context.
7410
7411 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
7412
7413         * c-format.c (gcc_tdiag_char_table): Add support for %E.
7414
7415 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
7416
7417         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
7418         enum type.
7419         (alpha_rtx_costs): Ditto.
7420         (emit_unlikely_jump): Use add_reg_note.
7421         (emit_frame_store_1): Ditto.
7422         (alpha_expand_prologue): Ditto.
7423         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7424         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
7425
7426 2009-04-23  Nick Clifton  <nickc@redhat.com>
7427
7428         * config/v850/v850.md (epilogue): Remove suppressed code.
7429         (return): Rename to return_simple and remove test of frame size.
7430         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
7431         to gen_return_simple.
7432
7433 2009-04-22  Jing Yu  <jingyu@google.com>
7434
7435         PR testsuite/39781
7436         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
7437
7438 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7439
7440         PR C/31499
7441         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
7442         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
7443         value is a VECTOR_CST, the element type is the element type of the
7444         vector.
7445
7446 2009-04-22  DJ Delorie  <dj@redhat.com>
7447
7448         * config/m32c/m32c.h: Update GTY annotations to new syntax.
7449
7450 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
7451
7452         * alias.c (find_base_term): Move around LO_SUM case, so that
7453         CONST falls through into PLUS/MINUS handling.
7454
7455         PR c/39855
7456         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
7457         into 0, use omit_one_operand.
7458
7459 2009-04-23  Ben Elliston  <bje@au.ibm.com>
7460
7461         * config/rs6000/linux-unwind.h (get_regs): Remove type
7462         puns. Change the type of `pc' to an array of unsigned ints and
7463         update all users.  Constify frame24.
7464
7465 2009-04-22  DJ Delorie  <dj@redhat.com>
7466
7467         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
7468         declarations before code.
7469         (current_function_special_page_vector): Likewise.
7470         (m32c_expand_insv): Silence a warning.
7471
7472 2009-04-21  Taras Glek  <tglek@mozilla.com>
7473
7474         * alias.c: Update GTY annotations to new syntax.
7475         * basic-block.h: Likewise.
7476         * bitmap.h: Likewise.
7477         * c-common.h: Likewise.
7478         * c-decl.c: Likewise.
7479         * c-parser.c: Likewise.
7480         * c-pragma.c: Likewise.
7481         * c-tree.h: Likewise.
7482         * cfgloop.h: Likewise.
7483         * cgraph.h: Likewise.
7484         * config/alpha/alpha.c: Likewise.
7485         * config/arm/arm.h: Likewise.
7486         * config/avr/avr.h: Likewise.
7487         * config/bfin/bfin.c: Likewise.
7488         * config/cris/cris.c: Likewise.
7489         * config/darwin.c: Likewise.
7490         * config/frv/frv.c: Likewise.
7491         * config/i386/i386.c: Likewise.
7492         * config/i386/i386.h: Likewise.
7493         * config/i386/winnt.c: Likewise.
7494         * config/ia64/ia64.h: Likewise.
7495         * config/iq2000/iq2000.c: Likewise.
7496         * config/mips/mips.c: Likewise.
7497         * config/mmix/mmix.h: Likewise.
7498         * config/pa/pa.c: Likewise.
7499         * config/pa/pa.h: Likewise.
7500         * config/rs6000/rs6000.c: Likewise.
7501         * config/s390/s390.c: Likewise.
7502         * config/sparc/sparc.c: Likewise.
7503         * config/xtensa/xtensa.c: Likewise.
7504         * cselib.h: Likewise.
7505         * dbxout.c: Likewise.
7506         * dwarf2out.c: Likewise.
7507         * except.c: Likewise.
7508         * except.h: Likewise.
7509         * fixed-value.h: Likewise.
7510         * function.c: Likewise.
7511         * function.h: Likewise.
7512         * gimple.h: Likewise.
7513         * integrate.c: Likewise.
7514         * optabs.c: Likewise.
7515         * output.h: Likewise.
7516         * real.h: Likewise.
7517         * rtl.h: Likewise.
7518         * stringpool.c: Likewise.
7519         * tree-data-ref.c: Likewise.
7520         * tree-flow.h: Likewise.
7521         * tree-scalar-evolution.c: Likewise.
7522         * tree-ssa-address.c: Likewise.
7523         * tree-ssa-alias.h: Likewise.
7524         * tree-ssa-operands.h: Likewise.
7525         * tree.c: Likewise.
7526         * tree.h: Likewise.
7527         * varasm.c: Likewise.
7528         * varray.h: Likewise.
7529         * vec.h: Likewise.
7530         * coretypes.h: Do not define GTY macro if it is already defined.
7531         * doc/gty.texi: Update GTY documentation to new syntax.
7532         * gengtype-lex.l: Enforce attribute-like syntax for GTY
7533         annotations on structs.
7534         * gengtype-parse.c: Likewise.
7535
7536 2009-04-22  Mark Heffernan  <meheff@google.com>
7537
7538         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
7539
7540 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
7541
7542         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
7543         where appropriate.
7544
7545 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
7546
7547         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
7548         the same as a PLUS without a shift.  Increase the cost of a
7549         CONST_INT in MULT.
7550
7551 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7552
7553         * Makefile.in: Update dependencies.
7554         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
7555         * errors.h: Remove bogus comment about compatibility.
7556         (warning): Update declaration.
7557         * genautomata.c: Update all calls to warning.
7558         * gimple.c: Do not include errors.h. Include toplev.h.
7559         * tree-ssa-structalias.c: Do not include errors.h.
7560         * omega.c: Likewise.
7561         * tree-ssa-reassoc.c: Likewise.
7562         * config/spu/spu-c.c: Likewise.
7563         * config/spu/t-spu-elf: Update dependencies.
7564
7565 2009-04-22  Richard Guenther  <rguenther@suse.de>
7566
7567         PR tree-optimization/39824
7568         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
7569         make sure the types are compatible.
7570
7571 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7572
7573         PR c++/14875
7574         * c-common.c (c_parse_error): Take a token_flags parameter.
7575         Use token_type for the token type instead.
7576         Pass token_flags to cpp_type2name.
7577         * c-common.h (c_parse_error): Update declaration.
7578         * c-parser.c (c_parser_error): Pass 0 as token flags.
7579
7580 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
7581
7582         PR rtl-optimization/39580
7583         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
7584         
7585 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7586
7587         * function.c (expand_function_end): Do not emit a jump to the "naked"
7588         return label for fall-through returns.
7589         * except.c (sjlj_emit_function_exit): Always place the call to the
7590         unregister function at the location installed by expand_function_end.
7591
7592 2009-04-22  Richard Guenther  <rguenther@suse.de>
7593
7594         PR tree-optimization/39845
7595         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
7596         (gen_inbound_check): Likewise.
7597
7598 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
7599
7600         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
7601         padding for PPC.
7602         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
7603         * config/vxlib.c (__gthread_once): Add race guard for PPC.
7604
7605 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
7606
7607         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
7608         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
7609         shift counts to avoid out-of-bounds array accesses.
7610
7611 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
7612
7613         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
7614         (Pmode): Move above.
7615
7616 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
7617
7618         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
7619         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
7620         GET_CODE macro.  Use IN_RANGE macro where appropriate.
7621         * config/alpha/alpha.h: Ditto.
7622         * config/alpha/alpha.md: Ditto.
7623         * config/alpha/constraints.md: Ditto.
7624         * config/alpha/predicates.md: Ditto.
7625         
7626 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
7627
7628         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
7629         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7630         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7631         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7632         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7633         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7634         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7635         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7636         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7637         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7638         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7639         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7640         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7641         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7642         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7643         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7644         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7645         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7646         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7647         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7648         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7649         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7650         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7651         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7652         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7653         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7654         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
7655
7656 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7657
7658         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
7659         references from comments.
7660         * cfgbuild.c: (count_basic_blocks): Delete.
7661         (find_basic_blocks_1): Delete.
7662         (find_basic_blocks): Delete.
7663         * except.c (finish_eh_generation): Make static.  Move comment from
7664         except.h here.  Remove find_basic_blocks references from comments.
7665         * except.h (finish_eh_generation): Delete.
7666         * basic-block.h (find_basic_blocks): Delete.
7667         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
7668
7669 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
7670
7671         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
7672         (sdbout_parms):  Likewise.
7673
7674 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
7675
7676         * config/sh/sh.c (prepare_cbranch_operands): Use
7677         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
7678         (expand_cbranchdi4): Likewise.
7679         (from_compare): Add cast to enum type.
7680         (expand_cbranchsi4): Use add_reg_note.
7681         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
7682         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
7683         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
7684         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
7685         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
7686         instead of CODE_FOR_nothing.
7687         (cbranchdi4): Likewise.  Fix the order of arguments for
7688         gen_rtx_fmt_ee.
7689         (push_fpscr): Use add_reg_note.
7690         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
7691         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
7692         
7693 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
7694
7695         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
7696         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7697         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7698         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
7699         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
7700         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
7701         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
7702         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
7703         config/alpha/x-vms, config/arc/t-arc,
7704         config/arm/README-interworking, config/arm/arm-c.c,
7705         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
7706         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
7707         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
7708         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
7709         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
7710         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
7711         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
7712         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
7713         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
7714         config/cris/t-elfmulti, config/crx/t-crx,
7715         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
7716         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
7717         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
7718         config/h8300/t-h8300, config/i386/athlon.md,
7719         config/i386/darwin-libgcc.10.4.ver,
7720         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
7721         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
7722         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
7723         config/i386/t-linux64, config/i386/t-nwld,
7724         config/i386/t-rtems-i386, config/i386/t-sol2-10,
7725         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
7726         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
7727         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
7728         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
7729         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
7730         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
7731         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
7732         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
7733         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
7734         config/m68k/t-uclinux, config/mcore/t-mcore,
7735         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
7736         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
7737         config/mips/crtn.asm, config/mips/irix-crti.asm,
7738         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
7739         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
7740         config/mips/mips-fixed.md, config/mips/sb1.md,
7741         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
7742         config/mips/t-iris6, config/mips/t-isa3264,
7743         config/mips/t-libgcc-mips16, config/mips/t-linux64,
7744         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
7745         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
7746         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
7747         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
7748         config/mn10300/t-linux, config/mn10300/t-mn10300,
7749         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
7750         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
7751         config/picochip/libgccExtras/clzsi2.asm,
7752         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
7753         config/rs6000/darwin-libgcc.10.4.ver,
7754         config/rs6000/darwin-libgcc.10.5.ver,
7755         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
7756         config/rs6000/t-aix43, config/rs6000/t-aix52,
7757         config/rs6000/t-darwin, config/rs6000/t-fprules,
7758         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
7759         config/rs6000/t-lynx, config/rs6000/t-netbsd,
7760         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
7761         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
7762         config/rs6000/t-rtems, config/rs6000/t-spe,
7763         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
7764         config/score/t-score-elf, config/sh/divcost-analysis,
7765         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
7766         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
7767         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
7768         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
7769         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
7770         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
7771         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
7772         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
7773         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
7774         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
7775         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
7776         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
7777         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
7778         limitx.h, version.c, xcoff.h: Add copyright and license notices.
7779         * config/h8300/genmova.sh: Include copyright and license notices
7780         in generated output.
7781         * config/h8300/mova.md: Regenerate.
7782         * doc/install.texi2html: Include word "Copyright" in copyright
7783         notice and use name "Free Software Foundation, Inc.".
7784         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
7785         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
7786         ChangeLog-2007, ChangeLog-2008: Correct dates.
7787
7788 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
7789
7790         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
7791         NE_EXPR operations as well.
7792         * c-parser.c (c_parser_condition): Do not set location information on
7793         the condition.
7794         (c_parser_conditional_expression): Likewise.
7795         (c_parser_binary_expression): Set location information on operators.
7796         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
7797         TRUTH_NOT_EXPR has been folded.
7798         * fold-const.c (fold_truth_not_expr): Copy location information from
7799         the incoming expression to the outgoing one.
7800         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
7801         recursive calls on the LHS of the operator but pass that of the
7802         operator to recursive calls on the RHS of the operator.  Set it
7803         on the COND_EXPR.
7804         (shortcut_cond_expr): Set the locus of the operator on the second
7805         COND_EXPR and that of the expression on the first in degenerate cases.
7806         Pass the locus of the expression to calls to shortcut_cond_r.
7807         Set the locus of the 'then' block on the associated jump, if any.
7808         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
7809         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
7810         expression to call to gimplify_boolean_expr.
7811
7812 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
7813
7814         * config.gcc: Add additional configuration for
7815         i686-w64-mingw* and x86_64-w64-mingw* triplet.
7816         * config/i386/mingw-w64.h: New mingw-w64 specific header.
7817         (CPP_SPEC): Redefine for allowing -municode option.
7818         (STARTFILE_SPEC): Likewise.
7819         * config/i386/t-mingw-w64: New.
7820         * config/i386/mingw-w64.opt: New.
7821         (municode): Add new target option.
7822         * doc/invoke.texi (municode): Add documentation for new option.
7823
7824 2009-04-21  Ian Lance Taylor  <iant@google.com>
7825
7826         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7827         Correct test for number of arguments.
7828         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
7829
7830 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
7831
7832         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
7833         argument of emit_library_call.
7834
7835 2009-04-21  Richard Guenther  <rguenther@suse.de>
7836
7837         PR middle-end/39829
7838         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
7839         inside VIEW_CONVERT_EXPRs.
7840
7841 2009-04-21  Martin Jambor  <mjambor@suse.cz>
7842
7843         * tree-switch-conversion.c (build_constructors): Split a long line.
7844         (constructor_contains_same_values_p): New function.
7845         (build_one_array): Create assigns of constants if possible, do not
7846         call mark_sym_for_renaming, call update_stmt.
7847         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
7848         make_rename_temp.  Do not call mark_symbols_for_renaming, call
7849         update_stmt.
7850         (gen_def_assigns): Do not call mark_symbols_for_renaming or
7851         find_new_referenced_vars, call update_stmt.
7852         (gen_inbound_check): Use create_tmp_var and create ssa names manually
7853         instead of calling make_rename_temp.  Do not call
7854         find_new_referenced_vars or mark_symbols_for_renaming, call
7855         update_stmt.
7856
7857 2009-04-21  Richard Guenther  <rguenther@suse.de>
7858
7859         PR tree-optimization/39827
7860         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
7861         (tree_ssa_phiprop): Pass the correct array size.
7862
7863 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
7864
7865         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
7866
7867 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7868
7869         PR 16202
7870         * c-typeck.c (lvalue_p): Move declaration ...
7871         * c-common.h (lvalue_p): ... to here.
7872         * c-common.c (candidate_equal_p): New.
7873         (add_tlist): Use it.
7874         (merge_tlist): Use it.
7875         (warn_for_collisions_1): Likewise.
7876         (warning_candidate_p): Accept more candidates.
7877         (verify_tree): A warning candidate can be an expression. Use
7878         candidate_equal_p.
7879
7880 2009-04-21  Ben Elliston  <bje@au.ibm.com>
7881
7882         PR target/5267
7883         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
7884         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
7885         options.  Remove -mcall-solaris documentation.
7886
7887 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7888
7889         PR c++/13358
7890         * doc/invoke.texi (-Wlong-long): Update description.
7891         * c-lex (interpret_integer): Only warn if there was no previous
7892         overflow and -Wlong-long is enabled.
7893         * c-decl.c (declspecs_add_type): Drop redundant flags.
7894         * c.opt (Wlong-long): Init to -1.
7895         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
7896         and front-end warn_long_long. Wlong-long only depends on other
7897         flags if it is uninitialized.
7898         * c-parser.c (disable_extension_diagnostics): warn_long_long is
7899         the same for CPP and FE.
7900         (restore_extension_diagnostics): Likewise.
7901
7902 2009-04-20  Ian Lance Taylor  <iant@google.com>
7903
7904         Fix enum conversions which are invalid in C++:
7905         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
7906         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
7907         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
7908         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
7909         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
7910         (dbxout_parms): Likewise.
7911         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
7912         (df_clear_flags): Likewise.
7913         * df-problems.c (df_rd_bb_local_compute_process_def): Change
7914         top_flag parameter to int.
7915         (df_chain_create_bb_process_use): Likewise.
7916         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
7917         Remove cast.
7918         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
7919         (df_ref_create_structure, df_def_record_1): Likewise.
7920         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
7921         (df_notes_rescan): Change 0 to VOIDmode in function call.
7922         (df_get_call_refs, df_insn_refs_collect): Likewise.
7923         (df_bb_regs_collect): Likewise.
7924         (df_entry_block_defs_collect): Likewise.
7925         (df_exit_block_uses_collect): Likewise.
7926         * df.h: Update declarations.
7927         * double-int.c (double_int_divmod): Add cast to enum type.
7928         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
7929         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
7930         (based_loc_descr): Likewise.
7931         (loc_descriptor_from_tree_1): Change first_op and second_op to
7932         enum dwarf_location_atom.  Add cast to enum type.
7933         * expmed.c (init_expmed): Change 0 to SET in function call.
7934         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
7935         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
7936         (do_store_flag): Likewise.
7937         * fixed-value.h (struct fixed_value): Change mode to enum
7938         machine_mode.
7939         * function.c (assign_parms): Change 0 to VOIDmode in function call.
7940         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
7941         function call.
7942         (insert_insn_decl, insert_decl, insert_state): Likewise.
7943         (automata_list_finish): Likewise.
7944         * genrecog.c (process_define_predicate): Add cast to enum type.
7945         * gensupport.c (init_predicate_table): Add cast to enum type.
7946         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
7947         function call.
7948         (gimple_build_call_1, gimple_build_label): Likewise.
7949         (gimple_build_goto, gimple_build_asm_1): Likewise.
7950         (gimple_build_switch_1, gimple_build_cdt): Likewise.
7951         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
7952         (enum fallback): Rename from enum fallback_t.
7953         (fallback_t): Typedef as int.
7954         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
7955         GSI_SAME_STMT in function call.
7956         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
7957         enum type.
7958         (setup_reg_class_relations): Likewise.
7959         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
7960         (setup_prohibited_class_mode_regs): Add cast to enum type.
7961         (setup_prohibited_mode_move_regs): Likewise.
7962         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
7963         (record_address_regs): Change i to enum reg_class.
7964         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
7965         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
7966         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
7967         (GET_MODE_2XWIDER_MODE): Likewise.
7968         (GET_CLASS_NARROWEST_MODE): Likewise.
7969         * omp-low.c (expand_omp_for): Add cast to enum type.
7970         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
7971         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
7972         * postreload.c (reload_cse_simplify_operands): Change rclass local
7973         to enum reg_class.
7974         * predict.c (combine_predictions_for_insn): Change best_predictor
7975         and predictor to enum br_predictor.
7976         (combine_predictions_for_bb): Likewise.
7977         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
7978         use SET_PREDICT_EXPR_OUTCOME.
7979         * real.c (real_arithmetic): Change icode to code in function call.
7980         * reginfo.c (init_move_cost): Add casts to enum type.
7981         (init_reg_sets_1, init_fake_stack_mems): Likewise.
7982         * regmove.c (regclass_compatible_p): Change class0 and class1 to
7983         enum reg_class.
7984         * reload.c (find_valid_class): Add casts to enum type.
7985         (push_reload): Change 0 to NO_REGS in function call.
7986         (find_reloads): Change this_alternative to array of enum
7987         reg_class.  Remove some now-unnecessary casts.
7988         (make_memloc): Change 0 to VOIDmode in function call.
7989         * reload1.c (reload): Change 0 to VOIDmode in function call.
7990         (eliminate_regs_1, elimination_effects): Likewise.
7991         (eliminate_regs_in_insn): Likewise.
7992         (emit_input_reload_insns): Add cast to enum type.
7993         (delete_output_reload): Change 0 to VOIDmode in function call.
7994         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
7995         to enum type in function call.
7996         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
7997         (SET_PREDICT_EXPR_OUTCOME): Define.
7998         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
7999         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
8000         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
8001         (dump_function): Likewise.
8002         * tree-dump.h: Update declarations.
8003         * tree-pass.h: Update declarations.
8004         * varasm.c (assemble_integer): Change mclass to enum mode_class.
8005         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
8006         enum type.
8007         (arm_rtx_costs_1): Correct parenthesization.
8008         (arm_rtx_costs): Add casts to enum type.
8009         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
8010         (vfp_emit_fstmd): Use add_rg_note.
8011         (emit_multi_reg_push, emit_sfm): Likewise.
8012         (thumb_set_frame_pointer): Likewise.
8013         (arm_expand_prologue): Likewise.
8014         (arm_regno_class): Change return type to enum reg_class.
8015         (thumb1_expand_prologue): Use add_reg_note.
8016         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
8017         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
8018         in function call.
8019         * config/arm/gentune.sh: Add cast to enum type.
8020         * config/arm/arm-tune.md: Rebuild.
8021         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
8022         (ix86_split_fp_branch, predict_jump): Likewise.
8023         (ix86_expand_multi_arg_builtin): Change sub_code from enum
8024         insn_code to enum rtx_code.
8025         (ix86_builtin_vectorized_function): Add cast to enum type.
8026         * config/i386/i386.md (truncdfsf2): Change slot to enum
8027         ix86_stack_slot.
8028         (truncxf<mode>2, isinf<mode>2): Likewise.
8029         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
8030         enum type.
8031         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
8032         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
8033         (insert_bundle_state): Change 1 to INSERT in function call.
8034         (ia64_add_bundle_selector_before): Likewise.
8035         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
8036         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
8037         (restore_stack_nonlocal): Likewise.
8038         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
8039         function call.
8040         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
8041         function call.
8042         (mips_rtx_costs): Likewise.
8043         (mips_override_options): Add casts to enum type.
8044         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
8045         in function call.
8046         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
8047         (store_reg, set_reg_plus_d): Likewise.
8048         (hppa_expand_prologue, hppa_profile_hook): Likewise.
8049         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8050         cast to enum type.
8051         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
8052         function call.
8053         (emit_unlikely_jump): Use add_reg_note.
8054         (rs6000_emit_allocate_stack): Likewise.
8055         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
8056         (output_toc): Change 1 to INSERT in function call.
8057         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
8058         (rs6000_initialize_trampoline): Likewise.
8059         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
8060         function call.
8061         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
8062         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
8063         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
8064         (save_gprs): Use add_reg_note.
8065         (s390_emit_prologue): Likewise.
8066         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8067         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
8068         (sparc_fold_builtin): Add cast to enum type.
8069         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
8070         enum insn_code.
8071         (spu_expand_prologue): Use add_reg_note.
8072         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
8073
8074 2009-04-20  Ian Lance Taylor  <iant@google.com>
8075
8076         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
8077         (c_parser_postfix_expression_after_primary): Get VEC for list of
8078         arguments.  Get original types of arguments.  Call
8079         build_function_call_vec.
8080         (cached_expr_list_1, cached_expr_list_2): New static variables.
8081         (c_parser_expr_list): Change return type to VEC *.  Add
8082         p_orig_types parameter.  Change all callers.
8083         (c_parser_release_expr): New static function.
8084         (c_parser_vec_to_tree_list): New static function.
8085         * c-typeck.c (build_function_call): Rewrite to build a VEC and
8086         call build_function_call_vec.
8087         (build_function_call_vec): New function, based on old
8088         build_function_call.
8089         (convert_arguments): Remove nargs and argarray parameters.  Change
8090         values to a VEC.  Add origtypes parameter.
8091         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
8092         (convert_for_assignment): Add origtype parameter.  Change all
8093         callers.  If warn_cxx_compat, check for conversion to an enum
8094         type when calling a function.
8095         (store_init_value): Add origtype parameter.  Change all callers.
8096         (digest_init): Likewise.
8097         (struct init_node): Add origtype field.
8098         (add_pending_init): Add origtype parameter.  Change all callers.
8099         (output_init_element): Likewise.
8100         (output_pending_init_elements): Pass origtype from init_node to
8101         output_init_element.
8102         (process_init_element): Pass origtype from c_expr to
8103         output_init_element.
8104         (c_finish_return): Add origtype parameter.  Change all callers.
8105         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
8106         caller.
8107         (sync_resolve_params): Likewise.
8108         (sync_resolve_return): Change params to first_param.  Change caller.
8109         (resolve_overloaded_builtins): Change params to VEC *.  Change
8110         callers.  Save first parameter around call to build_function_call_vec.
8111         * c-decl.c (finish_decl): Add origtype parameter.  Change all
8112         callers.  Call build_function_call_vec rather than
8113         build_function_call for cleanup.
8114         * c-tree.h: Update declarations.
8115         * c-common.h: Update declarations.
8116         * stub-objc.c (objc_rewrite_function_call): Change parameter from
8117         params to first_param.
8118         * target.h (struct gcc_target): Change resolve_overloaded_builtin
8119         params parameter from tree to void *.
8120         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8121         Change arglist parameter to have type void *, and to be a pointer
8122         to a VEC.
8123         * config/rs6000/rs6000-protos.h
8124         (altivec_resolve_overloaded_builtin): Update declaration.
8125         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
8126         fnargs parameter to have type void *, and to be a pointer to a
8127         VEC.  Call build_function_call_vec instead of
8128         build_function_call.
8129         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
8130
8131 2009-04-20  Joey Ye  <joey.ye@intel.com>
8132             Xuepeng Guo  <xuepeng.guo@intel.com>
8133             H.J. Lu  <hongjiu.lu@intel.com>
8134
8135         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
8136
8137         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
8138         (IX86_LEA_PRIORITY): Likewise.
8139         (distance_non_agu_define): New function.
8140         (distance_agu_use): Likewise.
8141         (ix86_lea_for_add_ok): Likewise.
8142         (ix86_dep_by_shift_count): Likewise.
8143
8144         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
8145         should split for LEA.
8146
8147         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
8148         function.
8149         (ix86_dep_by_shift_count): Likewise.
8150
8151 2009-04-20  Richard Guenther  <rguenther@suse.de>
8152
8153         * expr.c (handled_component_p): Move ...
8154         * tree.h (handled_component_p): ... here.
8155         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
8156         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
8157         and REALPART_EXPR to be in one group.
8158
8159 2009-04-20  Richard Guenther  <rguenther@suse.de>
8160
8161         * basic-block.h (get_all_dominated_blocks): Declare.
8162         * dominance.c (get_all_dominated_blocks): New function.
8163         * tree-cfg.c (get_all_dominated_blocks): Remove.
8164         (remove_edge_and_dominated_blocks): Adjust.
8165         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
8166         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
8167         instead of recursing.
8168
8169 2009-04-20  Doug Kwan  <dougkwan@google.com>
8170
8171         * cgraph.h (cgraph_node_ptr): New type for vector functions.
8172         (struct cgraph_node_set_def): New type.
8173         (cgraph_node_set) New type. Also declare vector functions.
8174         (struct cgraph_node_set_element_def): New type.
8175         (cgraph_node_set_element): Ditto.
8176         (cgraph_node_set_iterator): New iterator type.
8177         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
8178         cgraph_node_set_remove, dump_cgraph_node_set,
8179         debug_cgraph_node_set): New prototypes.
8180         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
8181         cgraph_node_set_size): New inlines.
8182         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
8183         including cgraph.h.
8184         (struct ipa_opt_pass): Add struct cgraph_node_set_def
8185         argument to function 'write_summary'.
8186         * ipa.c: Include ggc.h.
8187         (hash_cgraph_node_set_element,
8188         eq_cgraph_node_set_element, cgraph_node_set_new,
8189         cgraph_node_set_add, cgraph_node_set_remove,
8190         cgraph_node_set_find, dump_cgraph_node_set,
8191         debug_cgraph_node_set): New functions.
8192         * Makefile.in (ipa.o): Add dependency on GGC_H.
8193
8194 2009-04-20  Ira Rosen  <irar@il.ibm.com>
8195
8196         PR tree-optimization/39675
8197         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
8198         check of the return code of vect_schedule_slp. Check that
8199         stmt_vec_info still exists for the statement, before checking its
8200         vectorization type.
8201
8202 2009-04-20  Michael Matz  <matz@suse.de>
8203
8204         * Makefile.in (generated_files): Take out $(simple_generated_c).
8205
8206 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
8207
8208         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
8209         (UINTPTR_TYPE):  Likewise.
8210
8211 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
8212
8213         PR c/37481
8214         * c-typeck.c (digest_init): Check for initializing an array with a
8215         string literal.
8216
8217 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
8218
8219         PR c/19771
8220         * c-semantics.c (pop_stmt_list): Propagate
8221         STATEMENT_LIST_HAS_LABEL to parent statement list.
8222
8223 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
8224
8225         * config/mips/mips.h (mips_tune_attr): New macro.
8226         * config/mips/mips.md (cpu): Use it.
8227
8228 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
8229
8230         PR c/38243
8231         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
8232         declaring a tag.
8233
8234 2009-04-19  Diego Novillo  <dnovillo@google.com>
8235
8236         * toplev.c (compile_file): Move call to coverage_finish ...
8237         * cgraphunit.c (ipa_passes): ... here.
8238         Call cgraph_process_new_functions.
8239         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
8240         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
8241
8242 2009-04-19  Jan Hubicka  <jh@suse.cz>
8243
8244         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
8245         cfun.
8246         (dump_cgraph_node): Dump can throw external flag.
8247         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
8248
8249 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8250
8251         PR c/32061
8252         PR c++/36954
8253         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
8254         * common.opt (Wlogical-op): Move from here...
8255         * c.opt (Wlogical-op): ... to here.
8256         * c-typeck.c (parser_build_binary_op): Update call to
8257         warn_logical_operator.
8258         * c-opts.c (c_common_post_options): Enable warn_logical_op with
8259         extra_warnings.
8260         * c-common.c (warn_logical_op): Update.
8261         * c-common.h (warn_logical_op): Update declaration.
8262
8263 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
8264
8265         * tree.c (protected_set_expr_location): Fix formatting.
8266
8267 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
8268
8269         PR c/27676
8270         * c-typeck.c (readonly_warning): new.
8271         (build_unary_op, build_modify_expr): Use readonly_warning for
8272         storing into something readonly but not const-qualified.
8273
8274 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
8275
8276         PR c/22367
8277         * c-typeck.c (build_unary_op): Check for taking address of
8278         expression of type void.
8279
8280 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
8281
8282         PR c/35210
8283         * c-typeck.c (build_function_call): Check for calling a function
8284         with qualified void return types.  Call require_complete_type when
8285         generating a trap.
8286
8287 2009-04-18  Jan Hubicka  <jh@suse.cz>
8288
8289         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
8290         Set nothrow flag.
8291         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
8292         can_throw_external flag.
8293         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
8294         * ipa-pure-const.c (ignore_edge): New function.
8295         (propagate): Compute order for NOTHROW computation; set NOTHROWs
8296         only over can_throw_external edges.
8297         (local_pure_const): Add nothrow flag.
8298         * ipa-utils.c (searchc): Add ignore_edge callback.
8299         (ipa_utils_reduced_inorder): Add ignore_edge callback.
8300         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
8301         (set_nothrow_function_flags): Update cgraph.
8302         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
8303
8304 2009-04-18  Richard Guenther  <rguenther@suse.de>
8305
8306         PR middle-end/39804
8307         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
8308         (fold_stmt): ... this and ...
8309         (fold_stmt_inplace): ... this.
8310         (fold_stmt_1): Fold references in calls and asms.
8311         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
8312
8313 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8314
8315         * tree-vrp.c (ssa_name_nonzero_p): Remove.
8316         * tree.h: Remove the prototype for ssa_name_nonzero_p.
8317
8318 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8319
8320         * tree.c (function_args_count): Remove.
8321         * tree.h: Remove the prototype for function_args_count.
8322
8323 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8324
8325         * tree-iterator.c (expr_only): Remove.
8326         * tree.h: Remove the prototype for expr_only.
8327
8328 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8329
8330         * reginfo.c (cannot_change_mode_set_regs): Remove.
8331         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
8332
8333 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
8334
8335         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
8336         whether operands 0 and 1 overlaps.
8337
8338 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8339
8340         PR middle-end/36902
8341         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
8342         pointer. Use warning_at instead of warning.
8343         (search_for_addr_array): Likewise.
8344         (check_array_bounds): Likewise.
8345         (check_all_array_refs): Check that the incoming edge is not in the
8346         list of edges to be removed.
8347         (check_all_array_refs): Avoid the temporal pointer.
8348         (vrp_visit_cond_stmt): Fix typo.
8349         (simplify_switch_using_ranges): Handle the case where the switch
8350         index is an integer constant.
8351
8352 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
8353
8354         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
8355
8356 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
8357
8358         * doc/extend.texi, doc/invoke.texi: Fix typos.
8359
8360 2009-04-17  Cary Coutant  <ccoutant@google.com>
8361
8362         * tree-flow-inline.h (get_lineno): Fix inverted test.
8363
8364 2009-04-17  Diego Novillo  <dnovillo@google.com>
8365
8366         * tree-ssa-pre.c (create_expression_by_pieces): Remove
8367         assertion for AVAIL_OUT.
8368
8369 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
8370
8371         PR target/38627
8372         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
8373         * config/sh/linux-atomic.asm: Likewise.
8374
8375 2009-04-17  Diego Novillo  <dnovillo@google.com>
8376
8377         * except.c (debug_eh_tree): New.
8378         (struct eh_region, struct eh_status): Move ...
8379         * except.h: ... here.
8380         (add_type_for_runtime): Declare extern.
8381         (lookup_type_for_runtime): Likewise.
8382         (debug_eh_tree): Declare.
8383         * Makefile.in (GTFILES): List except.h before except.c
8384
8385 2009-04-17  Diego Novillo  <dnovillo@google.com>
8386
8387         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
8388         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
8389         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
8390         (find_vars_r): ... here.
8391         * tree-flow.h (find_referenced_vars_in): Declare.
8392         * tree-ssa-pre.c (create_expression_by_pieces): Assert
8393         that AVAIL_OUT exists for BLOCK.
8394         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
8395         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
8396         (tree-parloops.o): Likewise.
8397
8398 2009-04-17  Simon Baldwin  <simonb@google.com>
8399
8400         * toplev.c (default_tree_printer): Add handling for %E format.
8401
8402 2009-04-17  Diego Novillo  <dnovillo@google.com>
8403
8404         * tree-pretty-print.c (dump_generic_node): Add break after
8405         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
8406         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
8407         FUNCTION_TYPE together.  Call print_struct_decl when printing
8408         structures and TDF_SLIM is not given.
8409         (print_struct_decl): Fix logic for detecting recursion.
8410
8411 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
8412
8413         PR 31567
8414         * gcc.c (create_at_file): New.
8415         (compile_input_file_p): New.
8416         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
8417         * main.c (main): Update call to toplev_main.
8418         * toplev.c (toplev_main): Change signature. Call expandargv.
8419         * toplev.h (toplev_main): Change signature.
8420
8421 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
8422
8423         * dwarf2out.c (field_byte_offset): Use the type size as the field size
8424         if the latter is not constant.
8425
8426 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
8427
8428         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
8429
8430 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
8431
8432         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
8433         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
8434
8435 2009-04-17  Richard Guenther  <rguenther@suse.de>
8436
8437         * tree-ssa-structalias.c (get_constraint_for_component_ref):
8438         Handle component references view-converting an invariant address.
8439
8440 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
8441
8442         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
8443         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
8444         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
8445         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
8446         Use @deftypevr rather than @deftypevar.
8447
8448 2009-04-17  Richard Guenther  <rguenther@suse.de>
8449
8450         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
8451         (get_prop_source_stmt): Likewise.
8452         (can_propagate_from): Likewise.
8453
8454 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
8455
8456         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
8457         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
8458         (--with-multilib-list): Add default value.
8459         * configure: Regenerate.
8460         * Makefile.in (TM_ENDIAN_CONFIG): Define.
8461         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
8462         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
8463         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
8464         Don't add default cpu to multilib list unnecessarily, but do enable
8465         the relevant compiler option..
8466         Add support for --with-multilib-list=<blank> and
8467         --with-multilib-list=!<somelib> to supress unwanted multilibs.
8468         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
8469         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
8470         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
8471         TM_MULTILIB_CONFIG.
8472         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
8473         (MULTILIB_OSDIRNAMES): New variable.
8474         * config/sh/t-1e: Delete file.
8475         * config/sh/t-mlib-sh1: Delete file.
8476         * config/sh/t-mlib-sh2: Delete file.
8477         * config/sh/t-mlib-sh2a: Delete file.
8478         * config/sh/t-mlib-sh2a-nofpu: Delete file.
8479         * config/sh/t-mlib-sh2a-single: Delete file.
8480         * config/sh/t-mlib-sh2a-single-only: Delete file.
8481         * config/sh/t-mlib-sh2e: Delete file.
8482         * config/sh/t-mlib-sh3e: Delete file.
8483         * config/sh/t-mlib-sh4: Delete file.
8484         * config/sh/t-mlib-sh4-nofpu: Delete file.
8485         * config/sh/t-mlib-sh4-single: Delete file.
8486         * config/sh/t-mlib-sh4-single-only: Delete file.
8487         * config/sh/t-mlib-sh4a: Delete file.
8488         * config/sh/t-mlib-sh4a-nofpu: Delete file.
8489         * config/sh/t-mlib-sh4a-single: Delete file.
8490         * config/sh/t-mlib-sh4a-single-only: Delete file.
8491         * config/sh/t-mlib-sh4al: Delete file.
8492         * config/sh/t-mlib-sh5-32media: Delete file.
8493         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
8494         * config/sh/t-mlib-sh5-64media: Delete file.
8495         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
8496         * config/sh/t-mlib-sh5-compact: Delete file.
8497         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
8498         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
8499         * doc/install.texi (Options specification): Add
8500         --with-multilib-list and --with-endian.
8501
8502 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
8503
8504         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
8505         REVISION_c.
8506         (OBJS-common): Add plugin-version.o.
8507         (plugin-version.o): New.
8508         * gcc-plugin.h (plugin_gcc_version): New.
8509         (plugin_default_version_check): New.
8510         (plugin_init_func, plugin_init): Add version argument.
8511         * plugin-version.c: New.
8512         * plugin.c (str_plugin_gcc_version_name): New.
8513         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
8514         pass it to the init function.
8515         (plugin_default_version_check): New.
8516
8517 2009-04-17  Richard Guenther  <rguenther@suse.de>
8518
8519         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
8520         for decl-vs-decl disambiguation.
8521
8522 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
8523
8524         * config/s390/s390.h (s390_tune_attr): New macro definition.
8525         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
8526
8527 2009-04-17  Richard Guenther  <rguenther@suse.de>
8528
8529         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
8530         (fold_stmt_r): Likewise.
8531         (maybe_fold_reference): New function.
8532         (fold_gimple_assign): Handle cases fold_stmt_r did.
8533         (fold_stmt): Do not use fold_stmt_r.
8534         (fold_stmt_inplace): Likewise.
8535
8536 2009-04-17  Richard Guenther  <rguenther@suse.de>
8537
8538         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
8539         (record_equivalences_from_stmt): Remove useless checks and
8540         simplifications.
8541         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
8542         the type is already suitable.
8543
8544 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
8545
8546         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
8547
8548 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
8549
8550         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
8551         (CMPtype): Define as __gcc_CMPtype.
8552
8553 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
8554
8555         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
8556         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
8557
8558 2009-04-17  Richard Guenther  <rguenther@suse.de>
8559
8560         PR tree-optimization/39746
8561         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
8562         special-casing for builtins and static variable use/def.
8563         (call_may_clobber_ref_p_1): Likewise.
8564
8565 2009-04-16  Ian Lance Taylor  <iant@google.com>
8566
8567         * df.h: Include "timevar.h".
8568         (struct df_problem): Change tv_id field to timevar_id_t.
8569         * tree-pass.h: Include "timevar.h".
8570         (struct opt_pass): Change tv_id field to timevar_id_t.
8571         * timevar.h (timevar_id_t): Define TV_NONE.
8572         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
8573         TV_NONE rather than tv_id != 0.
8574         (execute_one_pass): Likewise.
8575         * Makefile.in (DF_H): Add $(TIMEVAR_H).
8576         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
8577         dependencies to $(TREE_PASS_H).
8578         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
8579         to TV_NONE.
8580         (pass_branch_target_load_optimize2): Likewise.
8581         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
8582         (pass_outof_cfg_layout_mode): Likewise.
8583         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
8584         (pass_rebuild_cgraph_edges): Likewise.
8585         (pass_remove_cgraph_callee_edges): Likewise.
8586         * df-core.c (pass_df_initialize_opt): Likewise.
8587         (pass_df_initialize_no_opt): Likewise.
8588         (pass_df_finish): Likewise.
8589         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
8590         * except.c (pass_set_nothrow_function_flags): Likewise.
8591         (pass_convert_to_eh_region_ranges): Likewise.
8592         * final.c (pass_compute_alignments): Likewise.
8593         * function.c (pass_instantiate_virtual_regs): Likewise.
8594         (pass_init_function): Likewise.
8595         (pass_leaf_regs): Likewise.
8596         (pass_match_asm_constraints): Likewise.
8597         * gimple-low.c (pass_lower_cf): Likewise.
8598         (pass_mark_used_blocks): Likewise.
8599         * init-regs.c (pass_initialize_regs): Likewise.
8600         * integrate.c (pass_initial_value_sets): Likewise.
8601         * ira.c (pass_ira): Likewise.
8602         * jump.c (pass_cleanup_barriers): Likewise.
8603         * omp-low.c (pass_expand_omp): Likewise.
8604         (pass_lower_omp): Likewise.
8605         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
8606         * recog.c (pass_split_all_insns): Likewise.
8607         (pass_split_after_reload): Likewise.
8608         (pass_split_before_regstack): Likewise.
8609         (pass_split_before_sched2): Likewise.
8610         (pass_split_for_shorten_branches): Likewise.
8611         * reginfo.c (pass_reginfo_init): Likewise.
8612         (pass_subregs_of_mode_init): Likewise.
8613         (pass_subregs_of_mode_finish): Likewise.
8614         * passes.c (pass_postreload): Likewise.
8615         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
8616         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
8617         (pass_warn_function_return): Likewise.
8618         (pass_warn_function_noreturn): Likewise.
8619         * tree-complex.c (pass_lower_complex): Likewise.
8620         (pass_lower_complex_O0): Likewise.
8621         * tree-if-conv.c (pass_if_conversion): Likewise.
8622         * tree-into-ssa.c (pass_build_ssa): Likewise.
8623         * tree-mudflap.c (pass_mudflap_1): Likewise.
8624         (pass_mudflap_2): Likewise.
8625         * tree-nomudflap.c (pass_mudflap_1): Likewise.
8626         (pass_mudflap_2): Likewise.
8627         * tree-nrv.c (pass_return_slot): Likewise.
8628         * tree-object-size.c (pass_object_sizes): Likewise.
8629         * tree-optimize.c (pass_all_optimizations): Likewise.
8630         (pass_early_local_passes): Likewise.
8631         (pass_all_early_optimizations): Likewise.
8632         (pass_cleanup_cfg): Likewise.
8633         (pass_cleanup_cfg_post_optimizing): Likewise.
8634         (pass_free_datastructures): Likewise.
8635         (pass_free_cfg_annotations): Likewise.
8636         (pass_fixup_cfg): Likewise.
8637         (pass_init_datastructures): Likewise.
8638         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
8639         (pass_late_warn_uninitialized): Likewise.
8640         (pass_update_address_taken): Likewise.
8641         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
8642         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
8643         (pass_cse_sincos): Likewise.
8644         (pass_convert_to_rsqrt): Likewise.
8645         * tree-ssa-structalias.c (pass_build_alias): Likewise.
8646         * tree-stdarg.c (pass_stdarg): Likewise.
8647         * tree-tailcall.c (pass_tail_recursion): Likewise.
8648         (pass_tail_calls): Likewise.
8649         * tree-vect-generic.c (pass_lower_vector): Likewise.
8650         (pass_lower_vector_ssa): Likewise.
8651         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
8652
8653 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
8654
8655         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
8656         XLR entry.
8657         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
8658         Handle -march=xlr.
8659         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
8660         logical and signext.
8661
8662 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
8663
8664         PR target/39767
8665         * config/sh/predicates.md (arith_operand): Check if the operand
8666         of TRUNCATE is a REG.
8667
8668 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8669
8670         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
8671         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
8672
8673 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8674
8675         * tree-iterator.c (tsi_split_statement_list_after,
8676         tsi_split_statement_list_before): Remove.
8677         * tree-iterator.h: Remove the prototypes for
8678         tsi_split_statement_list_after and tsi_split_statement_list_before.
8679
8680 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8681
8682         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
8683         * tree-ssa-propagate.h: Remove the prototype for
8684         stmt_makes_single_load.
8685
8686 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8687
8688         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
8689         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
8690
8691 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8692
8693         * tree-iterator.c (EXPR_LAST_BODY): Remove.
8694
8695 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8696
8697         * except.c (eh_region_outer_p): Remove.
8698         * except.h: Remove the prototype for eh_region_outer_p.
8699
8700 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
8701
8702         * function.c (current_function_assembler_name): Remove.
8703         * function.h: Remove the prototype for
8704         current_function_assembler_name.
8705
8706 2009-04-16  Ian Lance Taylor  <iant@google.com>
8707
8708         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
8709         (add_reg_note): Call alloc_reg_note.
8710         * rtl.h (alloc_reg_note): Declare.
8711         * combine.c (try_combine): Use alloc_reg_note.
8712         (recog_for_combine, move_deaths): Likewise.
8713         (distribute_notes): Use alloc_reg_note and add_reg_note.
8714         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
8715         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
8716         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
8717
8718 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
8719
8720         PR rtl-optimization/39762
8721         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
8722         ira_may_move_out_cost): Add comments about way of their usage.
8723         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
8724
8725         * ira-conflicts.c (process_regs_for_copy): Use function
8726         ira_get_register_move_cost instead of global
8727         ira_register_move_cost.
8728
8729         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
8730         color_pass, move_spill_restore, update_curr_costs): Ditto.
8731
8732         * ira-lives.c (process_single_reg_class_operands): Ditto.
8733
8734         * ira-emit.c (emit_move_list): Ditto.
8735
8736         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
8737         (record_reg_classes): Ditto.  Use functions
8738         ira_get_register_move_cost and ira_get_may_move_cost instead of
8739         global vars ira_register_move_cost, ira_may_move_out_cost and
8740         ira_may_move_in_cost.
8741         (record_address_regs): Don't call ira_init_register_move_cost.
8742         Use function ira_get_may_move_cost instead of global
8743         ira_may_move_in_cost.
8744         (process_bb_node_for_hard_reg_moves): Use function
8745         ira_get_register_move_cost instead of global ira_register_move_cost.
8746         (ira_costs): Don't call ira_init_register_move_cost.
8747
8748 2009-04-16  Richard Guenther  <rguenther@suse.de>
8749
8750         * tree-cfg.c (verify_gimple_assign_binary):
8751         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
8752         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
8753         (create_general_new_stmt): Note that this function is broken.
8754
8755 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
8756
8757         * common.opt (fhelp): Add Var(help_flag).
8758         * gcc-plugin.h (plugin_info): Add help.
8759         * plugin.c (plugin_name_args): Add help.
8760         (register_plugin_info): Set plugin->help.
8761         (print_help_one_plugin): New.
8762         (print_plugins_help): New.
8763         * plugin.h (print_plugins_help): New.
8764         * toplev.c (toplev_main): Call print_plugins_help if needed.
8765
8766 2009-04-16  Richard Guenther  <rguenther@suse.de>
8767
8768         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
8769         (gimple_ior_addresses_taken_1): New function.
8770         (gimple_ior_addresses_taken): Likewise.
8771         * gimple.h (struct gimple_statement_with_ops_base): Remove
8772         addresses_taken member.
8773         (gimple_ior_addresses_taken): Declare.
8774         (gimple_addresses_taken, gimple_addresses_taken_ptr,
8775         gimple_set_addresses_taken): Remove.
8776         * ipa-reference.c (mark_address): New function.
8777         (scan_stmt_for_static_refs): Use it for marking addresses taken.
8778         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
8779         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
8780         (gimple_add_to_addresses_taken): Remove.
8781         (get_tmr_operands): Call mark_address_taken.
8782         (get_asm_expr_operands): Likewise.
8783         (get_expr_operands): Likewise.
8784         (build_ssa_operands): Do not clear the addresses_taken bitmap.
8785         (free_stmt_operands): Do not free it.
8786         * tree-ssa.c (delete_tree_ssa): Likewise.
8787         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
8788
8789 2009-04-16  Richard Guenther  <rguenther@suse.de>
8790
8791         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
8792         (walk_stmt_load_store_ops): Likewise.
8793         * gimple.c (get_base_loadstore): New function.
8794         (walk_stmt_load_store_addr_ops): Likewise.
8795         (walk_stmt_load_store_ops): Likewise.
8796         * ipa-pure-const.c (check_op): Simplify.
8797         (check_load, check_store): New functions.
8798         (check_stmt): Use walk_stmt_load_store_ops.
8799         * ipa-reference.c (mark_load): Adjust signature.
8800         (mark_store): Likewise.
8801         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
8802
8803 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
8804
8805         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
8806         (plugin_info): New.
8807         * opts.c (common_handle_option): Don't call print_version.
8808         * plugin.c (plugin_name_args): Add version.
8809         (register_plugin_info): New.
8810         (register_callback): Handle PLUGIN_INFO.
8811         (try_init_one_plugin): New.
8812         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
8813         if failed to init.
8814         (finalize_one_plugin): New.
8815         (finalize_plugins): New.
8816         (print_one_plugin): New.
8817         (print_plugins_versions): New.
8818         * plugin.h (print_plugins_versions): New.
8819         (finalize_plugins): New.
8820         * toplev.c (compile_file): Don't call initialize_plugins.
8821         (print_version): Call print_plugins_versions.
8822         (toplev_main): Call initialize_plugins. Print version if needed.
8823         Call finalize_plugins.
8824
8825 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
8826
8827         * common.opt (fversion): New.
8828         * gcc.c (print_version): New.
8829         (process_command): Don't print the version. Just set print_version.
8830         (main): Print version. Call subprocesses if print_version and
8831         verbose_flag are set.
8832         * opts.c (common_handle_option): Handle OPT_fversion.
8833
8834 2009-04-16  Richard Guenther  <rguenther@suse.de>
8835             Ira Rosen  <irar@il.ibm.com>
8836
8837         PR tree-optimization/39698
8838         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
8839         type of the reduction variable.  Only generate the def if
8840         it is needed.
8841
8842         * omp-low.c (expand_omp_for_generic): When converting to a pointer
8843         make sure to first convert to an integer of the same precision.
8844         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
8845         the type of the evolution correctly in computing the new
8846         induction variable base.
8847
8848 2009-04-16  Richard Guenther  <rguenther@suse.de>
8849
8850         PR middle-end/39625
8851         * tree-cfg.c (make_blocks): Split statements with to-be
8852         abnormal SSA names on the lhs.
8853
8854 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
8855
8856         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
8857         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
8858         * c-typeck.c (really_start_incremental_init): Likewise.
8859         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
8860         (TARGET_INITIALIZER): Remove it.
8861         * target.h (struct target): Remove vector_opaque_p.
8862         * tree.c (build_opaque_vector_type): New.
8863         * tree.h (TYPE_VECTOR_OPAQUE): New.
8864         (build_opaque_vector_type): Declare.
8865         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
8866         * config/rs6000/rs6000.c (build_opaque_vector_type,
8867         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
8868         (rs6000_init_builtins): Use build_opaque_vector_type for
8869         opaque_V4SI_type_node.
8870
8871 2009-04-15  Catherine Moore  <clm@codesourcery.com>
8872
8873         * debug.h (set_name):  Declare.
8874         * dwarf2out.c (dwarf2out_set_name): Declare.
8875         (dwarf2_debug_hooks): Add set_name.
8876         (find_AT_string): New.
8877         (add_AT_string): Call find_AT_string.
8878         (dwarf2out_set_name): New.
8879         * cp/decl.c (grokdeclarator): Call set_name.
8880         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
8881         * debug.c (do_nothing_debug_hooks):  Likewise.
8882         * dbxout.c (dbx_debug_hooks): Likewise.
8883         * sdbout.c (sdb_debug_hooks): Likewise.
8884
8885 2009-04-15  Michael Eager  <eager@eagercon.com>
8886
8887         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
8888         reg for single-precision FPU.
8889         * config/rs6000/rs6000.md (movsi_internal1): Only for
8890         !TARGET_SINGLE_FPU.
8891         (movsi_internal1_single): New. Add pattern to move SI values to/from
8892         single-precision FP regs.
8893
8894 2009-04-15  Richard Guenther  <rguenther@suse.de>
8895
8896         * omp-low.c (lower_rec_input_clauses): Build correct address
8897         expressions.
8898         (expand_omp_for_generic): Fix multiplication type.
8899         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
8900         (generate_memset_zero): Fix types.
8901         * tree-profile.c (prepare_instrumented_value): Correctly
8902         widen a pointer.
8903
8904 2009-04-15  Ian Lance Taylor  <iant@google.com>
8905
8906         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
8907         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
8908         for -Wall and for -Wc++-compat.
8909         (c_common_post_options): For C++, set warn_enum_compare if not
8910         already set.
8911         * c-tree.h (struct c_expr): Add field original_type.
8912         (build_external_ref): Update declaration.
8913         * c-parser.c (c_parser_braced_init): Set original_type.
8914         (c_parser_initelt): Likewise.
8915         (c_parser_expr_no_commas): Likewise.
8916         (c_parser_conditional_expression): Likewise.
8917         (c_parser_cast_expression): Likewise.
8918         (c_parser_unary_expression): Likewise.  Pull setting of
8919         original_code to top of function.
8920         (c_parser_sizeof_expression): Set original_type.
8921         (c_parser_alignof_expression): Likewise.
8922         (c_parser_postfix_expression): Likewise.  Pull setting of
8923         original_code to top of function.
8924         (c_parser_postfix_expression_after_paren_type): Set original_type.
8925         (c_parser_postfix_expression_after_primary): Likewise.
8926         (c_parser_expression): Likewise.
8927         * c-typeck.c (build_external_ref): Add type parameter.  Change all
8928         callers.
8929         (c_expr_sizeof_expr): Set original_type field.
8930         (parser_build_unary_op): Likewise.
8931         (parser_build_binary_op): Likewise.  Optionally warn about
8932         comparisons of enums of different types.
8933         (digest_init): Set original_type field.
8934         (really_start_incremental_init): Likewise.
8935         (push_init_level, pop_init_level): Likewise.
8936         * doc/invoke.texi (Warning Options): -Wenum-compare now
8937         supported in C.
8938
8939 2009-04-15  Richard Guenther  <rguenther@suse.de>
8940
8941         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
8942         out a necessary conversion.
8943         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
8944         names we didn't value number.
8945         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
8946
8947 2009-04-15  Richard Guenther  <rguenther@suse.de>
8948
8949         PR tree-optimization/39764
8950         * tree-ssa-ccp.c (get_value): Canonicalize value with
8951         canonicalize_float_value.
8952
8953 2009-04-15  Jan Hubicka  <jh@suse.cz>
8954
8955         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
8956         Wrong version of patch.
8957
8958 2009-04-15  Jan Hubicka  <jh@suse.cz>
8959
8960         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
8961
8962 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
8963
8964         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
8965         our distinct integral and vector types.
8966
8967 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
8968
8969         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
8970         * init.c (build_vtbl_address): Remove call to assemble_external.
8971
8972 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
8973
8974         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
8975         output for other floating point modes.
8976
8977 2009-04-14  Diego Novillo  <dnovillo@google.com>
8978
8979         * diagnostic.c (diagnostic_report_diagnostic): Do not
8980         warn about loaded plugins for DK_ERROR and DK_WARNING.
8981         * c-decl.c (declspecs_add_type): Move call to
8982         invoke_plugin_callbacks ...
8983         * c-parser.c (c_parser_declspecs): ... here.
8984         * plugin.c (dump_active_plugins): Tidy output.
8985
8986 2009-04-14  Diego Novillo  <dnovillo@google.com>
8987             Le-Chun Wu  <lcwu@google.com>
8988
8989         * configure.ac: Add --enable-plugin support.
8990         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
8991         * Makefile.in (PLUGIN_H): Define.
8992         Export ENABLE_PLUGIN and GMPINC to site.exp.
8993         Add PLUGINLIBS to link command.
8994         Add/modify dependencies for plugin.o and files including plugin.h.
8995         (plugin.o): New.
8996         * config.in: Regenerate.
8997
8998         * opts.c (common_handle_option): Handle OPT_fplugin_ and
8999         OPT_fplugin_arg_.
9000
9001 2009-04-14  Le-Chun Wu  <lcwu@google.com>
9002
9003         * tree-pass.h (register_one_dump_file): Add a prototype for
9004         register_one_dump_file.
9005         * toplev.c (compile_file): Call initialize_plugins.
9006         (do_compile): Call invoke_plugin_callbacks.
9007         (toplev_main): Call invoke_plugin_callbacks.
9008         * common.opt: Add -fplugin= and -fplugin-arg-.
9009         * gcc-plugin.h: New public header file for plugins to include.
9010         * plugin.c: New source file.
9011         * plugin.h: New internal header file.
9012         * passes.c (register_one_dump_file): Make it external.
9013
9014         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
9015
9016 2009-04-14  Diego Novillo  <dnovillo@google.com>
9017
9018         * doc/plugins.texi: New.
9019         * doc/gccint.texi: Add reference to Plugins chapter.
9020         * doc/invoke.texi: Document -fplugin and -fplugin-arg
9021         * diagnostic.c (diagnostic_report_diagnostic): Warn about
9022         loaded plugins, if any.
9023         * timevar.def (TV_PLUGIN_INIT): Define.
9024         (TV_PLUGIN_RUN): Define.
9025         * plugin.c: Include timevar.h
9026         (plugins_active_p): New.
9027         (dump_active_plugins): New.
9028         (debug_active_plugins): New.
9029
9030 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
9031
9032         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
9033         library paths.
9034         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
9035
9036 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
9037
9038         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
9039         the same as a minus without a shift.
9040
9041 2009-04-14  Nick Clifton  <nickc@redhat.com>
9042
9043         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
9044         comparisons with small integers will always produce a short
9045         branch.
9046
9047 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
9048
9049         Merge:
9050         2008-12-19  Diego Novillo  <dnovillo@google.com>
9051
9052         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
9053
9054 2009-04-14  Richard Guenther  <rguenther@suse.de>
9055
9056         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
9057         verification.
9058         (verify_gimple_assign_binary): Likewise.  Handle shifts and
9059         rotates correctly.
9060         (verify_gimple_phi): Print the mismatched argument position.
9061         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
9062         Fix types.
9063         (vect_update_init_of_dr): Likewise.
9064         * matrix-reorg.c (transform_access_sites): Do what the
9065         comment suggests.
9066         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
9067
9068 2009-04-13  Michael Eager  <eager@eagercon.com>
9069
9070         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
9071         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
9072         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
9073         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9074         remove duplicate config
9075
9076 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
9077
9078         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
9079         file_name:line_number type locator of the call site.
9080
9081 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
9082
9083         * genautomata.c: Put blank after comma.
9084         (automaton_decls): New.
9085         (struct unit_usage): Add comments to member next.
9086         (store_alt_unit_usage): Keep the list ordered.
9087         (unit_present_on_list_p, equal_alternatives_p): New.
9088         (check_regexp_units_distribution): Check units distribution
9089         correctness correctly.
9090         (main): Don't write automata if error is found.  Return correct
9091         exit code.
9092
9093         * config/m68k/cf.md (cfv4_ds): Remove.
9094         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
9095         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
9096
9097         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
9098         power4-load-ext, power4-store, power4-store-update,
9099         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
9100         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
9101         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
9102         power4-sqrt, power4-isync): Modify reservation to make correct
9103         unit distribution to automata.
9104
9105         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
9106         power5-store-update, power5-two, power5-three, power5-lmul,
9107         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
9108
9109 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
9110
9111         * except.c (pass_set_nothrow_function_flags): Set name and add
9112         TODO_dump_func.
9113         (set_nothrow_function_flags): Mention in the dump file when
9114         changing a function to nothrow.
9115
9116 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
9117
9118         PR/39066
9119         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
9120         instead of unsigned long.
9121
9122 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9123
9124         * config/arm/arm.c (return_used_this_function): Remove.
9125         (arm_output_function_prologue): Remove use of
9126         return_used_this_function.
9127         (output_return_instruction): Replace use of
9128         return_used_this_function
9129         by cfun->machine->return_used_this_function.
9130         (arm_output_epilogue): Likewise.
9131         (arm_output_function_epilogue): Likewise.
9132         (thumb_unexpanded_epilogue): Likewise.
9133         * config/arm/arm.h (struct machine_function):
9134         New member return_used_this_function.
9135
9136 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
9137
9138         * doc/install.texi: Correct description of default directory for
9139         --with-gxx-include-dir.
9140
9141 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
9142
9143         * fold-const.c (build_range_check): Properly deal with enumeral and
9144         boolean base types.
9145
9146 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
9147
9148         * doc/invoke.texi (max_gcse_passes): Remove documentation.
9149         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
9150         * params.h (MAX_GCSE_PASSES): Remove.
9151         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
9152         in sequence.  Remove ability to run multiple passes.
9153         (bypass_jumps): Report run as third CPROP pass.
9154
9155 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
9156
9157         PR middle-end/39651
9158         * except.c (can_throw_external): Look at each insn in a SEQUENCE
9159         when deciding whether the whole SEQUENCE can throw.
9160
9161 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
9162
9163         PR target/39740
9164         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
9165         offseted label references.
9166
9167 2009-04-11  Jan Hubicka  <jh@suse.cz>
9168
9169         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
9170
9171 2009-04-11  Richard Guenther  <rguenther@suse.de>
9172
9173         PR middle-end/39732
9174         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
9175         return variables as TREE_ADDRESSABLE.
9176
9177 2009-04-11  Richard Guenther  <rguenther@suse.de>
9178
9179         PR tree-optimization/39713
9180         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
9181         reference trees have SSA_NAME operands.
9182
9183 2009-04-11  Richard Guenther  <rguenther@suse.de>
9184
9185         PR c/39712
9186         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
9187         address expressions.
9188
9189 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
9190
9191         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
9192         match changes in Cygwin 1.7
9193         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
9194         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
9195
9196 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
9197
9198         PR tree-optimization/39701
9199         * doc/invoke.texi (Optimization Options): Document change in
9200         meaning and initialization of -fdelete-null-pointer-checks.
9201
9202 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
9203
9204         PR middle-end/39701
9205         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
9206
9207         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
9208         here.
9209
9210         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
9211
9212 2009-04-10  Chao-ying Fu  <fu@mips.com>
9213
9214         * doc/tm.texi (Instruction Output): Document
9215         TARGET_ASM_FINAL_POSTSCAN_INSN.
9216         * target.h (final_postscan_insn): New field in asm_out.
9217         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9218         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
9219         * final.c (final_scan_insn): Call
9220         targetm.asm_out.final_postscan_insn after outputting
9221         an asm macro and a normal instruction.
9222
9223         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
9224         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
9225         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
9226         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
9227         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
9228
9229 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
9230
9231         PR middle-end/39701
9232         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
9233         variables as non-NULL even with -fdelete-null-pointer-checks.
9234
9235 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
9236
9237         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
9238
9239 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
9240
9241         PR target/39678
9242         * config/i386/i386.c (classify_argument): Handle SCmode with
9243         (bit_offset % 64) != 0.
9244
9245 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
9246
9247         * doc/invoke.texi (Optimize Options): Add cross-reference to
9248         -Q --help=optimizers examples.
9249
9250 2009-04-10  Ben Elliston  <bje@au.ibm.com>
9251
9252         PR target/36800
9253         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
9254         regalign for the reg == fpr and TDmode case.
9255
9256 2009-04-09  David Ayers  <ayers@fsfe.org>
9257
9258         PR objc/29200
9259         * objc/objc-act.c (warn_with_method): Remove helper function.
9260         (check_duplicates): Call warning and inform directly.
9261         (really_start_method): Likewise.
9262
9263 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
9264
9265         * expmed.c (expand_divmod): Always use a comparison for a division
9266         by a large unsigned integer.
9267
9268         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
9269         for things others than variables or functions as nonzero.
9270
9271 2009-04-09  Nick Clifton  <nickc@redhat.com>
9272
9273         * unwind-compat.c: Change copyright header to refer to version
9274         3 of the GNU General Public License with version 3.1 of the
9275         GCC Runtime Library Exception and to point readers at the
9276         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
9277         * config/alpha/crtfastmath.c: Likewise.
9278         * config/alpha/linux-unwind.h: Likewise.
9279         * config/alpha/qrnnd.asm: Likewise.
9280         * config/alpha/vms-crt0-64.c: Likewise.
9281         * config/alpha/vms-crt0.c: Likewise.
9282         * config/alpha/vms-dwarf2.asm: Likewise.
9283         * config/alpha/vms-dwarf2eh.asm: Likewise.
9284         * config/alpha/vms-psxcrt0-64.c: Likewise.
9285         * config/alpha/vms-psxcrt0.c: Likewise.
9286         * config/alpha/vms_tramp.asm: Likewise.
9287         * config/arc/initfini.c: Likewise.
9288         * config/arc/lib1funcs.asm: Likewise.
9289         * config/arm/bpabi-v6m.S: Likewise.
9290         * config/arm/bpabi.S: Likewise.
9291         * config/arm/bpabi.c: Likewise.
9292         * config/arm/crti.asm: Likewise.
9293         * config/arm/crtn.asm: Likewise.
9294         * config/arm/ieee754-df.S: Likewise.
9295         * config/arm/ieee754-sf.S: Likewise.
9296         * config/arm/lib1funcs.asm: Likewise.
9297         * config/arm/libunwind.S: Likewise.
9298         * config/arm/linux-atomic.c: Likewise.
9299         * config/arm/mmintrin.h: Likewise.
9300         * config/arm/pr-support.c: Likewise.
9301         * config/arm/unaligned-funcs.c: Likewise.
9302         * config/arm/unwind-arm.c: Likewise.
9303         * config/arm/unwind-arm.h: Likewise.
9304         * config/avr/libgcc.S: Likewise.
9305         * config/bfin/crti.s: Likewise.
9306         * config/bfin/crtlibid.s: Likewise.
9307         * config/bfin/crtn.s: Likewise.
9308         * config/bfin/lib1funcs.asm: Likewise.
9309         * config/bfin/linux-unwind.h: Likewise.
9310         * config/cris/arit.c: Likewise.
9311         * config/cris/cris_abi_symbol.c: Likewise.
9312         * config/darwin-64.c: Likewise.
9313         * config/darwin-crt2.c: Likewise.
9314         * config/darwin-crt3.c: Likewise.
9315         * config/darwin.h: Likewise.
9316         * config/dbxelf.h: Likewise.
9317         * config/dfp-bit.c: Likewise.
9318         * config/dfp-bit.h: Likewise.
9319         * config/elfos.h: Likewise.
9320         * config/fixed-bit.c: Likewise.
9321         * config/fixed-bit.h: Likewise.
9322         * config/fp-bit.c: Likewise.
9323         * config/fp-bit.h: Likewise.
9324         * config/fr30/crti.asm: Likewise.
9325         * config/fr30/crtn.asm: Likewise.
9326         * config/fr30/lib1funcs.asm: Likewise.
9327         * config/freebsd-spec.h: Likewise.
9328         * config/frv/cmovd.c: Likewise.
9329         * config/frv/cmovh.c: Likewise.
9330         * config/frv/cmovw.c: Likewise.
9331         * config/frv/frvbegin.c: Likewise.
9332         * config/frv/frvend.c: Likewise.
9333         * config/frv/lib1funcs.asm: Likewise.
9334         * config/glibc-stdint.h: Likewise.
9335         * config/h8300/clzhi2.c: Likewise.
9336         * config/h8300/crti.asm: Likewise.
9337         * config/h8300/crtn.asm: Likewise.
9338         * config/h8300/ctzhi2.c: Likewise.
9339         * config/h8300/fixunssfsi.c: Likewise.
9340         * config/h8300/lib1funcs.asm: Likewise.
9341         * config/h8300/parityhi2.c: Likewise.
9342         * config/h8300/popcounthi2.c: Likewise.
9343         * config/i386/ammintrin.h: Likewise.
9344         * config/i386/att.h: Likewise.
9345         * config/i386/avxintrin.h: Likewise.
9346         * config/i386/biarch64.h: Likewise.
9347         * config/i386/bmmintrin.h: Likewise.
9348         * config/i386/cpuid.h: Likewise.
9349         * config/i386/cross-stdarg.h: Likewise.
9350         * config/i386/crtfastmath.c: Likewise.
9351         * config/i386/crtprec.c: Likewise.
9352         * config/i386/cygming-crtbegin.c: Likewise.
9353         * config/i386/cygming-crtend.c: Likewise.
9354         * config/i386/cygwin.asm: Likewise.
9355         * config/i386/emmintrin.h: Likewise.
9356         * config/i386/gmm_malloc.h: Likewise.
9357         * config/i386/gthr-win32.c: Likewise.
9358         * config/i386/i386.h: Likewise.
9359         * config/i386/immintrin.h: Likewise.
9360         * config/i386/linux-unwind.h: Likewise.
9361         * config/i386/linux64.h: Likewise.
9362         * config/i386/mm3dnow.h: Likewise.
9363         * config/i386/mmintrin-common.h: Likewise.
9364         * config/i386/mmintrin.h: Likewise.
9365         * config/i386/nmmintrin.h: Likewise.
9366         * config/i386/pmm_malloc.h: Likewise.
9367         * config/i386/pmmintrin.h: Likewise.
9368         * config/i386/smmintrin.h: Likewise.
9369         * config/i386/sol2-c1.asm: Likewise.
9370         * config/i386/sol2-ci.asm: Likewise.
9371         * config/i386/sol2-cn.asm: Likewise.
9372         * config/i386/sol2-gc1.asm: Likewise.
9373         * config/i386/tmmintrin.h: Likewise.
9374         * config/i386/unix.h: Likewise.
9375         * config/i386/w32-unwind.h: Likewise.
9376         * config/i386/wmmintrin.h: Likewise.
9377         * config/i386/x86-64.h: Likewise.
9378         * config/i386/x86intrin.h: Likewise.
9379         * config/i386/xmmintrin.h: Likewise.
9380         * config/ia64/crtbegin.asm: Likewise.
9381         * config/ia64/crtend.asm: Likewise.
9382         * config/ia64/crtfastmath.c: Likewise.
9383         * config/ia64/crti.asm: Likewise.
9384         * config/ia64/crtn.asm: Likewise.
9385         * config/ia64/fde-glibc.c: Likewise.
9386         * config/ia64/lib1funcs.asm: Likewise.
9387         * config/ia64/linux-unwind.h: Likewise.
9388         * config/ia64/quadlib.c: Likewise.
9389         * config/ia64/unwind-ia64.c: Likewise.
9390         * config/linux.h: Likewise.
9391         * config/m32c/m32c-lib1.S: Likewise.
9392         * config/m32c/m32c-lib2-trapv.c: Likewise.
9393         * config/m32c/m32c-lib2.c: Likewise.
9394         * config/m32r/initfini.c: Likewise.
9395         * config/m68hc11/larith.asm: Likewise.
9396         * config/m68hc11/m68hc11-crt0.S: Likewise.
9397         * config/m68k/cf.md: Likewise.
9398         * config/m68k/crti.s: Likewise.
9399         * config/m68k/crtn.s: Likewise.
9400         * config/m68k/lb1sf68.asm: Likewise.
9401         * config/m68k/linux-unwind.h: Likewise.
9402         * config/mcore/crti.asm: Likewise.
9403         * config/mcore/crtn.asm: Likewise.
9404         * config/mcore/lib1.asm: Likewise.
9405         * config/mips/linux-unwind.h: Likewise.
9406         * config/mips/loongson.h: Likewise.
9407         * config/mips/mips16.S: Likewise.
9408         * config/mmix/crti.asm: Likewise.
9409         * config/mmix/crtn.asm: Likewise.
9410         * config/pa/fptr.c: Likewise.
9411         * config/pa/hpux-unwind.h: Likewise.
9412         * config/pa/lib2funcs.asm: Likewise.
9413         * config/pa/linux-atomic.c: Likewise.
9414         * config/pa/linux-unwind.h: Likewise.
9415         * config/pa/milli64.S: Likewise.
9416         * config/pa/quadlib.c: Likewise.
9417         * config/pa/stublib.c: Likewise.
9418         * config/picochip/libgccExtras/adddi3.asm: Likewise.
9419         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
9420         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
9421         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
9422         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
9423         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
9424         * config/picochip/libgccExtras/divmod15.asm: Likewise.
9425         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
9426         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
9427         * config/picochip/libgccExtras/longjmp.asm: Likewise.
9428         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
9429         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
9430         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
9431         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
9432         * config/picochip/libgccExtras/setjmp.asm: Likewise.
9433         * config/picochip/libgccExtras/subdi3.asm: Likewise.
9434         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
9435         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
9436         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
9437         * config/rs6000/750cl.h: Likewise.
9438         * config/rs6000/altivec.h: Likewise.
9439         * config/rs6000/biarch64.h: Likewise.
9440         * config/rs6000/crtresfpr.asm: Likewise.
9441         * config/rs6000/crtresgpr.asm: Likewise.
9442         * config/rs6000/crtresxfpr.asm: Likewise.
9443         * config/rs6000/crtresxgpr.asm: Likewise.
9444         * config/rs6000/crtsavfpr.asm: Likewise.
9445         * config/rs6000/crtsavgpr.asm: Likewise.
9446         * config/rs6000/darwin-asm.h: Likewise.
9447         * config/rs6000/darwin-fallback.c: Likewise.
9448         * config/rs6000/darwin-fpsave.asm: Likewise.
9449         * config/rs6000/darwin-ldouble.c: Likewise.
9450         * config/rs6000/darwin-tramp.asm: Likewise.
9451         * config/rs6000/darwin-unwind.h: Likewise.
9452         * config/rs6000/darwin-vecsave.asm: Likewise.
9453         * config/rs6000/darwin-world.asm: Likewise.
9454         * config/rs6000/e500crtres32gpr.asm: Likewise.
9455         * config/rs6000/e500crtres64gpr.asm: Likewise.
9456         * config/rs6000/e500crtres64gprctr.asm: Likewise.
9457         * config/rs6000/e500crtrest32gpr.asm: Likewise.
9458         * config/rs6000/e500crtrest64gpr.asm: Likewise.
9459         * config/rs6000/e500crtresx32gpr.asm: Likewise.
9460         * config/rs6000/e500crtresx64gpr.asm: Likewise.
9461         * config/rs6000/e500crtsav32gpr.asm: Likewise.
9462         * config/rs6000/e500crtsav64gpr.asm: Likewise.
9463         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9464         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
9465         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
9466         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
9467         * config/rs6000/eabi-ci.asm: Likewise.
9468         * config/rs6000/eabi-cn.asm: Likewise.
9469         * config/rs6000/eabi.asm: Likewise.
9470         * config/rs6000/linux-unwind.h: Likewise.
9471         * config/rs6000/linux64.h: Likewise.
9472         * config/rs6000/paired.h: Likewise.
9473         * config/rs6000/paired.md: Likewise.
9474         * config/rs6000/ppc64-fp.c: Likewise.
9475         * config/rs6000/ppu_intrinsics.h: Likewise.
9476         * config/rs6000/rs6000.h: Likewise.
9477         * config/rs6000/si2vmx.h: Likewise.
9478         * config/rs6000/sol-ci.asm: Likewise.
9479         * config/rs6000/sol-cn.asm: Likewise.
9480         * config/rs6000/spe.h: Likewise.
9481         * config/rs6000/spu2vmx.h: Likewise.
9482         * config/rs6000/sysv4.h: Likewise.
9483         * config/rs6000/tramp.asm: Likewise.
9484         * config/rs6000/vec_types.h: Likewise.
9485         * config/s390/linux-unwind.h: Likewise.
9486         * config/s390/tpf-unwind.h: Likewise.
9487         * config/score/crti.asm: Likewise.
9488         * config/score/crtn.asm: Likewise.
9489         * config/sh/crt1.asm: Likewise.
9490         * config/sh/crti.asm: Likewise.
9491         * config/sh/crtn.asm: Likewise.
9492         * config/sh/divtab-sh4-300.c: Likewise.
9493         * config/sh/divtab-sh4.c: Likewise.
9494         * config/sh/divtab.c: Likewise.
9495         * config/sh/lib1funcs-4-300.asm: Likewise.
9496         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
9497         * config/sh/lib1funcs.asm: Likewise.
9498         * config/sh/lib1funcs.h: Likewise.
9499         * config/sh/linux-atomic.asm: Likewise.
9500         * config/sh/linux-unwind.h: Likewise.
9501         * config/sh/shmedia.h: Likewise.
9502         * config/sh/sshmedia.h: Likewise.
9503         * config/sh/ushmedia.h: Likewise.
9504         * config/sparc/crtfastmath.c: Likewise.
9505         * config/sparc/linux-unwind.h: Likewise.
9506         * config/sparc/sol2-c1.asm: Likewise.
9507         * config/sparc/sol2-ci.asm: Likewise.
9508         * config/sparc/sol2-cn.asm: Likewise.
9509         * config/spu/divmodti4.c: Likewise.
9510         * config/spu/divv2df3.c: Likewise.
9511         * config/spu/float_disf.c: Likewise.
9512         * config/spu/float_unsdidf.c: Likewise.
9513         * config/spu/float_unsdisf.c: Likewise.
9514         * config/spu/float_unssidf.c: Likewise.
9515         * config/spu/mfc_multi_tag_release.c: Likewise.
9516         * config/spu/mfc_multi_tag_reserve.c: Likewise.
9517         * config/spu/mfc_tag_release.c: Likewise.
9518         * config/spu/mfc_tag_reserve.c: Likewise.
9519         * config/spu/mfc_tag_table.c: Likewise.
9520         * config/spu/multi3.c: Likewise.
9521         * config/spu/spu_internals.h: Likewise.
9522         * config/spu/spu_intrinsics.h: Likewise.
9523         * config/spu/spu_mfcio.h: Likewise.
9524         * config/spu/vec_types.h: Likewise.
9525         * config/spu/vmx2spu.h: Likewise.
9526         * config/stormy16/stormy16-lib2.c: Likewise.
9527         * config/svr4.h: Likewise.
9528         * config/sync.c: Likewise.
9529         * config/v850/lib1funcs.asm: Likewise.
9530         * config/vxlib-tls.c: Likewise.
9531         * config/vxlib.c: Likewise.
9532         * config/vxworks-dummy.h: Likewise.
9533         * config/xtensa/crti.asm: Likewise.
9534         * config/xtensa/crtn.asm: Likewise.
9535         * config/xtensa/ieee754-df.S: Likewise.
9536         * config/xtensa/ieee754-sf.S: Likewise.
9537         * config/xtensa/lib1funcs.asm: Likewise.
9538         * config/xtensa/lib2funcs.S: Likewise.
9539         * config/xtensa/linux-unwind.h: Likewise.
9540         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9541         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
9542         * coretypes.h: Likewise.
9543         * crtstuff.c: Likewise.
9544         * defaults.h: Likewise.
9545         * dwarf2.h: Likewise.
9546         * emutls.c: Likewise.
9547         * gbl-ctors.h: Likewise.
9548         * gcov-io.h: Likewise.
9549         * ginclude/float.h: Likewise.
9550         * ginclude/iso646.h: Likewise.
9551         * ginclude/stdarg.h: Likewise.
9552         * ginclude/stdbool.h: Likewise.
9553         * ginclude/stddef.h: Likewise.
9554         * ginclude/stdfix.h: Likewise.
9555         * ginclude/stdint-gcc.h: Likewise.
9556         * ginclude/tgmath.h: Likewise.
9557         * gthr-aix.h: Likewise.
9558         * gthr-dce.h: Likewise.
9559         * gthr-gnat.c: Likewise.
9560         * gthr-gnat.h: Likewise.
9561         * gthr-lynx.h: Likewise.
9562         * gthr-mipssde.h: Likewise.
9563         * gthr-nks.h: Likewise.
9564         * gthr-posix.c: Likewise.
9565         * gthr-posix.h: Likewise.
9566         * gthr-posix95.h: Likewise.
9567         * gthr-rtems.h: Likewise.
9568         * gthr-single.h: Likewise.
9569         * gthr-solaris.h: Likewise.
9570         * gthr-tpf.h: Likewise.
9571         * gthr-vxworks.h: Likewise.
9572         * gthr-win32.h: Likewise.
9573         * gthr.h: Likewise.
9574         * libgcc2.c: Likewise.
9575         * libgcc2.h: Likewise.
9576         * libgcov.c: Likewise.
9577         * tsystem.h: Likewise.
9578         * typeclass.h: Likewise.
9579         * unwind-c.c: Likewise.
9580         * unwind-compat.h: Likewise.
9581         * unwind-dw2-fde-compat.c: Likewise.
9582         * unwind-dw2-fde-darwin.c: Likewise.
9583         * unwind-dw2-fde-glibc.c: Likewise.
9584         * unwind-dw2-fde.c: Likewise.
9585         * unwind-dw2-fde.h: Likewise.
9586         * unwind-dw2.c: Likewise.
9587         * unwind-dw2.h: Likewise.
9588         * unwind-generic.h: Likewise.
9589         * unwind-pe.h: Likewise.
9590         * unwind-sjlj.c: Likewise.
9591         * unwind.inc: Likewise.
9592         * config/arm/neon-gen.ml: Change generated copyright header to
9593         refer to version 3 of the GNU General Public License with
9594         version 3.1 of the GCC Runtime Library Exception and to point
9595         readers at the COPYING3 and COPYING3.RUNTIME files and the
9596         FSF's license web page.
9597         * config/arm/arm_neon.h: Regenerate.
9598
9599 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
9600
9601         * config/cris/cris.md: Change copyright header to refer to version
9602         3 of the GNU General Public License.
9603         * doc/install.texi2html: Change copyright header to refer to version
9604         3 of the GNU General Public License and to point readers at the
9605         COPYING3 file and the FSF's license web page.
9606         * config/vax/linux.h: Likewise.
9607
9608 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
9609
9610         * config/i386/i386.md (cmpcc): New.
9611         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
9612         (sync_compare_and_swap_cc*): Delete.
9613
9614         * config/s390/s390.c (s390_compare_emitted): Remove.
9615         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
9616         s390_compare_emitted used to be handled.  Assert that modes match.
9617         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
9618         refer to sync_compare_and_swap_ccsi.
9619         * config/s390/s390.h (s390_compare_emitted): Remove.
9620         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
9621         instead of s390_compare_emitted.
9622         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
9623         instead of s390_compare_emitted.
9624         * config/s390/s390.md (cmpcc): New.
9625         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
9626         CC_REGNUM, do not pretend it's set.
9627         (sync_compare_and_swap_cc*): Delete.
9628         * config/s390/predicates.md (cc_reg_operand): New.
9629
9630         * expr.c (sync_compare_and_swap_cc): Delete.
9631         * optabs.h (sync_compare_and_swap_cc): Delete.
9632         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
9633         is being used with can_compare_p.
9634         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
9635         (find_cc_set): New.
9636         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
9637         look for a MODE_CC set instead.  Use emit_store_flag.
9638         (expand_compare_and_swap_loop): Likewise, with some additional
9639         complication to avoid a force_reg when useless.  Use
9640         emit_cmp_and_jump_insns.
9641         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
9642         * doc/md.texi (sync_compare_and_swap_cc): Merge with
9643         sync_compare_and_swap documentation.
9644
9645 2009-04-09  Jan Hubicka  <jh@suse.cz>
9646
9647         * except.c (find_prev_try): Break out from ....
9648         (duplicate_eh_regions): ... here; properly update prev_try pointers
9649         when duplication part of tree.
9650         (dump_eh_tree): Improve dumping.
9651         (verify_eh_region): New.
9652         (verify_eh_tree): Use it.
9653
9654 2009-04-06  Richard Guenther  <rguenther@suse.de>
9655
9656         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
9657         &ARRAY addresses by adjusting their types and prepending
9658         a conversion.
9659         * tree-cfg.c (verify_gimple_assign_single): Verify that
9660         addresses are correct.
9661
9662 2009-04-09  Richard Guenther  <rguenther@suse.de>
9663
9664         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
9665         indices into an array reference if possible.
9666         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
9667         Fold POINTER_PLUS_EXPR statements with invariant address.
9668
9669 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
9670
9671         PR target/39634
9672         * config.gcc (powerpc64-*-linux*): Always build biarch.
9673
9674 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
9675
9676         PR c/39613
9677         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
9678         it and pedwarn if this results in an INTEGER_CST.
9679
9680 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9681
9682         * doc/install.texi: Update minimum GMP version.  Remove obsolete
9683         text in MPFR section.
9684
9685 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
9686
9687         * dwarf2out.c (class_scope_p): New static inline.
9688         (class_or_namespace_scope_p): Use it.
9689         (gen_variable_die): Use DW_TAG_member tag for static data member
9690         declarations instead of DW_TAG_variable.
9691
9692         PR middle-end/39573
9693         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
9694         variables.
9695
9696 2009-04-08  Richard Guenther  <rguenther@suse.de>
9697
9698         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
9699         valueize random data.
9700
9701 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
9702
9703         * config.gcc (aix tm_file):  Add aix-stdint.h.
9704         (aix tm clause use_gcc_stdint):  Set to wrap.
9705         * config/rs6000/aix-stdint.h:  New file.
9706
9707 2009-04-08  Richard Guenther  <rguenther@suse.de>
9708
9709         PR middle-end/36291
9710         * tree-dfa.c (add_referenced_var): Do not recurse into
9711         global initializers.
9712         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
9713         exposed variables.
9714         (fold_const_aggregate_ref): Likewise.
9715
9716 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
9717
9718         * recog.c (ordered_comparison_operator): New.
9719         * gensupport.c (std_preds): Add it.
9720         * doc/md.texi (Machine-Independent Predicates): Document it.
9721
9722 2009-04-08  Jan Hubicka  <jh@suse.cz>
9723
9724         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
9725         * function.h (rtl_eh): Remove exception_handler_label_map.
9726         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
9727         remove_exception_handler_label, for_each_eh_label_1): Remove.
9728         (rtl_remove_unreachable_regions): Remove.
9729         (convert_from_eh_region_ranges): Do not remove unreachable regions.
9730         (find_exception_handler_labels): Don't build the hashtable.
9731         (maybe_remove_eh_handler): Remove.
9732         (for_each_eh_label): Rewrite to walk the tree.
9733         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
9734         * except.h (maybe_remove_eh_handler): Remove.
9735         * passes.c (init_optimization_passes): Schedule second EH cleanup
9736         before out-of-ssa.
9737         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
9738         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
9739
9740 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
9741
9742         * genoutput.c (validate_optab_operands): New.
9743         (gen_insn, gen_expand): Call it.
9744
9745         * genflags.c (gen_insn): Detect misused iterators.
9746         (main): Pass line_no to gen_insn, exit with status 1 on error.
9747
9748         * genextract.c (line_no): Make global.
9749         (VEC_safe_set_locstr): Change assertion to error message.
9750         (main): Exit with status 1 on error.
9751
9752 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
9753
9754         PR c/39614
9755         PR c/39673
9756         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
9757         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
9758         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
9759         * c-convert.c (convert): Do not call fold on results of conversion
9760         functions when the result is a C_MAYBE_CONST_EXPR.
9761         * c-parser.c (c_parser_postfix_expression): Do not fold condition
9762         of __builtin_choose_expr.
9763         * c-typeck.c (remove_c_maybe_const_expr): New.
9764         (build_unary_op, build_conditional_expr, build_compound_expr,
9765         build_binary_op, c_objc_common_truthvalue_conversion): Call
9766         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
9767         integer operands.
9768
9769 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
9770
9771         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
9772         CODE to produce a new one. Add a prototype to use fold_convert_const
9773
9774 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
9775
9776         PR bootstrap/39660
9777         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
9778         mix declarations and code.
9779
9780 2009-04-08  Ben Elliston  <bje@au.ibm.com>
9781
9782         * gcc.c: Replace `CC' with `GCC' throughout.
9783
9784 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
9785
9786         * doc/invoke.texi: Document Atom support.
9787
9788 2009-04-07  Jason Merrill  <jason@redhat.com>
9789
9790         PR c++/25185
9791         * c-common.h, c-common.c: Add flag_pretty_templates.
9792         * c-opts.c (c_common_handle_option): Set it.
9793         * c.opt: Add -fno-pretty-templates.
9794         * doc/invoke.texi (C++ Dialect Options): Likewise.
9795
9796 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
9797
9798         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
9799         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
9800         (ia64_expand_builtin): Likewise.
9801
9802 2009-04-07  Martin Jambor  <mjambor@suse.cz>
9803
9804         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
9805         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
9806         ADDR_EXPRS are include too.
9807
9808 2009-04-07  Richard Guenther  <rguenther@suse.de>
9809
9810         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
9811         decls are only used if passes as parameters or if they are
9812         local statics and the call is not to a builtin.
9813         (call_may_clobber_ref_p_1): Likewise.
9814
9815 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
9816
9817         * expr.c (do_store_flag): Remove last argument.  Simplify code
9818         to avoid duplication of tests already done by can_compare_p.
9819         (expand_expr_real_1): Adjust caller.
9820
9821 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
9822
9823         * optabs.c (can_compare_p): Test the predicate of a
9824         cbranch and cstore pattern.
9825
9826 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
9827
9828         * expr.c (convert_move): Use emit_store_flag instead of
9829         "emulating" it.
9830
9831 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
9832
9833         * config/i386/i386.c (ix86_compare_emitted): Remove.
9834         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
9835         ix86_compare_op0 like ix86_compare_emitted used to be handled.
9836         * config/i386/i386.h (ix86_compare_emitted): Remove.
9837         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
9838         instead of ix86_compare_emitted.
9839         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
9840
9841 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
9842
9843         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
9844         Add t-sysroot-suffix to tmake_file.
9845         * config/print-sysroot-suffix.sh: New file.
9846         * config/t-sysroot-suffix: New file.
9847
9848 2009-04-07  Ben Elliston  <bje@au.ibm.com>
9849
9850         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
9851         as the latter produces a warning when the target does not support
9852         infinity.
9853
9854 2009-04-07  Ben Elliston  <bje@au.ibm.com>
9855
9856         * dfp.c: Replace type punning assignments with memcpy throughout.
9857         * Makefile.in (dfp.o-warn): Remove.
9858
9859 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
9860
9861         PR target/39634
9862         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
9863         Include soft-fp/t-softfp after rs6000/t-linux64.
9864
9865 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
9866
9867         * stor-layout.c (set_sizetype): Use the full precision of their
9868         machine mode for bitsize types.
9869
9870 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
9871
9872         * config/i386/i386.md: Revert 2 accidental checkins.
9873
9874 2009-04-06  Joey Ye  <joey.ye@intel.com>
9875             Xuepeng Guo  <xuepeng.guo@intel.com>
9876             H.J. Lu  <hongjiu.lu@intel.com>
9877
9878         Atom pipeline model, tuning and insn selection.
9879         * config.gcc (atom): Add atom config options and target.
9880
9881         * config/i386/atom.md: New.
9882
9883         * config/i386/i386.c (atom_cost): New cost.
9884         (m_ATOM): New macro flag.
9885         (initial_ix86_tune_features): Set m_ATOM.
9886         (x86_accumulate_outgoing_args): Likewise.
9887         (x86_arch_always_fancy_math_387): Likewise.
9888         (processor_target): Add Atom cost.
9889         (cpu_names): Add Atom cpu name.
9890         (override_options): Set Atom ISA.
9891         (ix86_issue_rate): New case PROCESSOR_ATOM.
9892         (ix86_adjust_cost): Likewise.
9893
9894         * config/i386/i386.h (TARGET_ATOM): New target macro.
9895         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
9896         (TARGET_OPT_AGU): New target option.
9897         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
9898         (processor_type): Add PROCESSOR_ATOM.
9899
9900         * config/i386/i386.md (cpu): Add new value "atom".
9901         (use_carry, movu): New attr.
9902         (atom.md): Include atom.md.
9903         (adddi3_carry_rex64): Set attr "use_carry".
9904         (addqi3_carry): Likewise.
9905         (addhi3_carry): Likewise.
9906         (addsi3_carry): Likewise.
9907         (*addsi3_carry_zext): Likewise.
9908         (subdi3_carry_rex64): Likewise.
9909         (subqi3_carry): Likewise.
9910         (subhi3_carry): Likewise.
9911         (subsi3_carry): Likewise.
9912         (x86_movdicc_0_m1_rex64): Likewise.
9913         (*x86_movdicc_0_m1_se): Likewise.
9914         (x86_movsicc_0_m1): Likewise.
9915         (*x86_movsicc_0_m1_se): Likewise.
9916         (*adddi_1_rex64): Emit add insn as much as possible.
9917         (*addsi_1): Likewise.
9918         (return_internal): Set atom_unit.
9919         (return_internal_long): Likewise.
9920         (return_pop_internal): Likewise.
9921         (*rcpsf2_sse): Set atom_sse_attr attr.
9922         (*qrt<mode>2_sse): Likewise.
9923         (*prefetch_sse): Likewise.
9924
9925         * config/i386/i386-c.c (ix86_target_macros_internal): New case
9926         PROCESSOR_ATOM.
9927         (ix86_target_macros_internal): Likewise.
9928
9929         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
9930         (*prefetch_sse_rex): Likewise.
9931         (sse_rcpv4sf2): Likewise.
9932         (sse_vmrcpv4sf2): Likewise.
9933         (sse_sqrtv4sf2): Likewise.
9934         (<sse>_vmsqrt<mode>2): Likewise.
9935         (sse_ldmxcsr): Likewise.
9936         (sse_stmxcsr): Likewise.
9937         (*sse_sfence): Likewise.
9938         (sse2_clflush): Likewise.
9939         (*sse2_mfence): Likewise.
9940         (*sse2_lfence): Likewise.
9941         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
9942         (<sse>_movup<ssemodesuffixf2c>): Likewise.
9943         (avx_movdqu<avxmodesuffix>): Likewise.
9944         (avx_lddqu<avxmodesuffix>): Likewise.
9945         (sse2_movntv2di): Change attr "type" to "ssemov".
9946         (sse2_movntsi): Likewise.
9947         (rsqrtv8sf2): Change attr "type" to "sseadd".
9948         (sse3_addsubv2df3): Set attr "atom_unit".
9949         (sse3_h<plusminus_insn>v4sf3): Likewise.
9950         (*sse2_pmaddwd): Likewise.
9951         (*vec_extractv2di_1_rex64): Likewise.
9952         (*vec_extractv2di_1_avx): Likewise.
9953         (sse2_psadbw): Likewise.
9954         (ssse3_phaddwv8hi3): Likewise.
9955         (ssse3_phaddwv4hi3): Likewise.
9956         (ssse3_phadddv4si3): Likewise.
9957         (ssse3_phadddv2si3): Likewise.
9958         (ssse3_phaddswv8hi3): Likewise.
9959         (ssse3_phaddswv4hi3): Likewise.
9960         (ssse3_phsubwv8hi3): Likewise.
9961         (ssse3_phsubwv4hi3): Likewise.
9962         (ssse3_phsubdv4si3): Likewise.
9963         (ssse3_phsubdv2si3): Likewise.
9964         (ssse3_phsubswv8hi3): Likewise.
9965         (ssse3_phsubswv4hi3): Likewise.
9966         (ssse3_pmaddubsw128): Likewise.
9967         (sse3_pmaddubsw: Likewise.
9968         (ssse3_palignrti): Likewise.
9969         (ssse3_palignrdi): Likewise.
9970
9971 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
9972
9973         * doc/install.texi (Specific): Fix two cross-references to MinGW.
9974
9975 2009-04-06  Richard Guenther  <rguenther@suse.de>
9976
9977         PR tree-optimization/28868
9978         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
9979         of which PHI results we inserted.
9980         (insert_into_preds_of_block): Record inserted PHIs.
9981         (eliminate): Eliminate redundant PHI nodes.
9982         (init_pre): Init inserted_phi_names.
9983
9984 2009-04-06  Richard Guenther  <rguenther@suse.de>
9985
9986         PR tree-optimization/39643
9987         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
9988         IMAGPART_EXPRs of complex constants.
9989         (execute_fold_all_builtins): If we folded a call queue
9990         TODO_update_address_taken.
9991
9992 2009-04-06  Jan Hubicka  <jh@suse.cz>
9993
9994         PR middle-end/39659
9995         * except.c (remove_unreachable_regions): Propagate may_contain_throw
9996         flag.
9997
9998 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
9999
10000         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
10001         delay slot.
10002         (ic_invalidate_array): Likewise.
10003
10004 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
10005
10006         * calls.c (emit_library_call_value_1): Fix a problem with parameter
10007         alignment for library calls.
10008
10009 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
10010
10011         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
10012         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
10013         * config/i386/mingw-stdint.h:  New file.
10014
10015 2009-04-05  Richard Guenther  <rguenther@suse.de>
10016
10017         PR tree-optimization/39648
10018         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
10019         our &A vs. &A[0] IL deficiencies.
10020
10021 2009-04-04  Jan Hubicka  <jh@suse.cz>
10022
10023         * except.c (sjlj_find_directly_reachable_regions): Be ready for
10024         removed toplevel regions.
10025         (sjlj_mark_call_sites): Likewise.
10026
10027 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
10028
10029         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
10030         (cygwin tm clause use_gcc_stdint):  Set to wrap.
10031         * config/i386/cygwin-stdint.h:  New file.
10032
10033 2009-04-04  Richard Guenther  <rguenther@suse.de>
10034
10035         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
10036         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
10037         single-argument PHIs if we are in loop-closed SSA form.
10038         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
10039         for the pre-condition.
10040         (slpeel_tree_peel_loop_to_edge): Likewise.
10041         (vect_build_loop_niters): Take an optional sequence to append stmts.
10042         (vect_generate_tmps_on_preheader): Likewise.
10043         (vect_do_peeling_for_loop_bound): Take extra guards for the
10044         pre-condition.
10045         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
10046         the cost model check.
10047         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
10048         guards if we are going to peel.  Do not apply versioning in that case.
10049         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
10050         (vect_do_peeling_for_loop_bound): Likewise.
10051         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
10052         loop bound only record extra pre-conditions, do not apply loop
10053         versioning.
10054
10055 2009-04-04  Richard Guenther  <rguenther@suse.de>
10056
10057         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
10058         renaming code.
10059
10060 2009-04-04  Jan Hubicka  <jh@suse.cz>
10061
10062         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10063         last_basic_block for size of bb->index indexed array.
10064         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
10065         compute_out, link_btr_uses, build_btr_def_use_webs,
10066         build_btr_def_use_webs, migrate_btr_defs): Likewise.
10067
10068 2009-04-04  Jan Hubicka  <jh@suse.cz>
10069
10070         * except.c (remove_eh_handler_and_replace): Break out from ...
10071         (remove_eh_handler): ... here.
10072         (bring_to_root): New function.
10073         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
10074         handled ones, bring others to root of tree.
10075
10076 2009-04-04  Jan Hubicka  <jh@suse.cz>
10077
10078         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
10079         (all_phis_safe_to_merge): New function.
10080         (update_info): New structure.
10081         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
10082         (cleanup_empty_eh): Update SSA if possible.
10083
10084 2009-04-04  Richard Guenther  <rguenther@suse.de>
10085
10086         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
10087         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
10088         (append_vuse): Likewise.
10089
10090 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
10091
10092         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
10093         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
10094         instead of REG_UNSAVED for DW_CFA_undefined.
10095         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
10096         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
10097         outermost frame.
10098
10099 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
10100
10101         PR target/39501
10102         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
10103         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
10104         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
10105
10106 2009-04-04  Richard Guenther  <rguenther@suse.de>
10107
10108         PR tree-optimization/8781
10109         PR tree-optimization/37892
10110         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
10111         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
10112         (valueize_refs): Call it for *& valueizations.
10113         (shared_reference_ops_from_ref): Rename to ...
10114         (valueize_shared_reference_ops_from_ref): ... this and valueize.
10115         (shared_reference_ops_from_call): Rename to ...
10116         (valueize_shared_reference_ops_from_call): ... this and valueize.
10117         (vn_reference_lookup): Update.
10118         (visit_reference_op_call): Likewise.
10119         * tree-ssa-pre.c (phi_translate_1): Fold *&.
10120         (eliminate): Value-replace the call address in call statements.
10121
10122 2009-04-04  Richard Guenther  <rguenther@suse.de>
10123
10124         PR tree-optimization/39636
10125         * tree-ssa-forwprop.c
10126         (forward_propagate_addr_into_variable_array_index): Check for
10127         GIMPLE_ASSIGN before accessing the rhs code.
10128
10129 2009-04-03  Jason Merrill  <jason@redhat.com>
10130
10131         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
10132
10133 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
10134
10135         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
10136         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
10137         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
10138         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
10139         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
10140         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
10141         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
10142         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
10143         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
10144         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
10145         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
10146         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
10147         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
10148         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
10149         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
10150         Use fr_reg_or_fp01_operand instead of fr_register_operand
10151
10152         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
10153         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
10154         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
10155
10156 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
10157
10158         PR rtl-optimization/39607
10159         PR rtl-optimization/39631
10160
10161         Revert:
10162
10163         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
10164         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
10165         instead of DF_LR_OUT.
10166         * ira-lives.c (process_bb_node_lives): Ditto.
10167         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
10168         instead of DF_LR_{OUT,IN}.
10169         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
10170         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
10171
10172 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
10173
10174         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
10175         (execute_lower_omp): Always run but take the short way out if -fopenmp
10176         is not given.
10177         (gate_lower_omp): Remove, forcing the pass manager to always run the
10178         pass and always set PROP_gimple_lomp.
10179         (pass_lower_omp): Remove gate function.
10180         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
10181         PROP_trees.  Instead, require it.
10182         * ipa-cp.c (pass_ipa_cp): Likewise.
10183         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
10184         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
10185         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
10186         and PROP_gimple_leh.
10187
10188 2009-04-03  Richard Guenther  <rguenther@suse.de>
10189
10190         PR middle-end/13146
10191         PR tree-optimization/23940
10192         PR tree-optimization/33237
10193         PR middle-end/33974
10194         PR middle-end/34093
10195         PR tree-optimization/36201
10196         PR tree-optimization/36230
10197         PR tree-optimization/38049
10198         PR tree-optimization/38207
10199         PR tree-optimization/38230
10200         PR tree-optimization/38301
10201         PR tree-optimization/38585
10202         PR middle-end/38895
10203         PR tree-optimization/38985
10204         PR tree-optimization/39299
10205         * tree-ssa-structalias.h: Remove.
10206         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
10207         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
10208         (struct vuse_element_d): Remove.
10209         (struct vuse_vec_d): Likewise.
10210         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
10211         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
10212         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
10213         VUSE_ELEMENT_VAR): Likewise.
10214         (struct voptype_d): Likewise.
10215         (NUM_VOP_FREE_BUCKETS): Likewise.
10216         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
10217         (struct stmt_operands_d): Remove.
10218         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
10219         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
10220         VDEF_NUM, VDEF_VECT): Likewise.
10221         (copy_virtual_operands): Remove.
10222         (operand_build_cmp): Likewise.
10223         (create_ssa_artificial_load_stmt): Likewise.
10224         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
10225         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
10226         vuse_index and mayuse_index members.  Pack and move done and iter_type
10227         members to the front.
10228         (SSA_OP_VMAYUSE): Remove.
10229         (SSA_OP_VIRTUAL_USES): Adjust.
10230         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
10231         (unlink_stmt_vdef): Declare.
10232         (add_to_addressable_set): Remove.
10233         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
10234         (vrp_visit_stmt): Likewise.
10235         * doc/tree-ssa.texi (Alias analysis): Update.
10236         * doc/invoke.texi (max-aliased-vops): Remove docs.
10237         (avg-aliased-vops): Likewise.
10238         * tree-into-ssa.c (syms_to_rename): Remove.
10239         (need_to_update_vops_p): Likewise.
10240         (need_to_initialize_update_ssa_p): Rename to ...
10241         (update_ssa_initialized_fn): ... this.  Track function we are
10242         initialized for.
10243         (symbol_marked_for_renaming): Simplify.
10244         (add_new_name_mapping): Do not set need_to_update_vops_p.
10245         (dump_currdefs): Use SYMS_TO_RENAME.
10246         (rewrite_update_stmt): Always walk all uses/defs.
10247         (dump_update_ssa): Adjust.
10248         (init_update_ssa): Take function argument.  Track what we are
10249         initialized for.
10250         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
10251         (create_new_def_for): Initialize for cfun, assert we are initialized
10252         for cfun.
10253         (mark_sym_for_renaming): Simplify.
10254         (mark_set_for_renaming): Do not initialize update-ssa.
10255         (need_ssa_update_p): Simplify.  Take function argument.
10256         (name_mappings_registered_p): Assert we ask for the correct function.
10257         (name_registered_for_update_p): Likewise.
10258         (ssa_names_to_replace): Likewise.
10259         (release_ssa_name_after_update_ssa): Likewise.
10260         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
10261         (dump_decl_set): Do not print a newline.
10262         (debug_decl_set): Do it here.
10263         (dump_update_ssa): And here.
10264         * tree-ssa-loop-im.c (move_computations): Adjust.
10265         (movement_possibility): Likewise.
10266         (determine_max_movement): Likewise.
10267         (gather_mem_refs_stmt): Likewise.
10268         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
10269         or NAME_MEMORY_TAG.
10270         * tree-complex.c (update_all_vops): Remove.
10271         (expand_complex_move): Adjust.
10272         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
10273         Simplify test for memory referencing statement.  Exclude
10274         non-invariant ADDR_EXPRs.
10275         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
10276         * tree-loop-distribution.c (generate_memset_zero): Adjust.
10277         (rdg_flag_uses): Likewise.
10278         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
10279         related code.
10280         (tree_optimize_tail_calls_1): Also split the
10281         edge from the entry block if we have degenerate PHI nodes in
10282         the first basic block.
10283         * tree.c (init_ttree): Remove memory-tag related code.
10284         (tree_code_size): Likewise.
10285         (tree_node_structure): Likewise.
10286         (build7_stat): Re-write to be build6_stat.
10287         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
10288         (SSA_VAR_P): Adjust.
10289         (struct tree_memory_tag): Remove.
10290         (struct tree_memory_partition_tag): Likewise.
10291         (union tree_node): Adjust.
10292         (build7): Re-write to be build6.
10293         * tree-pass.h (pass_reset_cc_flags): Remove.
10294         (TODO_update_address_taken): New flag.
10295         (pass_simple_dse): Remove.
10296         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
10297         * params.h (MAX_ALIASED_VOPS): Remove.
10298         (AVG_ALIASED_VOPS): Likewise.
10299         * omp-low.c (expand_omp_taskreg): Update SSA form.
10300         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
10301         aliases the lhs in a copy stmt.
10302         * tree-ssa-dse.c (struct address_walk_data): Remove.
10303         (memory_ssa_name_same): Likewise.
10304         (memory_address_same): Likewise.
10305         (get_kill_of_stmt_lhs): Likewise.
10306         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
10307         unused stores.  Look through PHI nodes into post-dominated regions.
10308         (dse_optimize_stmt): Simplify.  Properly remove stores.
10309         (tree_ssa_dse): Compute dominators.
10310         (execute_simple_dse): Remove.
10311         (pass_simple_dse): Likewise.
10312         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
10313         gimple_loaded_syms and gimple_stored_syms computation.
10314         * toplev.c (dump_memory_report): Dump alias and pta stats.
10315         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
10316         (vn_reference_eq): Likewise.
10317         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
10318         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
10319         valueize_vuses): Remove.
10320         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
10321         (get_def_ref_stmt_vuse): ... this.
10322         (vn_reference_lookup_2): New function.
10323         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
10324         walking equivalent vuses.  Simplify.
10325         (vn_reference_lookup): Likewise.
10326         (vn_reference_insert): Likewise.
10327         (vn_reference_insert_pieces): Likewise.
10328         (visit_reference_op_call): Simplify.
10329         (visit_reference_op_load): Likewise.
10330         (visit_reference_op_store): Likewise.
10331         (init_scc_vn): Remove shared_lookup_vuses initialization.
10332         (free_scc_vn): Remove shared_lookup_vuses freeing.
10333         (sort_vuses, sort_vuses_heap): Remove.
10334         (get_ref_from_reference_ops): Export.
10335         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
10336         vector with single vuse pointer.
10337         (vn_reference_lookup_pieces, vn_reference_lookup,
10338         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
10339         (shared_vuses_from_stmt): Remove.
10340         (get_ref_from_reference_ops): Declare.
10341         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
10342         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
10343         memory-tag related code.
10344         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
10345         (likely_value): Add comment, skip static-chain of call statements.
10346         (surely_varying_stmt_p): Adjust.
10347         (gimplify_and_update_call_from_tree): Likewise.
10348         (execute_fold_all_builtins): Do not rebuild alias info.
10349         (gimplify_and_update_call_from_tree): Properly update VOPs.
10350         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
10351         (copy_ref_info): Remove memory-tag related code.
10352         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
10353         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
10354         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
10355         computation.
10356         * tree-ssa-dom.c (gimple_p): Remove typedef.
10357         (eliminate_redundant_computations): Adjust.
10358         (record_equivalences_from_stmt): Likewise.
10359         (avail_expr_hash): Likewise.
10360         (avail_expr_eq): Likewise.
10361         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
10362         (stmt_makes_single_load): Likewise.
10363         (stmt_makes_single_store): Likewise.
10364         * tree-ssa-alias.c: Rewrite completely.
10365         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
10366         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
10367         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
10368         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
10369         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
10370         Remove public functions.
10371         (pass_reset_cc_flags): Remove.
10372         (pass_build_alias): Move ...
10373         * tree-ssa-structalias.c (pass_build_alias): ... here.
10374         * tree-ssa-alias.c (may_be_aliased): Move ...
10375         * tree-flow-inline.h (may_be_aliased): ... here.
10376         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
10377         count_uses_and_derefs): Move ...
10378         * gimple.c: ... here.
10379         * gimple.h (count_uses_and_derefs): Declare.
10380         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
10381         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
10382         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
10383         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
10384         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
10385         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
10386         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
10387         New functions.
10388         * tree-dfa.c (refs_may_alias_p): Move ...
10389         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
10390         * tree-ssa-alias.h: New file.
10391         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
10392         (statement_sink_location): Likewise.
10393         * opts.c (decode_options): Do not adjust max-aliased-vops or
10394         avg-aliased-vops values.
10395         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
10396         (TV_CALL_CLOBBER): Likewise.
10397         (TV_FLOW_SENSITIVE): Likewise.
10398         (TV_FLOW_INSENSITIVE): Likewise.
10399         (TV_MEMORY_PARTITIONING): Likewise.
10400         (TV_ALIAS_STMT_WALK): New timevar.
10401         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
10402         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
10403         (get_address_description): Remove memory-tag related code.
10404         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
10405         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
10406         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
10407         and immediate uses in statements.  Document.
10408         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
10409         (dump_symbols): Remove.
10410         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
10411         * alias.c (get_deref_alias_set): New function split out from ...
10412         (get_alias_set): ... here.
10413         * alias.h (get_deref_alias_set): Declare.
10414         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
10415         type parameter.  Remove restrict pointer handling.  Create a
10416         ref-all pointer in case type-based alias sets do not conflict.
10417         (vect_analyze_data_refs): Remove SMT related code.
10418         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
10419         (vectorizable_load): Likewise.
10420         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
10421         (DR_SYMBOL_TAG, DR_VOPS): Remove.
10422         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
10423         Ignore vops and SMTs.
10424         (dr_analyze_alias): Likewise..
10425         (free_data_ref): Likewise.
10426         (create_data_ref): Likewise.
10427         (analyze_all_data_dependences): Likewise.
10428         (get_references_in_stmt): Adjust.
10429         * tree-flow-inline.h (gimple_aliases_computed_p,
10430         gimple_addressable_vars, gimple_call_clobbered_vars,
10431         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
10432         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
10433         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
10434         gimple_mem_ref_stats): Remove.
10435         (gimple_vop): New function.
10436         (op_iter_next_use): Remove vuses and mayuses cases.
10437         (op_iter_next_def): Remove vdefs case.
10438         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
10439         (clear_and_done_ssa_iter): Do not set removed fields.
10440         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
10441         Assert we are not iterating over vuses or vdefs if not also
10442         iterating over uses or defs.
10443         (op_iter_init_use): Likewise.
10444         (op_iter_init_def): Likewise.
10445         (op_iter_next_vdef): Remove.
10446         (op_iter_next_mustdef): Likewise.
10447         (op_iter_init_vdef): Likewise.
10448         (compare_ssa_operands_equal): Likewise.
10449         (link_use_stmts_after): Handle vuse operand.
10450         (is_call_used): Use is_call_clobbered.
10451         (is_call_clobbered): Global variables are always call clobbered,
10452         query the call-clobbers bitmap.
10453         (mark_call_clobbered): Ignore global variables.
10454         (clear_call_clobbered): Likewise.
10455         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
10456         virtual operands sanity check.
10457         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
10458         Remove.
10459         (TARGET_MEM_REF): Remove TMR_TAG operand.
10460         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
10461         Remove call-clobber related code.
10462         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
10463         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
10464         partitions or escape reason.
10465         (get_single_def_stmt, get_single_def_stmt_from_phi,
10466         get_single_def_stmt_with_phi): Remove.
10467         (dump_referenced_vars): Tidy.
10468         (get_ref_base_and_extent): Allow bare decls.
10469         (collect_dfa_stats): Adjust.
10470         * graphite.c (rename_variables_in_stmt): Adjust.
10471         (graphite_copy_stmts_from_block): Likewise.
10472         (translate_clast): Likewise.
10473         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
10474         (EXPR_DIES): New.
10475         (translate_vuse_through_block): Use the oracle.
10476         (phi_translate_1): Adjust.
10477         (value_dies_in_block_x): Use the oracle.  Cache the outcome
10478         in EXPR_DIES.
10479         (valid_in_sets): Check if the VUSE for
10480         a REFERENCE is available.
10481         (eliminate): Do not remove stmts during elimination,
10482         instead queue and remove them afterwards.
10483         (do_pre): Do not rebuild alias info.
10484         (pass_pre): Run TODO_rebuild_alias before PRE.
10485         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
10486         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
10487         (mark_all_v_defs_stmt): Remove.
10488         (mark_all_v_defs_seq): Adjust.
10489         (sra_replace): Likewise.
10490         (scalarize_use): Likewise.
10491         (scalarize_copy): Likewise.
10492         (scalarize_init): Likewise.
10493         (scalarize_ldst): Likewise.
10494         (todoflags): Remove.
10495         (tree_sra): Do not rebuild alias info.
10496         (tree_sra_early): Adjust.
10497         (pass_sra): Run TODO_update_address_taken before SRA.
10498         * tree-predcom.c (set_alias_info): Remove.
10499         (prepare_initializers_chain): Do not call it.
10500         (mark_virtual_ops_for_renaming): Adjust.
10501         (mark_virtual_ops_for_renaming_list): Remove.
10502         (initialize_root_vars): Adjust.
10503         (initialize_root_vars_lm): Likewise.
10504         (prepare_initializers_chain): Likewise.
10505         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
10506         (may_propagate_copy_into_stmt): Likewise.
10507         (merge_alias_info): Do nothing for now.
10508         (propagate_tree_value_into_stmt): Adjust.
10509         (stmt_may_generate_copy): Likewise.
10510         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
10511         not mark symbols for renaming.
10512         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
10513         with the same statement, make sure to update the new pointed-to one.
10514         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
10515         call statements, do not mark symbols for renaming.
10516         (mark_operand_necessary): Dump something.
10517         (ref_may_be_aliased): New function.
10518         (mark_aliased_reaching_defs_necessary_1): New helper function.
10519         (mark_aliased_reaching_defs_necessary): Likewise.
10520         (mark_all_reaching_defs_necessary_1): Likewise.
10521         (mark_all_reaching_defs_necessary): Likewise.
10522         (propagate_necessity): Do not process virtual PHIs.  For
10523         non-aliased loads mark all reaching definitions as necessary.
10524         For aliased loads and stores mark the immediate dominating
10525         aliased clobbers as necessary.
10526         (visited): New global static.
10527         (perform_tree_ssa_dce): Free visited bitmap after propagating
10528         necessity.
10529         (remove_dead_phis): Perform simple dead virtual PHI removal.
10530         (remove_dead_stmt): Properly unlink virtual operands when
10531         removing stores.
10532         (eliminate_unnecessary_stmts): Schedule PHI removal after
10533         stmt removal.
10534         * tree-ssa-ter.c (is_replaceable_p): Adjust.
10535         (process_replaceable): Likewise.
10536         (find_replaceable_in_bb): Likewise.
10537         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
10538         based on the single gimple vop.
10539         (verify_flow_insensitive_alias_info): Remove.
10540         (verify_flow_sensitive_alias_info): Likewise.
10541         (verify_call_clobbering): Likewise.
10542         (verify_memory_partitions): Likewise.
10543         (verify_alias_info): Likewise.
10544         (verify_ssa): Adjust..
10545         (execute_update_addresses_taken): Export.  Update SSA
10546         manually.  Optimize only when optimizing.  Use a local bitmap.
10547         (pass_update_address_taken): Remove TODO_update_ssa, add
10548         TODO_dump_func.
10549         (pass_update_address_taken): Just use TODO_update_address_taken.
10550         (init_tree_ssa): Do not initialize addressable_vars.
10551         (verify_ssa): Verify new VUSE / VDEF properties.
10552         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
10553         Do not call verify_alias_info.
10554         (delete_tree_ssa): Clear the VUSE, VDEF operands.
10555         Do not free the loaded and stored syms bitmaps.  Reset the escaped
10556         and callused solutions.  Do not free addressable_vars.
10557         Remove memory-tag related code.
10558         (warn_uninitialized_var): Aliases are always available.
10559         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
10560         * lambda-code.c (can_put_in_inner_loop): Adjust.
10561         (can_put_after_inner_loop): Likewise.
10562         (perfect_nestify): Likewise.
10563         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
10564         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
10565         (vectorizable_conversion): Do not mark symbols for renaming.
10566         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
10567         (expand_call_inline): Unlink the calls virtual operands before
10568         replacing it.
10569         (tree_function_versioning): Do not call update_ssa if we are not
10570         updating clones.  Simplify.
10571         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
10572         (propagate_with_phi): Likewise..
10573         * tree-outof-ssa.c (create_temp): Remove memory tag and call
10574         clobber code.  Assert we are not aliased or global.
10575         * tree-flow.h: Include tree-ssa-alias.h
10576         (enum escape_type): Remove.
10577         (struct mem_sym_stats_d): Likewise.
10578         (struct mem_ref_stats_d): Likewise.
10579         (struct gimple_df): Add vop member.  Remove global_var,
10580         call_clobbered_vars, call_used_vars, addressable_vars,
10581         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
10582         escaped and callused members.
10583         (struct ptr_info_def): Remove all members, add points-to solution
10584         member pt.
10585         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
10586         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
10587         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
10588         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
10589         (tree-ssa-alias.o): Likewise.
10590         (toplev.o): Add tree-ssa-alias.h
10591         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
10592         * gimple.c (gimple_set_bb): Fix off-by-one error.
10593         (is_gimple_reg): Do not handle memory tags.
10594         (gimple_copy): Also copy virtual operands.
10595         Delay updating the statement.  Do not reset loaded and stored syms.
10596         (gimple_set_stored_syms): Remove.
10597         (gimple_set_loaded_syms): Likewise.
10598         (gimple_call_copy_skip_args): Copy the virtual operands
10599         and mark the new statement modified.
10600         * tree-ssa-structalias.c (may_alias_p): Remove.
10601         (set_uids_in_ptset): Take the alias set to prune with as
10602         parameter.  Fold in the alias test of may_alias_p.
10603         (compute_points_to_sets): Compute whether a ptr is dereferenced
10604         in a local sbitmap.
10605         (process_constraint): Deal with &ANYTHING on the lhs, reject all
10606         other ADDRESSOF constraints on the lhs.
10607         (get_constraint_for_component_ref): Assert that we don't get
10608         ADDRESSOF constraints from the base of the reference.
10609         Properly generate UNKNOWN_OFFSET for DEREF if needed.
10610         (struct variable_info): Remove collapsed_to member.
10611         (get_varinfo_fc): Remove.
10612         (new_var_info): Do not set collapsed_to.
10613         (dump_constraint): Do not follow cycles.
10614         (dump_constraint_graph): Likewise.
10615         (build_pred_graph): Likewise.
10616         (build_succ_graph): Likewise.
10617         (rewrite_constraints): Likewise.
10618         (do_simple_structure_copy): Remove.
10619         (do_rhs_deref_structure_copy): Remove.
10620         (do_lhs_deref_structure_copy): Remove.
10621         (collapse_rest_of_var): Remove.
10622         (do_structure_copy): Re-implement.
10623         (pta_stats): New global variable.
10624         (dump_pta_stats): New function.
10625         (struct constraint_expr): Make offset signed.
10626         (UNKNOWN_OFFSET): Define special value.
10627         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
10628         (solution_set_expand): New helper function split out from ...
10629         (do_sd_constraint): ... here.
10630         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
10631         (do_ds_constraint): Likewise.
10632         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
10633         and CALLUSED = *CALLUSED.
10634         (set_union_with_increment): Make inc argument signed.
10635         (type_safe): Remove.
10636         (get_constraint_for_ptr_offset): Handle unknown and negative
10637         constant offsets.
10638         (first_vi_for_offset): Handle offsets before start.  Bail
10639         out early for offsets beyond the variable extent.
10640         (first_or_preceding_vi_for_offset): New function.
10641         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
10642         Together with ESCAPED = *ESCAPED this properly computes reachability.
10643         (find_what_var_points_to): New function.
10644         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
10645         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
10646         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
10647         pt_solutions_intersect): New functions.
10648         (compute_call_used_vars): Remove.
10649         (compute_may_aliases): New main entry into PTA computation.
10650         * gimple.h (gimple_p): New typedef.
10651         (struct gimple_statement_base): Remove references_memory_p.
10652         (struct gimple_statement_with_memory_ops_base): Remove
10653         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
10654         members.
10655         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
10656         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
10657         gimple_set_references_memory): Remove.
10658         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
10659         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
10660         New functions.
10661         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
10662         (verify_expr): Allow RESULT_DECL.
10663         (gimple_duplicate_bb): Do not copy virtual operands.
10664         (gimple_duplicate_sese_region): Adjust.
10665         (gimple_duplicate_sese_tail): Likewise.
10666         (mark_virtual_ops_in_region): Remove.
10667         (move_sese_region_to_fn): Do not call it.
10668         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
10669         and pass_simple_dse.
10670         (execute_function_todo): Handle TODO_update_address_taken,
10671         call execute_update_addresses_taken for TODO_rebuild_alias.
10672         (execute_todo): Adjust.
10673         (execute_one_pass): Init dump files early.
10674         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
10675         call-clobbered.
10676         (create_general_new_stmt): Clear vops.
10677         * tree-ssa-reassoc.c (get_rank): Adjust.
10678         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
10679         symbols for renaming.
10680         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
10681         (PARAM_AVG_ALIASED_VOPS): Likewise.
10682         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
10683         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
10684         * tree-ssa-operands.c: Simplify for new virtual operand representation.
10685         (operand_build_cmp, copy_virtual_operands,
10686         create_ssa_artificial_load_stmt, add_to_addressable_set,
10687         gimple_add_to_addresses_taken): Remove public functions.
10688         (unlink_stmt_vdef): New function.
10689
10690 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
10691
10692         * config.gcc (powerpc-*-linux*): Merge variants.
10693
10694 2009-04-02  Chao-ying Fu  <fu@mips.com>
10695             James Grosbach  <james.grosbach@microchip.com>
10696
10697         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
10698         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
10699         cop0_sp_offset.
10700         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
10701         keep_interrupts_masked_p, use_debug_exception_return_p.
10702         (mips_attribute_table): Add interrupt, use_shadow_register_set,
10703         keep_interrupts_masked, use_debug_exception_return.
10704         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
10705         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
10706         New functions.
10707         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
10708         (mips_print_operand): Process COP0 registers to print $0 .. $31
10709         correctly for GAS to process.
10710         (mips_interrupt_extra_call_saved_reg_p): New function.
10711         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
10712         extra registers.
10713         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
10714         (mips_compute_frame_info): Add supports for interrupt context that
10715         includes doubleword accumulators and COP0 registers.
10716         (mips_for_each_saved_acc): New function.
10717         (mips_for_each_saved_gpr_and_fpr): Change the function name from
10718         mips_for_each_saved_reg.
10719         (mips_save_reg): Save accumulators.
10720         (mips_kernel_reg_p): A new for_each_rtx callback.
10721         (mips_expand_prologue): Support interrupt handlers.
10722         (mips_restore_reg): Restore accumulators.
10723         (mips_expand_epilogue): Support interrupt handlers.
10724         (mips_can_use_return_insn): Return false for interrupt handlers.
10725         (mips_epilogue_uses): New function.
10726         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
10727         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
10728         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
10729         cop0_move): New instructions.
10730         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
10731         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
10732         defines.
10733         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
10734         New defines.
10735         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
10736         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
10737         interrupt handlers, we use K0 as the temporary register.
10738         (EPILOGUE_USES): Change to a function call.
10739         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
10740         handlers, we use K0 as the temporary register.
10741
10742         * doc/extend.texi (Function Attributes): Document interrupt,
10743         use_shadow_register_set, keep_interrupts_masked,
10744         use_debug_exception_return for MIPS attributes.
10745
10746 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
10747
10748         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
10749         Remove a number of t-files from tmake_file.
10750         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
10751         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
10752         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
10753         target_prototype, not TARGET_PROTOTYPE.
10754         (LINK_OS_GNU_SPEC): Define.
10755         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
10756         and darwin-ldoubdle.c.
10757
10758 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
10759
10760         PR driver/39293
10761         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
10762         (cpp_options): Ditto.
10763         (default_compilers): Ditto.
10764         (display_help): Ditto.
10765         (process_command): Ditto.
10766         (do_spec_1): Ditto.
10767         (set_input): Use lbasename instead of duplicate code.
10768         (save_temps_prefix): New static for -save-temps=obj.
10769         (save_temps_length): Ditto.
10770
10771         * doc/invoke.texi (-save-temps=obj): Document new variant to
10772         -save-temps switch.
10773
10774 2009-04-02  Jeff Law  <law@redhat.com>
10775
10776         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
10777         variable.
10778
10779 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10780
10781         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
10782         * configure: Regenerated.
10783
10784 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
10785
10786         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
10787         share the argument list.
10788
10789 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
10790
10791         Merge
10792
10793         2009-02-12  Diego Novillo  <dnovillo@google.com>
10794
10795         * varpool.c (debug_varpool): New.
10796         * cgraph.h (debug_varpool): Declare.
10797
10798 2009-04-02  Jan Hubicka  <jh@suse.cz>
10799
10800         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
10801         pass.
10802
10803 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
10804
10805         * config/i386/i386.c (ix86_abi): Move initialization to ...
10806         (override_options): Here.
10807
10808 2009-04-02  Christian Bruel  <christian.bruel@st.com>
10809
10810         * config/sh/sh.c (sh_dwarf_register_span): New function.
10811         (TARGET_DWARF_REGISTER_SPAN): Define.
10812         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
10813
10814 2009-04-02  Ira Rosen  <irar@il.ibm.com>
10815
10816         PR tree-optimization/39595
10817         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
10818         interleaved loads group is not  greater than the SLP group size.
10819
10820 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
10821
10822         * builtins.c (is_builtin_name): New.
10823         (called_as_built_in): Use is_builtin_name.
10824         * tree.h (is_builtin_name): New.
10825         * varasm.c (incorporeal_function_p): Use is_builtin_name
10826
10827 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
10828
10829         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
10830
10831 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
10832
10833         PR c++/26693
10834         * c-decl.c (clone_underlying_type): Move this ...
10835         * c-common.c (set_underlying_type): ... here.
10836         Also, make sure the function properly sets TYPE_STUB_DECL() on
10837         the newly created typedef variant type.
10838         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
10839         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
10840         points.
10841
10842 2009-04-02  Richard Guenther  <rguenther@suse.de>
10843
10844         PR tree-optimization/37221
10845         * tree-flow.h (degenerate_phi_result): Declare.
10846         * tree-ssa-dom.c (degenerate_phi_result): Export.
10847         * tree-scalar-evolution.c (analyze_initial_condition): If
10848         the initial condition is defined by a degenerate PHI node
10849         use the degenerate value.
10850
10851 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
10852
10853         PR rtl-optimization/39588
10854         * combine.c (merge_outer_ops): Do not set the constant when this
10855         is not necessary.
10856         (simplify_shift_const_1): Do not modify it either in this case.
10857
10858 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
10859
10860         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
10861         tuning is deprecated if -mtune value is set to an Itanium1 variant.
10862
10863 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
10864
10865         PR c/29027
10866         * c-lex.c (interpret_float): Default (no suffix) is double.
10867
10868 2009-04-1  Xinliang David Li  <davidxl@google.com>
10869
10870         * config/i386/i386.c (legitimate_constant_p): Recognize
10871         all one vector constant.
10872
10873 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10874
10875         * config/vax/vax.c: Add #includes to silence warnings.
10876         Change #include order to silence two warnings.
10877
10878 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10879
10880         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
10881         (ASM_SPEC): Pass -k to the assembler for PIC code.
10882
10883 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10884
10885         * config.gcc: Add vax-*-linux* to the switch.
10886         * config/vax/linux.h: New file. (TARGET_VERSION,
10887         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
10888
10889 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10890
10891         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
10892         Use predicate macros instead of GET_CODE() == foo.
10893         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
10894         ashlsi3, rotrsi3, <unnamed>): Likewise.
10895
10896 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10897
10898         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
10899         jbbccihi, jbbccisi): Remova trailing whitespace.
10900         * config/vax/constraints.md: Likewise.
10901         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
10902         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
10903         * config/vax/predicates.md: Likewise.
10904         * config/vax/vax.c (print_operand_address, vax_output_int_move,
10905         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
10906         * config/vax/vax.h: Likewise.
10907         * config/vax/vax.md (nonlocal_goto): Likewise.
10908
10909 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10910
10911         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
10912         (indirectable_address_p, adjacent_operands_p): Add spaces around
10913         braces.
10914         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
10915
10916 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10917
10918         * config/vax/vax.c (legitimate_constant_address_p,
10919         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
10920         index_term_p, reg_plus_index_p, legitimate_address_p,
10921         vax_mode_dependent_address_p): Update comments to match functions
10922         modified by the recent int->bool conversion.
10923
10924 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10925
10926         * config/vax/builtins.md: Update copyright message.
10927         * config/vax/constraints.md: Likewise.
10928         * config/vax/netbsd-elf.h: Likewise.
10929         * config/vax/predicates.md: Likewise.
10930         * config/vax/vax-protos.h: Likewise.
10931         * config/vax/vax.c: Likewise.
10932         * config/vax/vax.h: Likewise.
10933         * config/vax/vax.md: Likewise.
10934         * config/vax/vax.opt: Likewise.
10935
10936 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
10937
10938         * config/vax/builtins.md (ffssi2, ffssi2_internal,
10939         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
10940         * config/vax/constraints.md (B, R): Likewise.
10941         * config/vax/predicates.md (external_memory_operand,
10942         nonimmediate_addsub_di_operand): Likewise.
10943         * config/vax/vax.c (vax_output_int_add): Likewise.
10944         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
10945         untyped_call): Likewise.
10946
10947 2009-04-01  Matt Thomas  <matt@3am-software.com>
10948
10949         * config/vax/predicates.md: New file.
10950         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
10951         external_const_operand, nonsymbolic_operand, external_memory_operand,
10952         indirect_memory_operand, indexed_memory_operand,
10953         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
10954         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
10955         predicate.
10956         * config/vax/constraints.md: New file.
10957         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
10958         New constraint.
10959         * config/vax/builtins.md: New file.
10960         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
10961         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
10962         jbbccisi): Define.
10963         * config/vax/vax.opt (mqmath): Add option.
10964         * config/vax/vax.md (isfx): Extend with DI.
10965         (VAXintQH, VAXintQHSD): Define.
10966         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
10967         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
10968         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
10969         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
10970         (movdi): Update constraints and use vax_output_int_move().
10971         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
10972         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
10973         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
10974         nonlocal_goto): New.
10975         (mov<mode>): Extend accepted operand types.
10976         (subdi3_old): Rename from subdi3, change update constraints and use
10977         a new implementation.
10978         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
10979         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
10980         MOVE_RATIO, CLEAR_RATIO): Define.
10981         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
10982         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
10983         (PRINT_OPERAND): Redefine using a function instead of inlined code.
10984         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
10985         (split_quadword_operands): Make static and really allow variable
10986         splitting.
10987         (print_operand_address): Update for PIC generation.
10988         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
10989         indexable_address_p, fixup_mathdi_operand,
10990         vax_expand_addsub_di_operands, adjacent_operands_p): New.
10991         (vax_float_literal, legitimate_constant_p,
10992         indirectable_constant_address_p, index_term_p,
10993         reg_plus_index_p): Return bool instead of int.
10994         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
10995         where needed.
10996         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
10997         generation.
10998         (vax_output_conditional_branch): Indent.
10999         (legitimate_constant_address_p, indirectable_constant_address_p,
11000         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
11001         vax_mode_dependent_address_p): Return bool instead of int, update for
11002         PIC generation.
11003         * config/vax/vax-protos.h (legitimate_constant_address_p,
11004         legitimate_constant_p, legitimate_address_p,
11005         vax_mode_dependent_address_p): Change declaration to bool.
11006         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
11007         vax_expand_addsub_di_operands, vax_output_int_subtract,
11008         vax_output_movmemsi): Declare.
11009         (split_quadword_operands, vax_float_literal): Delete declaration.
11010         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
11011         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
11012         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
11013         ASM_OUTPUT_DWARF_PCREL): Define.
11014         (ASM_SPEC): Change definition to allow PIC generation.
11015
11016 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
11017
11018         * doc/sourcebuild.texi: Update front-end requirements.
11019
11020 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
11021
11022         PR target/39226
11023         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
11024         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
11025         (booldi3_internal3): Use boolean_or_operator instead of
11026         boolean_operator.
11027
11028 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
11029
11030         PR c/39605
11031         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
11032         declarator whose size is not an integer constant expression but
11033         folds to an integer constant, then treat it as a constant
11034         subsequently.
11035
11036 2009-04-01  Richard Guenther  <rguenther@suse.de>
11037
11038         * fold-const.c (fold_plusminus_mult_expr): Do not fold
11039         i * 4 + 2 to (i * 2 + 1) * 2.
11040
11041 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
11042
11043         PR c/37772
11044         * c-parser.c (c_parser_asm_statement): Skip until close paren and
11045         return if c_parser_asm_string_literal returned NULL.
11046
11047 2009-04-01  Nick Clifton  <nickc@redhat.com>
11048
11049         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
11050         already defined.
11051         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
11052         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
11053         other typedefs to avoid conflicts with libgcc2.c.  Define labels
11054         to gain 16-bit bit-manipulation functions from libgcc2.c and then
11055         include it.
11056         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
11057         to gain 16-bit trapping arithmetic functions from libgcc2.c and
11058         then include it.
11059
11060 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
11061
11062         * varasm.c (default_function_rodata_section): Declare DOT as
11063         const char*.
11064
11065 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
11066             Andrey Galkin  <agalkin@hypercom.com>
11067
11068         PR/39492
11069         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
11070         Make object_name unique for each process.
11071
11072 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
11073
11074         PR other/39591
11075         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
11076         addressable variables in the parallel that could go out of scope while
11077         running queued tasks.
11078
11079 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
11080
11081         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
11082         (CASE_VALUES_THRESHOLD): Redefine.
11083         * config/avr/avr.c (avr_override_options): Remove initialization of
11084         avr_case_values_threshold variable.
11085         (avr_case_values_threshold): Remove variable. Add new function.
11086         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
11087         * config/avr/avr.opt (mno-tablejump): Remove option.
11088         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
11089
11090 2009-04-01  DJ Delorie  <dj@redhat.com>
11091
11092         * varasm.c (default_function_rodata_section): Don't assume
11093         anything about where the first '.' in the section name is.
11094
11095 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
11096
11097         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
11098         rs6000_emit_stack_tie.
11099
11100 2009-03-31  Ian Lance Taylor  <iant@google.com>
11101
11102         * tree-eh.c (tree_remove_unreachable_handlers): Compare
11103         gimple_code with GIMPLE_RESX, not RESX.
11104
11105 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11106
11107         * c-common.c (c_get_ident): New.
11108         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
11109
11110 2009-04-01  Ben Elliston  <bje@au.ibm.com>
11111
11112         * config/rs6000/sysv4.opt (msdata): Improve option description.
11113
11114 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
11115
11116         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
11117         (divdf3_internal_lat): Remove.
11118         (divxf3_internal_lat): Remove.
11119         (divxf3_internal_thr): Remove.
11120         (divxf): Use divxf3_internal.
11121         * config/ia64/div.md (divsf3_internal_lat): New.
11122         (divdf3_internal_lat): New.
11123         (divxf3_internal): New.
11124
11125 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11126
11127         PR c/448
11128         * Makefile.in (USE_GCC_STDINT): Define.
11129         (stmp-int-hdrs): Install stdint.h if applicable.
11130         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
11131         if known.
11132         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
11133         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
11134         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11135         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11136         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11137         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11138         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11139         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11140         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11141         (c_common_nodes_and_builtins): Initialize
11142         underlying_wchar_type_node.  Do not initialize
11143         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
11144         nodes for new types.
11145         (c_stddef_cpp_builtins): Define macros for new types.
11146         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
11147         Remove.
11148         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
11149         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
11150         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
11151         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
11152         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
11153         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
11154         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
11155         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
11156         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
11157         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
11158         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
11159         int16_type_node, int32_type_node, int64_type_node,
11160         uint8_type_node, uint16_type_node, c_uint32_type_node,
11161         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
11162         int_least32_type_node, int_least64_type_node,
11163         uint_least8_type_node, uint_least16_type_node,
11164         uint_least32_type_node, uint_least64_type_node,
11165         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
11166         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
11167         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
11168         uintptr_type_node): Define.
11169         * c-cppbuiltin.c (builtin_define_constants,
11170         builtin_define_type_minmax): New.
11171         (builtin_define_stdint_macros): Define more macros.
11172         (c_cpp_builtins): Define more limit macros.
11173         (type_suffix): New.
11174         (builtin_define_type_max): Define in terms of
11175         builtin_define_type_minmax.  Remove is_long parameter.  All
11176         callers changed.
11177         * config.gcc (use_gcc_stdint): Define.
11178         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
11179         Add newlib-stdint.h for generic targets.
11180         * config/glibc-stdint.h, config/newlib-stdint.h,
11181         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
11182         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
11183         * config/score/score.h (UINTPTR_TYPE): Define.
11184         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
11185         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
11186         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11187         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11188         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11189         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11190         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11191         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
11192         * config/spu/spu.h (STDINT_LONG32): Define.
11193         * configure.ac (use_gcc_stdint): Substitute.
11194         * configure: Regenerate.
11195         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
11196         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
11197         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
11198         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
11199         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
11200         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
11201         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
11202         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
11203         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
11204         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
11205         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
11206         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
11207         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
11208         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
11209         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
11210         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
11211         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
11212         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
11213         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
11214         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
11215         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
11216         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
11217         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
11218         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
11219         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
11220         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
11221         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
11222         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
11223         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
11224
11225 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
11226
11227         * loop-iv.c (suitable_set_for_replacement): Renamed from
11228         simplify_using_assignment; changed to return bool and to accept new
11229         args DEST and SRC.  Return true iff we find a source/destination pair
11230         that can be used to make a replacement, and fill SRC and DEST if so.
11231         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
11232         changed.
11233         (simplify_using_initial_values): Deal with altered regs here and track
11234         more precisely the effect they have on the validity of our expression.
11235
11236         * loop-iv.c (simplify_using_condition): A condition of the form
11237         (EQ REG CONST) can be used to simply make a substitution.
11238         (simplify_using_initial_values): Keep track of conditions we have seen
11239         and keep using them to simplify new expressions, while applying the
11240         same substitutions to them as to the expression.
11241
11242         * simplify-rtx.c (simplify_relational_operation_1): Simplify
11243         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
11244         GEU/LTU reversed.
11245
11246         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
11247         changed.  Use this when trying to improve the upper bound.
11248         Generate the comparison by using simplify_gen_relational.
11249
11250         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
11251
11252         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
11253         functions.
11254         (simplify_using_assignment, simplify_using_initial_values): Call
11255         replace_in_expr to make replacements.  Call replace_single_def_regs
11256         once on the initial version of the expression.
11257
11258 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11259
11260         PR target/27237
11261         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
11262
11263 2009-03-31  Richard Guenther  <rguenther@suse.de>
11264
11265         PR middle-end/31029
11266         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
11267         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
11268
11269 2009-03-31  Richard Guenther  <rguenther@suse.de>
11270
11271         * tree.h (div_if_zero_remainder): Declare.
11272         * fold-const.c (div_if_zero_remainder): Export.
11273         * tree-ssa-forwprop.c
11274         (forward_propagate_addr_into_variable_array_index): Handle
11275         constant array index addition outside of the variable index.
11276
11277 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11278
11279         PR target/39592
11280         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
11281         define_splits, floatunssi<mode>2): Require x87 conversions from
11282         DImode to be permitted.
11283
11284 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
11285
11286         PR preprocessor/15638
11287         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
11288
11289 2009-03-31  Richard Guenther  <rguenther@suse.de>
11290
11291         PR middle-end/23401
11292         PR middle-end/27810
11293         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
11294         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
11295         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
11296         a separate statement.
11297         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
11298         (lookup_tmp_var): Likewise.
11299         (is_gimple_formal_tmp_or_call_rhs): Remove.
11300         (is_gimple_reg_or_call_rhs): Rename to ...
11301         (is_gimple_reg_rhs_or_call): ... this.
11302         (is_gimple_mem_or_call_rhs): Rename to ...
11303         (is_gimple_mem_rhs_or_call): ... this.
11304         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
11305         DECL_GIMPLE_REG_P only if is_formal is true.
11306         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
11307         for non-proper post-modify expression gimplification.
11308         (gimplify_self_mod_expr): For post-modify expressions gimplify
11309         the lvalue to a minimal lvalue.
11310         (rhs_predicate_for): Remove formal temp case.
11311         (gimplify_modify_expr_rhs): Likewise.
11312         (gimplify_addr_expr): Use is_gimple_reg.
11313         (gimplify_expr): Remove formal temp cases.
11314         (gimple_regimplify_operands): Likewise.
11315         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
11316         and FILTER_EXPR like constants.
11317         * gimple.c (walk_gimple_op): Fix val_only initialization, use
11318         is_gimple_reg.
11319         (is_gimple_formal_tmp_rhs): Remove.
11320         (is_gimple_reg_rhs): Remove special casing.
11321         (is_gimple_mem_rhs): Fix.
11322         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
11323         (is_gimple_formal_tmp_var): Remove.
11324         (is_gimple_formal_tmp_reg): Likewise.
11325         (is_gimple_min_lval): Allow invariant component ref parts.
11326         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
11327         is_gimple_formal_tmp_reg): Remove declarations.
11328         * tree-cfg.c (verify_expr): Verify that variables with address
11329         taken do not have DECL_GIMPLE_REG_P set.
11330         * tree-mudflap.c (mf_build_check_statement_for): Use
11331         force_gimple_operand instead of gimplify_expr.
11332
11333 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
11334
11335         * modulo-sched.c (sms_schedule_by_order): Pass the actual
11336         schedulable rows to compute_split_row.
11337
11338 2009-03-31  Ben Elliston  <bje@au.ibm.com>
11339
11340         PR target/31635
11341         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
11342         OPT_mvrsave.
11343
11344 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
11345
11346         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
11347         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
11348         * configure: Regenerate.
11349         * config.in: Regenerate.
11350         * config/rs6000/rs6000.opt (mtls-markers): Add.
11351         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
11352         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
11353         (tls_ld_aix, tls_ld_sysv): Likewise.
11354         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
11355         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
11356
11357 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
11358
11359         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
11360
11361 2009-03-30  Jan Hubicka  <jh@suse.cz>
11362
11363         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
11364         out of RESX.
11365         (tree_remove_unreachable_handlers): Cleanup EH predecestor
11366         detection and label handling.
11367
11368 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11369
11370         * ira-int.h (ira_allocno): Rename left_conflicts_num to
11371         left_conflicts_size.
11372         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
11373         ALLOCNO_LEFT_CONFLICTS_SIZE.
11374
11375         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
11376         remove_allocno_from_bucket_and_push,
11377         allocno_spill_priority_compare, push_allocnos_to_stack,
11378         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11379         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
11380         (setup_allocno_left_conflicts_num): Ditto.  Rename to
11381         setup_allocno_left_conflicts_size.
11382         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
11383         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
11384         setup_allocno_left_conflicts_size instead of
11385         setup_allocno_left_conflicts_num.
11386
11387         * ira-build.c (ira_create_allocno): Use
11388         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
11389         ALLOCNO_LEFT_CONFLICTS_NUM.
11390
11391 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11392
11393         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11394         instead of DF_LR_OUT.
11395
11396         * ira-lives.c (process_bb_node_lives): Ditto.
11397
11398         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11399         instead of DF_LR_{OUT,IN}.
11400
11401         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11402
11403         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11404
11405 2009-03-30  Jan Hubicka  <jh@suse.cz>
11406
11407         * except.c (label_to_region_map): Fix thinko.
11408
11409 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
11410
11411         PR middle-end/38237
11412         * tree.h (tree_find_value): New declaration.
11413         * tree.c (tree_find_value): New function.
11414         * varasm.c (assemble_external): Avoid duplicate entries on lists.
11415
11416 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
11417
11418         PR debug/39563
11419         * c-decl.c (struct c_binding): Add locus field.
11420         (bind): Add locus argument, set locus field from it.
11421         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
11422         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
11423         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
11424         implicitly_declare, undeclared_variable, lookup_label,
11425         declare_label, c_make_fname_decl, c_builtin_function,
11426         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
11427         bind callers.
11428
11429 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
11430
11431         PR target/38781
11432         * config/i386/i386.c (classify_argument): Check total size of
11433         structure.
11434
11435 2009-03-30  Martin Jambor  <mjambor@suse.cz>
11436
11437         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
11438         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
11439         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
11440         respectively.
11441
11442         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
11443         seen_variable_array_ref while also traversing a union.
11444
11445         * tree-inline.c (optimize_inline_calls): Do not call
11446         cgraph_node_remove_callees.
11447         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
11448         (pass_remove_cgraph_callee_edges): New variable.
11449         * passes.c (init_optimization_passes): Add
11450         pass_remove_cgraph_callee_edges after early inlining and before all
11451         late intraprocedural passes.
11452
11453         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
11454
11455 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11456
11457         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
11458         Fix typos in names.
11459
11460 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11461
11462         * combine.c (simplify_comparison): Use have_insn_for.
11463         * dojump.c (do_jump): Likewise.
11464
11465 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11466
11467         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
11468         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
11469         sparc_compare_op0 like sparc_compare_emitted used to be handled.
11470         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
11471         instead of sparc_compare_emitted.
11472         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
11473         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
11474         instead of sparc_compare_emitted.
11475
11476 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11477
11478         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
11479         enter/exit cfglayout mode.
11480         (pass_partition_block): Require it.
11481         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
11482         (combine_instructions): Track basic blocks instead of labels.
11483         (update_cfg_for_uncondjump): New.
11484         (try_combine): Use it.  Update jumps after rescanning.
11485         (pass_combine): Require PROP_cfglayout.
11486         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
11487
11488 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11489
11490         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
11491         Provide/destroy PROP_cfglayout respectively.
11492         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
11493         * tree-pass.h (PROP_cfglayout): New.
11494
11495 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
11496
11497         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
11498         fold_convert_const_fixed_from_fixed,
11499         fold_convert_const_fixed_from_int,
11500         fold_convert_const_fixed_from_real, fold_negate_const): Do not
11501         set TREE_CONSTANT_OVERFLOW.
11502         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
11503         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
11504
11505 2009-03-30  Ira Rosen  <irar@il.ibm.com>
11506
11507         * tree-vect-loop-manip.c: New file.
11508         * tree-vectorizer.c: Update documentation and included files.
11509         (vect_loop_location): Make extern.
11510         (rename_use_op): Move to tree-vect-loop-manip.c
11511         (rename_variables_in_bb, rename_variables_in_loop,
11512         slpeel_update_phis_for_duplicate_loop,
11513         slpeel_update_phi_nodes_for_guard1,
11514         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
11515         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
11516         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
11517         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
11518         find_loop_location): Likewise.
11519         (new_stmt_vec_info): Move to tree-vect-stmts.c.
11520         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
11521         get_vectype_for_scalar_type, vect_is_simple_use,
11522         supportable_widening_operation, supportable_narrowing_operation):
11523         Likewise.
11524         (bb_in_loop_p): Move to tree-vect-loop.c.
11525         (new_loop_vec_info, destroy_loop_vec_info,
11526         reduction_code_for_scalar_code, report_vect_op,
11527         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
11528         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
11529         (vect_supportable_dr_alignment): Likewise.
11530         * tree-vectorizer.h (tree-data-ref.h): Include.
11531         (vect_loop_location): Declare.
11532         Reorganize function declarations according to the new file structure.
11533         * tree-vect-loop.c: New file.
11534         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
11535         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
11536         * tree-vect-data-refs.c: New file.
11537         * tree-vect-patterns.c (timevar.h): Don't include.
11538         * tree-vect-stmts.c: New file.
11539         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
11540         tree-vect-slp.c, tree-vect-loop.c.
11541         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
11542         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
11543         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
11544         (tree-vect-analyze.o): Remove.
11545         (tree-vect-transform.o): Likewise.
11546         (tree-vect-data-refs.o): Add rule.
11547         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
11548         tree-vect-slp.o): Likewise.
11549         (tree-vect-patterns.o): Remove redundant dependencies.
11550         (tree-vectorizer.o): Likewise.
11551         * tree-vect-slp.c: New file.
11552
11553 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11554
11555         * optc-gen.awk: Warn if an option flag has multiple different
11556         help strings.
11557
11558 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
11559
11560         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
11561         -floop-block): Document dependences on PPL, CLooG and Graphite.
11562
11563 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
11564
11565         PR rtl-optimization/323
11566         * c-common.c (c_fully_fold, convert_and_check,
11567         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
11568         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
11569         * c-common.def (EXCESS_PRECISION_EXPR): New.
11570         * c-cppbuiltin.c (builtin_define_float_constants): Define
11571         constants with enough digits for long double.
11572         * c-lex.c (interpret_float): Interpret constant with excess
11573         precision where appropriate.
11574         * c-opts.c (c_common_post_options): Set
11575         flag_excess_precision_cmdline.  Give an error for
11576         -fexcess-precision=standard for C++ for processors where the
11577         option is significant.
11578         * c-parser.c (c_parser_conditional_expression): Handle excess
11579         precision in condition.
11580         * c-typeck.c (convert_arguments): Handle arguments with excess
11581         precision.
11582         (build_unary_op): Move excess precision outside operation.
11583         (build_conditional_expr): Likewise.
11584         (build_compound_expr): Likewise.
11585         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
11586         (build_modify_expr): Handle excess precision in RHS.
11587         (convert_for_assignment): Handle excess precision in converted
11588         value.
11589         (digest_init, output_init_element, process_init_element): Handle
11590         excess precision in initializer.
11591         (c_finish_return): Handle excess precision in return value.
11592         (build_binary_op): Handle excess precision in operands and add
11593         excess precision as needed for operation.
11594         * common.opt (-fexcess-precision=): New option.
11595         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
11596         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
11597         For standard excess precision, output explicit conversion to and
11598         truncation from XFmode.
11599         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
11600         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
11601         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
11602         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
11603         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
11604         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
11605         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
11606         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
11607         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
11608         define_splits, sqrt<mode>2): Disable where appropriate for
11609         standard excess precision.
11610         * convert.c (convert_to_real): Do not shorten arithmetic to type
11611         for which excess precision would be used.
11612         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
11613         * doc/invoke.texi (-fexcess-precision=): Document option.
11614         (-mfpmath=): Correct index entry.
11615         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
11616         flag_excess_precision): New.
11617         * langhooks.c (lhd_post_options): Set
11618         flag_excess_precision_cmdline.
11619         * opts.c (common_handle_option): Handle -fexcess-precision=.
11620         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
11621         init_excess_precision): New.
11622         (lang_dependent_init_target): Call init_excess_precision.
11623         * tree.c (excess_precision_type): New.
11624         * tree.h (excess_precision_type): Declare.
11625
11626 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
11627
11628         PR c/35235
11629         * c-typeck.c (build_component_ref): Do not copy qualifiers from
11630         non-lvalue to component.
11631
11632 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
11633
11634         PR preprocessor/34695
11635         * Makefile.in (c-opts.o): Depend on c-tree.h.
11636         * c-common.c: Move down include of diagnostic.h.
11637         (done_lexing, c_cpp_error): New.
11638         * c-common.h (done_lexing): Declare.
11639         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
11640         (parse_in).
11641         * c-opts.c: Include c-tree.h.
11642         (c_common_init_options): Set preprocessor error callback.
11643         (c_common_handle_option): Do not set preprocessor
11644         inhibit_warnings, warnings_are_errors, warn_system_headers,
11645         pedantic_errors or inhibit_warnings flags.
11646         (c_common_post_options): Do not check cpp_errors (parse_in).
11647         (c_common_finish): Do not output dependencies if there were
11648         errors.  Do not check return value of cpp_finish.
11649         * c-ppoutput.c (pp_file_change): Set input_location.
11650         * c-tree.h (c_cpp_error): Declare.
11651         * diagnostic.c (diagnostic_set_info_translated): Also initialize
11652         override_column.
11653         (diagnostic_build_prefix): Check override_column.
11654         * diagnostic.h (diagnostic_info): Add override_column field.
11655         (diagnostic_override_column): Define.
11656
11657 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
11658
11659         * c-common.c (c_expand_expr, c_staticp): Remove.
11660         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
11661         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
11662         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
11663         * c-gimplify.c (gimplify_compound_literal_expr,
11664         optimize_compound_literals_in_ctor): Remove.
11665         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
11666         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
11667         * c-semantics.c (emit_local_var): Remove.
11668
11669         * langhooks-def.h (lhd_expand_expr): Remove.
11670         * langhooks.c (lhd_expand_expr): Remove.
11671         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
11672
11673         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
11674         handling from c-semantics.c; don't call into langhook.
11675         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
11676         * gimplify.c (gimplify_compound_literal_expr,
11677         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
11678         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
11679         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
11680         as was done in c-gimplify.c.
11681         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
11682         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
11683         Move from c-common.h.
11684         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
11685
11686         * tree.c (staticp): Do not call langhook.
11687         * langhooks.c (lhd_staticp): Delete.
11688         * langhooks-def.h (lhd_staticp): Delete prototype.
11689         (LANG_HOOKS_STATICP): Delete.
11690         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
11691
11692         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
11693         instead of DECL_STMTs.
11694
11695 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
11696
11697         PR c/456
11698         PR c/5675
11699         PR c/19976
11700         PR c/29116
11701         PR c/31871
11702         PR c/35198
11703         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
11704         void_type_node.
11705         (fold_call_expr): Return a NOP_EXPR from folding rather than the
11706         contained expression.
11707         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
11708         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
11709         conditional expressions for C.
11710         (decl_constant_value_for_optimization): Move from
11711         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
11712         whether optimizing and that the expression is a VAR_DECL not of
11713         array type instead of doing such checks in the caller.  Do not
11714         check pedantic.  Call gcc_unreachable for C++.
11715         * c-common.def (C_MAYBE_CONST_EXPR): New.
11716         * c-common.h (c_fully_fold, c_save_expr,
11717         decl_constant_value_for_optimization): New prototypes.
11718         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
11719         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
11720         EXPR_INT_CONST_OPERANDS): Define.
11721         * c-convert.c (convert): Strip nops from expression.
11722         * c-decl.c (groktypename): Take extra parameters expr and
11723         expr_const_operands.  Update call to grokdeclarator.
11724         (start_decl): Update call to grokdeclarator.  Add statement for
11725         expressions used in type of decl.
11726         (grokparm): Update call to grokdeclarator.
11727         (push_parm_decl): Update call to grokdeclarator.
11728         (build_compound_literal): Add parameter non_const and build a
11729         C_MAYBE_COSNT_EXPR if applicable.
11730         (grokdeclarator): Take extra parameters expr and
11731         expr_const_operands.  Track expressions used in declaration
11732         specifiers and declarators.  Fold array sizes and track whether
11733         they are constant expressions and whether they are integer
11734         constant expressions.
11735         (parser_xref_tag): Set expr and expr_const_operands fields in
11736         return value.
11737         (grokfield): Update call to grokdeclarator.
11738         (start_function): Update call to grokdeclarator.
11739         (build_null_declspecs): Set expr and expr_const_operands fields in
11740         return value.
11741         (declspecs_add_type): Handle expressions in typeof specifiers.
11742         * c-parser.c (c_parser_declspecs): Set expr and
11743         expr_const_operands fields for declaration specifiers.
11744         (c_parser_enum_specifier): Likewise.
11745         (c_parser_struct_or_union_specifier): Likewise.
11746         (c_parser_typeof_specifier): Likewise.  Update call to
11747         groktypename.  Fold expression as needed.  Return expressions with
11748         type instead of adding statements.
11749         (c_parser_attributes): Update calls to c_parser_expr_list.
11750         (c_parser_statement_after_labels): Fold expression before passing
11751         to objc_build_throw_stmt.
11752         (c_parser_condition): Fold expression.
11753         (c_parser_asm_operands): Fold expression.
11754         (c_parser_conditional_expression): Use c_save_expr.  Update call
11755         to build_conditional_expr.
11756         (c_parser_alignof_expression): Update call to groktypename.
11757         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
11758         original_code.  Fold expression argument of va_arg.  Create
11759         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
11760         argument to va_arg.  Update calls to groktypename.  Fold array
11761         index for offsetof.  Verify that first argument to
11762         __builtin_choose_expr has integer type.
11763         (c_parser_postfix_expression_after_paren_type): Update calls to
11764         groktypename and build_compound_literal.  Handle expressions with
11765         side effects in type name.
11766         (c_parser_postfix_expression_after_primary): Update call to
11767         c_parser_expr_list.  Set original_code for calls to
11768         __builtin_constant_p.
11769         (c_parser_expr_list): Take extra parameter fold_p.  Fold
11770         expressions if requested.
11771         (c_parser_objc_type_name): Update call to groktypename.
11772         (c_parser_objc_synchronized_statement): Fold expression.
11773         (c_parser_objc_receiver): Fold expression.
11774         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
11775         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
11776         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
11777         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
11778         (struct c_typespec): Add elements expr and expr_const_operands.
11779         (struct c_declspecs): Add elements expr and expr_const_operands.
11780         (groktypename, build_conditional_expr, build_compound_literal):
11781         Update prototypes.
11782         (in_late_binary_op): Declare.
11783         * c-typeck.c (note_integer_operands): New function.
11784         (in_late_binary_op): New variable.
11785         (decl_constant_value_for_broken_optimization): Move to c-common.c
11786         and rename to decl_constant_value_for_optimization.
11787         (default_function_array_conversion): Do not strip nops.
11788         (default_conversion): Do not call
11789         decl_constant_value_for_broken_optimization.
11790         (build_array_ref): Do not fold result.
11791         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
11792         result when operand is a VLA.
11793         (c_expr_sizeof_type): Update call to groktypename.  Handle
11794         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
11795         result when operand names a VLA type.
11796         (build_function_call): Update call to build_compound_literal.
11797         Only fold result for calls to __builtin_* functions.  Strip
11798         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
11799         the function designator.
11800         (convert_arguments): Fold arguments.  Update call to
11801         convert_for_assignment.
11802         (build_unary_op): Handle increment and decrement of
11803         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
11804         decrement earlier.  Fold operand of increment and decrement.
11805         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
11806         built for integer operand.  Wrap returns that are INTEGER_CSTs
11807         without being integer constant expressions or that have integer
11808         constant operands without being INTEGER_CSTs.
11809         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
11810         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
11811         result is an integer constant expression or can be used in
11812         unevaluated parts of one and avoid folding and wrap as
11813         appropriate.  Fold operands before possibly doing -Wsign-compare
11814         warnings.
11815         (build_compound_expr): Wrap result for C99 if operands can be used
11816         in integer constant expressions.
11817         (build_c_cast): Update call to digest_init.  Do not ignore
11818         overflow from casting floating-point constants to integers.  Wrap
11819         results that could be confused with integer constant expressions,
11820         null pointer constants or floating-point constants.
11821         (c_cast_expr): Update call to groktypename.  Handle expressions
11822         included in type name.
11823         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
11824         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
11825         Update calls to convert_for_assignment.
11826         (convert_for_assignment): Take new parameter
11827         null_pointer_constant.  Do not strip nops or call
11828         decl_constant_value_for_broken_optimization.  Set
11829         in_late_binary_op for conversions to boolean.
11830         (store_init_value): Update call to digest_init.
11831         (digest_init): Take new parameter null_pointer_constant.  Do not
11832         call decl_constant_value_for_broken_optimization.  pedwarn for
11833         initializers not constant expressions.  Update calls to
11834         convert_for_assignment.
11835         (constructor_nonconst): New.
11836         (struct constructor_stack): Add nonconst element.
11837         (really_start_incremental_init, push_init_level, pop_init_level):
11838         Handle constructor_nonconst and nonconst element.
11839         (set_init_index): Call constant_expression_warning for array
11840         designators.
11841         (output_init_element): Fold value.  Set constructor_nonconst as
11842         applicable.  pedwarn for initializers not constant expressions.
11843         Update call to digest_init.  Call constant_expression_warning
11844         where constant initializers are required.
11845         (process_init_element): Use c_save_expr.
11846         (c_finish_goto_ptr): Fold expression.
11847         (c_finish_return): Fold return value.  Update call to
11848         convert_for_assignment.
11849         (c_start_case): Fold switch expression.
11850         (c_process_expr_stmt): Fold expression.
11851         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
11852         ensure statement expression is not evaluated in constant expression.
11853         (build_binary_op): Track whether results are integer constant
11854         expressions or may occur in such, disable folding and wrap results
11855         as applicable.  Fold operands for -Wsign-compare warnings unless
11856         in_late_binary_op.
11857         (c_objc_common_truthvalue_conversion): Handle results folded to
11858         integer constants that are not integer constant expressions.
11859         * doc/extend.texi: Document when typeof operands are evaluated,
11860         that condition of __builtin_choose_expr is an integer constant
11861         expression, and more about use of __builtin_constant_p in
11862         initializers.
11863
11864 2009-03-29  Richard Guenther  <rguenther@suse.de>
11865
11866         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
11867         propagate addresses of array references.
11868
11869 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
11870
11871         * regmove.c (perhaps_ends_bb_p): Remove.
11872         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
11873         from INSN and check that the main loop stays within that basic block.
11874         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
11875         (regmove_forward_pass): Split out from regmove_optimize.  Use
11876         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
11877         (regmove_backward_pass): Split out from regmove_optimize.  Use
11878         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
11879         (regmove_optimize): Simplify.
11880
11881 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
11882
11883         PR target/39545
11884         * config/i386/i386.c (classify_argument): Ignore flexible array
11885         member in struct and warn ABI change.
11886
11887 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
11888
11889         * config/i386/i386-protos.h (ix86_agi_dependent): New.
11890
11891         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
11892         (ix86_adjust_cost): Updated.
11893
11894 2009-03-29  Jan Hubicka  <jh@suse.cz>
11895
11896         PR middle-end/28850
11897         * tree-pass.h (pass_cleanup_eh): New function.
11898         (remove_unreachable_regions): Break code handling RTL
11899         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
11900         that can not be reached by runtime.
11901         (can_be_reached_by_runtime): New function.
11902         (label_to_region_map): New function.
11903         (num_eh_regions): New function.
11904         (rtl_remove_unreachable_regions): New function.
11905         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
11906         (remove_eh_region): New function.
11907         * except.h: Include sbitmap and vecprim.
11908         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
11909         num_eh_regions): Declare.
11910         * passes.c (init_optimization_passes): Schedule cleanup_eh.
11911         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
11912         * tree-eh.c (tree_remove_unreachable_handlers): New function.
11913         (tree_empty_eh_handler_p): New function.
11914         (cleanup_empty_eh): New function.
11915         (cleanup_eh): New function.
11916         (pass_cleanup_eh): New function.
11917
11918 2009-03-29  Jan Hubicka  <jh@suse.cz>
11919
11920         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
11921         for removed regions.
11922
11923 2009-03-29  Jan Hubicka  <jh@suse.cz>
11924
11925         * except.c (dump_eh_tree): Dump all datastructures.
11926
11927 2009-03-29  Jan Hubicka  <jh@suse.cz>
11928
11929         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
11930         (duplicate_eh_regions_1): Likewise.
11931         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
11932         vector; call EH verification.
11933         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
11934         Be ready for region being removed.
11935
11936 2009-03-29  Jan Hubicka  <jh@suse.cz>
11937
11938         * bitmap.c (bitmap_last_set_bit): New function.
11939         * bitmap.h (bitmap_last_set_bit): Declare.
11940
11941 2009-03-29  David Ayers  <ayers@fsfe.org>
11942
11943         PR objc/27377
11944         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
11945         by calling objc_compare_types and surpress warnings about
11946         incompatible C pointers that are compatible ObjC pointers.
11947
11948 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
11949
11950         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
11951         call initialize_inline_failed.
11952         (initialize_inline_failed): Move it from here ...
11953         * cgraph.c (initialize_inline_failed): ... to here.
11954         (cgraph_create_edge): Call initialize_inline_failed rather than
11955         setting inline_failed directly.
11956
11957 2009-03-29  Ben Elliston  <bje@au.ibm.com>
11958
11959         PR target/32542
11960         * sysv4.opt (msdata): Improve comment.
11961         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
11962         * sysv4.h (SVR4_ASM_SPEC): Likewise.
11963
11964 2009-03-29  Ben Elliston  <bje@au.ibm.com>
11965
11966         PR target/30451
11967         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
11968         load and store attributes.
11969
11970 2009-03-29  Ben Elliston  <bje@au.ibm.com>
11971
11972         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
11973         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
11974         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
11975         * doc/extend.texi (X86 Built-in Functions): Add index entries for
11976         __builtin_infq and __builtin_huge_valq.
11977
11978 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
11979
11980         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
11981         atmega8m1 devices.
11982         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
11983         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
11984
11985 2009-03-28  Xinliang David Li  <davidxl@google.com>
11986
11987         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
11988         (do_dbg_cnt): New function.
11989
11990 2009-03-28  Jan Hubicka  <jh@suse.cz>
11991
11992         Merge from pretty-ipa:
11993
11994         2009-03-27  Jan Hubicka  <jh@suse.cz>
11995
11996         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
11997         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
11998         * passes.c (function_called_by_processed_nodes_p): New.
11999         * ipa-pure-const.c (check_call): Fix handling of operands.
12000         (analyze_function): Dump debug output for skipped bodies.
12001         (local_pure_const): Use function_called_by_processed_nodes_p.
12002         * dwarf2out.c (reference_to_unused): Use output.
12003         * passes.c (do_per_function_toporder): Likewise.
12004
12005         2008-11-12  Jan Hubicka  <jh@suse.cz>
12006
12007         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
12008         * ipa-pure-const.c (funct_state_d): Add can throw field; make
12009         state_set_in_source enum
12010         (check_decl): Ignore memory tags; do not set fake looping flags;
12011         dump diagnostics.
12012         (check_operand, check_tree, check_rhs_var, check_lhs_var,
12013         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
12014         (check_call, analyze_function): Rewrite.
12015         (check_stmt): New.
12016         (add_new_function): Update call of analyze_function.
12017         (generate_summary): Add call of analyze_function.
12018         (propagate): Propagate can_throw; handle state_set_in_source correctly.
12019         (local_pure_const): New function.
12020         (pass_local_pure_const): New pass.
12021         * ipa-inline.c (inline_transform): Set after_inlining.
12022         * tree-eh.c (stmt_can_throw_external): New.
12023         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
12024         work with aliasing built.
12025         * tree-flow.h (stmt_can_throw_external): New.
12026         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
12027         and local pure/const pass in early and late optimization queue.
12028
12029 2009-03-28  Martin Jambor  <mjambor@suse.cz>
12030
12031         * fold-const.c (get_pointer_modulus_and_residue): New parameter
12032         allow_func_align.
12033         (fold_binary): Allow function decl aligment consideration is the
12034         second argument is integer constant one.
12035         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
12036         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
12037         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
12038
12039 2009-03-28  Jan Hubicka  <jh@suse.cz>
12040
12041         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
12042         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
12043         * function.h (rtl_data): Add nothrow flag.
12044         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
12045         set DECL_NOTHROW for AVAILABLE functions.
12046
12047 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
12048
12049         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
12050         following vector keyword has expansion starting with pixel or bool
12051         keyword, expand vector to __vector and pixel or bool to __pixel or
12052         __bool.
12053
12054         PR c++/39554
12055         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
12056         warn_if_disallowed_function_p): Removed.
12057         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
12058         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
12059         warning_if_disallowed_function_p.
12060         * flags.h (warn_if_disallowed_function_p,
12061         warn_disallowed_functions): Removed.
12062         * common.opt (Wdisallowed-function-list=): Removed.
12063         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
12064
12065 2009-03-28  Richard Guenther  <rguenther@suse.de>
12066
12067         PR tree-optimization/38723
12068         * tree-ssa-pre.c (compute_avail): Add all default definitions to
12069         the entry block.
12070
12071 2009-03-28  Jan Hubicka  <jh@suse.cz>
12072
12073         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
12074         test introduced by my previous patch.
12075
12076 2009-03-28  Richard Guenther  <rguenther@suse.de>
12077
12078         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
12079         the PHIs value undefined.
12080
12081 2009-03-28  Jan Hubicka  <jh@suse.cz>
12082
12083         * tree-pass.h (pass_fixup_cfg): New pass.
12084         * ipa-inline.c (inline_transform): Set
12085         always_inline_functions_inlined/after_inlining.
12086         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
12087         (pass_fixup_cfg): New pass.
12088         * passes.c (init_optimization_passes): Add fixup_cfg.
12089
12090 2009-03-28  Richard Guenther  <rguenther@suse.de>
12091
12092         PR tree-optimization/38458
12093         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
12094         argument use the arguments copy-of value.
12095
12096 2009-03-28  Richard Guenther  <rguenther@suse.de>
12097
12098         PR tree-optimization/38180
12099         * tree-ssa-ccp.c (get_default_value): Simplify.
12100         (likely_value): Likewise.
12101         (surely_varying_stmt_p): Properly handle VOP case.
12102         (ccp_initialize): Likewise.
12103         (ccp_fold): Handle propagating through *&.
12104         (fold_const_aggregate_ref): Also handle decls.
12105
12106 2009-03-28  Jan Hubicka  <jh@suse.cz>
12107
12108         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
12109         * cgraph.h (cgraph_node): Likewise.
12110         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
12111         (cgraph_reset_node): Use process flag.
12112         (cgraph_mark_functions_to_output): Likewise.
12113         (cgraph_expand_function): Likewise.
12114         (cgraph_expand_all_functions): Likewise.
12115         (cgraph_output_in_order): Likewise.
12116         * dwarf2out.c (reference_to_unused): Likewise.
12117         * passes.c do_per_function_toporder): Likewise.
12118
12119 2009-03-28  Jan Hubicka  <jh@suse.cz>
12120
12121         Bring from lto-branch:
12122
12123         2008-09-03  Doug Kwan  <dougkwan@google.com>
12124
12125         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
12126         enums instead of reason strings.
12127         * cgraph.c (cgraph_create_edge): Same.
12128         (cgraph_inline_failed_string): New function.
12129         * cgraph.h (cgraph_inline_failed_t): New enum type.
12130         (cgraph_inline_failed_string): New prototype.
12131         (struct cgraph_edge): Change type of INLINED_FAILED from constant
12132         char pointer to cgraph_inline_failed_t.
12133         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
12134         (cgraph_default_inline_p): Ditto.
12135         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
12136         to cgraph_inline_failed_t pointer.
12137         * cif-code.def: New file.
12138         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
12139         reason string.
12140         (cgraph_check_inline_limits): Change type of REASON to pointer to
12141         cgraph_inline_failed_t.  Replace reason strings with enums.
12142         (cgraph_default_inline_p): Ditto.
12143         (cgraph_recursive_inlining_p): Ditto.
12144         (update_caller_keys): Change type of FAILED_REASON to
12145         cgraph_inline_failed_t.
12146         (cgraph_set_inline_failed): Change type of REASON to pointer to
12147         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
12148         convert enums to strings for text output.
12149         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
12150         to be of type cgraph_inline_failed_t.  Replace reason strings with
12151         enums.  Call cgraph_inline_failed_string to covert enums
12152         to strings for text output.
12153         (cgraph_decide_inlining): Replace reason strings with enums.
12154         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
12155         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
12156         for text output.
12157         * tree-inline.c (expand_call_inline): Change type of REASON
12158         to cgraph_inline_failed_t.  Replace reason strings with enums.
12159         Call cgraph_inline_failed_string for text output.
12160         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
12161         (cgraph.o): Ditto.
12162
12163 2009-03-28  Jan Hubicka  <jh@suse.cz>
12164
12165         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
12166         cgraph_clone_node): Remove master clone handling.
12167         (cgraph_is_master_clone, cgraph_master_clone): Remove.
12168         * cgraph.h (master_clone): Remove.
12169         (cgraph_is_master_clone, cgraph_master_clone): Remove.
12170         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
12171         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12172
12173 2009-03-28  Jan Hubicka  <jh@suse.cz>
12174
12175         * cgraph.c (cgraph_function_body_availability): Functions declared
12176         inline are always safe to assume that it is not going to be replaced.
12177
12178 2009-03-28  Richard Guenther  <rguenther@suse.de>
12179
12180         PR tree-optimization/38513
12181         * tree-ssa-pre.c (eliminate): Remove redundant stores.
12182         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
12183         EXC_PTR_EXPR and FILTER_EXPR.
12184         (get_ref_from_reference_ops): Likewise.
12185
12186 2009-03-28  Richard Guenther  <rguenther@suse.de>
12187
12188         PR tree-optimization/38968
12189         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
12190         Use FLOOR_MOD_EXPR to compute misalignment.
12191
12192 2009-03-28  Richard Guenther  <rguenther@suse.de>
12193
12194         PR tree-optimization/37795
12195         * tree.h (combine_comparisons): Declare.
12196         * fold-const.c (combine_comparisons): Export.
12197         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
12198         comparisons.
12199         (ifcombine_iforif): Use combine_comparisons.
12200
12201 2009-03-28  Jan Hubicka  <jh@suse.cz>
12202
12203         * tree-eh.c (inlinable_call_p): New function.
12204         (make_eh_edges): Use it.
12205         (verify_eh_edges): Use it.
12206         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
12207         * except.c (reachable_next_level): Add inlinable_function argument
12208         (sjlj_find_directly_reachable_regions): Update.
12209         (add_reachable_handler): Do not set saw_any_handlers.
12210         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
12211         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
12212         Add new inlinable call parameter.
12213         (can_throw_internal, can_throw_external): Update.
12214         * except.h (can_throw_internal_1, can_throw_external_1,
12215         foreach_reachable_handler): Update declaration.
12216
12217 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
12218
12219         * config/arm/t-arm-coff, config/h8300/coff.h,
12220         config/i386/i386-aout.h, config/i386/i386-coff.h,
12221         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
12222         config/pdp11/2bsd.h, config/rs6000/aix41.h,
12223         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
12224         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
12225         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
12226         sys-types.h: Remove.
12227         * Makefile.in: Remove protoize and fixproto support and references
12228         in comments.
12229         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
12230         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
12231         Remove.
12232         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
12233         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
12234         unprotoize$(exeext).
12235         (rest.encap): Don't depend on $(STMP_FIXPROTO)
12236         (.PHONY): Don't depend on proto.
12237         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
12238         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
12239         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
12240         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
12241         build/gen-protos.o, build/scan.o, xsys-protos.h,
12242         build/fix-header$(build_exeext), build/fix-header.o,
12243         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
12244         stmp-install-fixproto): Remove.
12245         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
12246         SYSCALLS.c or fixproto files.
12247         (install-common): Don't install protoize.
12248         (install-headers-tar, install-headers-cpio, install-headers-cp):
12249         Don't depend on $(STMP_FIXPROTO).
12250         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
12251         install fixproto files or write out fixproto settings.
12252         (uninstall): Don't uninstall protoize.
12253         * config.gcc (use_fixproto): Remove.
12254         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
12255         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
12256         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
12257         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
12258         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
12259         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
12260         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
12261         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
12262         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
12263         * config/t-vxworks (STMP_FIXPROTO): Remove.
12264         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
12265         STMP_FIXPROTO): Remove.
12266         * config.in, configure: Regenerate.
12267         * crtstuff.c (gid_t, uid_t): Don't undefine.
12268         * doc/install.texi: Change m68k-coff to m68k-elf in example.
12269         (arm-*-coff, arm-*-aout: Remove target entries.
12270         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
12271         Remove mention of AIX 4.1.
12272         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
12273         * doc/invoke.texi (Running Protoize): Remove.
12274         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
12275         (Protoize Caveats): Remove.
12276         * tsystem.h: Update comments on headers assumed to exist.
12277
12278 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
12279
12280         * genautomata.c: Add a new year to the copyright.  Add a new
12281         reference.
12282         (struct insn_reserv_decl): Add comments for member bypass_list.
12283         (find_bypass): Remove.
12284         (insert_bypass): New.
12285         (process_decls): Use insert_bypass.
12286         (output_internal_insn_latency_func): Output all bypasses with the
12287         same input insn in one switch case.
12288
12289         * rtl.def (define_bypass): Describe bypass choice.
12290         * doc/md.texi (define_bypass): Ditto.
12291
12292 2009-03-27  Richard Guenther  <rguenther@suse.de>
12293
12294         * gimplify.c (mark_addressable): Export.
12295         * tree-flow.h (mark_addressable): Declare.
12296         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
12297         * tree-ssa.c (verify_phi_args): Verify that address taken
12298         variables have TREE_ADDRESSABLE set.
12299
12300 2009-03-27  Richard Guenther  <rguenther@suse.de>
12301
12302         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
12303         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
12304         Do not mark decls TREE_ADDRESSABLE.
12305         (build_fold_addr_expr): Adjust.
12306         (fold_addr_expr): Remove.
12307         (fold_unary): Use build_fold_addr_expr.
12308         (fold_comparison): Likewise.
12309         (split_address_to_core_and_offset): Likewise.
12310         * coverage.c (tree_coverage_counter_addr): Mark the array decl
12311         TREE_ADDRESSABLE.
12312         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
12313         (gimplify_modify_expr_to_memcpy): Mark source and destination
12314         addressable.
12315         * omp-low.c (create_omp_child_function): Mark the object decl
12316         TREE_ADDRESSABLE.
12317         (lower_rec_input_clauses): Mark the var we take the address of
12318         TREE_ADDRESSABLE.
12319         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
12320
12321 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12322
12323         PR middle-end/39315
12324         * cfgexpand.c (expand_one_stack_var_at): Change alignment
12325         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
12326
12327 2009-03-27  Richard Guenther  <rguenther@suse.de>
12328
12329         PR tree-optimization/39120
12330         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
12331         constraints.
12332         (handle_lhs_call): Process return constraints.  Add escape
12333         constraints if necessary.
12334         (handle_const_call): Fill out return constraints.  Make nested
12335         case more precise.  Avoid consttmp if possible.
12336         (handle_pure_call): Fill out return constraints.  Avoid
12337         callused if possible.
12338         (find_func_aliases): Simplify call handling.
12339
12340 2009-03-27  Richard Guenther  <rguenther@suse.de>
12341
12342         PR tree-optimization/39120
12343         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
12344         as a representative.
12345         (solve_graph): Do propagate CALLUSED.
12346         (handle_pure_call): Use a scalar constraint from CALLUSED for
12347         the return value.
12348         (find_what_p_points_to): CALLUSED shall not appear in poins-to
12349         solutions.
12350
12351 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12352
12353         PR c/39323
12354         * c-common.c (handle_aligned_attribute): Properly check alignment
12355         overflow.  Use (1U << i) instead of (1 << i).
12356
12357         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
12358
12359         * expr.h (get_mem_align_offset): Updated.
12360
12361         * tree.h (tree_decl_common): Change align to "unsigned int" and
12362         move it before pointer_alias_set.
12363
12364 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12365             Jakub Jelinek  <jakub@redhat.com>
12366
12367         PR target/38034
12368         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
12369         gr_register_operand with gr_reg_or_0_operand.
12370         (cmpxchg_rel_di): Likewise.
12371         (sync_lock_test_and_set<mode>): Likewise.
12372
12373 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12374
12375         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
12376         (true_regnum): Likewise.
12377
12378         * rtlanal.c (subreg_info): Moved to ...
12379         * rtl.h (subreg_info): Here.  New.
12380         (subreg_get_info): New.
12381
12382         * rtlanal.c (subreg_get_info): Make it extern.
12383
12384 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12385
12386         PR target/39472
12387         * config/i386/i386.c (ix86_abi): New.
12388         (override_options): Handle -mabi=.
12389         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
12390         (ix86_call_abi_override): Likewise.
12391         (init_cumulative_args): Likewise.
12392         (function_arg_advance): Likewise.
12393         (function_arg_64): Likewise.
12394         (function_arg): Likewise.
12395         (ix86_pass_by_reference): Likewise.
12396         (ix86_function_value_regno_p): Likewise.
12397         (ix86_build_builtin_va_list_abi): Likewise.
12398         (setup_incoming_varargs_64): Likewise.
12399         (is_va_list_char_pointer): Likewise.
12400         (ix86_init_machine_status): Likewise.
12401         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
12402         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
12403         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
12404         (ix86_function_abi): Make it static and return enum calling_abi.
12405         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
12406         with ix86_abi.
12407         (ix86_fn_abi_va_list): Updated.
12408
12409         * config/i386/i386.h (ix86_abi): New.
12410         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
12411         (CONDITIONAL_REGISTER_USAGE): Likewise.
12412         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
12413         (machine_function): Likewise.
12414
12415         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
12416         with ix86_abi.
12417         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
12418         (STACK_BOUNDARY): Likewise.
12419         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
12420
12421         * config/i386/i386.opt (mabi=): New.
12422
12423         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
12424         return enum calling_abi.
12425         (ix86_function_type_abi): Likewise.
12426         (ix86_function_abi): Removed.
12427
12428         * doc/invoke.texi: Document -mabi= option for x86.
12429
12430 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12431
12432         * builtins.c (real_dconstp): Delete.
12433         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
12434
12435 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
12436             Jakub Jelinek  <jakub@redhat.com>
12437
12438         PR debug/37959
12439         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
12440         (gen_subprogram_die): When a function is explicit, generate the
12441         DW_AT_explicit attribute.
12442         * langhooks.h (struct lang_hooks_for_decls): Add
12443         function_decl_explicit_p langhook.
12444         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
12445         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
12446
12447 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
12448
12449         * builtins.c (fold_builtin_memory_op): Optimize memmove
12450         into memcpy if we can prove source and destination don't overlap.
12451
12452         * tree-inline.c: Include gt-tree-inline.h.
12453         (clone_fn_id_num): New variable.
12454         (clone_function_name): New function.
12455         (tree_function_versioning): Use it.
12456         * Makefile.in (GTFILES): Add tree-inline.c.
12457
12458 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
12459
12460         * BASE-VER: Change to 4.5.0.
12461
12462 2009-03-27  Xinliang David Li  <davidxl@google.com>
12463
12464         PR tree-optimization/39557
12465         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
12466
12467 2009-03-27  Xinliang David Li  <davidxl@google.com>
12468
12469         PR tree-optimization/39548
12470         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
12471         candidate check.
12472
12473 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12474
12475         * c-common.c (pointer_int_sum): Use %wd on return from
12476         tree_low_cst.
12477
12478 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
12479
12480         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
12481         on return from tree_low_cst.
12482
12483 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12484
12485         PR c++/36799
12486         * ginclude/stdarg.h (va_copy): Define also for
12487         __GXX_EXPERIMENTAL_CXX0X__.
12488
12489 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12490
12491         PR c++/35652
12492         * builtins.h (c_strlen): Do not warn here.
12493         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
12494         * c-common.c (pointer_int_sum): Take an explicit location.
12495         Warn about offsets out of bounds.
12496         * c-common.h (pointer_int_sum): Adjust declaration.
12497
12498 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12499
12500         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
12501         markup glitch.
12502
12503 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
12504
12505         PR c++/39554
12506         * opts.c (warn_if_disallowed_function_p): Don't assume
12507         get_callee_fndecl must return non-NULL.
12508
12509 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
12510
12511         PR rtl-optimization/39522
12512         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
12513         when reg_reloaded_valid is set.
12514
12515 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12516
12517         * config/spu/divv2df3.c: New file.
12518         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
12519         (DPBIT_FUNCS): Filter out _div_df.
12520
12521 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
12522
12523         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
12524         a jump insn, count that jump in the distance to the loop start.
12525
12526 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
12527
12528         PR target/39523
12529         * config/sh/sh.c (calc_live_regs): Fix condition for global
12530         registers except PIC_OFFSET_TABLE_REGNUM.
12531
12532 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
12533
12534         PR/39518
12535         * doc/invoke.texi (-mconsole): New.
12536         (-mcygwin): New.
12537         (-mno-cygwin): New.
12538         (-mdll): New.
12539         (-mnop-fun-dllimport): New.
12540         (-mthread): New.
12541         (-mwin32): New.
12542         (-mwindows): New.
12543         (sub section "i386 and x86-64 Windows Options"): New.
12544
12545 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
12546
12547         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
12548         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
12549
12550 2009-03-25  Richard Guenther  <rguenther@suse.de>
12551
12552         PR middle-end/39497
12553         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
12554         of -Wno-error.
12555
12556 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
12557
12558         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
12559         neither of haifa/selective schedulers are working.
12560
12561 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12562
12563         * doc/invoke.texi (Debugging Options): Fix description of
12564         -fno-merge-debug-strings.
12565
12566 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
12567
12568         * config/cris/libgcc.ver: New version-script.
12569         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
12570
12571         * configure.ac <GAS features, nop mnemonic>: Add pattern
12572         crisv32-*-* for "nop".
12573         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
12574         * configure: Regenerate.
12575
12576 2009-03-24  Ira Rosen  <irar@il.ibm.com>
12577
12578         PR tree-optimization/39529
12579         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
12580         mark_sym_for_renaming for the tag copied to the new vector
12581         pointer.
12582
12583 2009-03-24  Arthur Loiret  <aloiret@debian.org>
12584
12585         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
12586         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
12587         EXTRA_SPEC_FUNCTIONS.
12588         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
12589         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
12590         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
12591         -march and -mtune options.
12592
12593 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
12594
12595         * config/m68k/t-rtems: Add m5329 multilib.
12596
12597 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
12598             Jakub Jelinek  <jakub@redhat.com>
12599
12600         PR debug/39524
12601         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
12602         nodes.
12603
12604 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
12605
12606         PR c/39495
12607         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
12608         instead of c_parser_expression_conv, if original_code isn't one of the
12609         4 allowed comparison codes, fail.
12610
12611 2009-03-23  Richard Guenther  <rguenther@suse.de>
12612
12613         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
12614         * tree.h (struct tree_type): Likewise.
12615         * reload.h (struct insn_chain): Likewise.
12616         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
12617         * function.h (struct function): Likewise.
12618         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
12619
12620 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
12621
12622         PR tree-optimization/39516
12623         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
12624
12625 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
12626
12627         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
12628         should be set true if BITS_PER_WORD of target is bigger than 32
12629
12630 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
12631
12632         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
12633         Translate -B-options to -rpath-link.  Correct existing
12634         rpath-link and conditionalize on !nostdlib.
12635
12636 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12637
12638         * doc/extend.texi (Function Attributes, Variable Attributes):
12639         Fix typos.
12640         * doc/invoke.texi (Debugging Options, Optimize Options)
12641         (i386 and x86-64 Options, MCore Options): Likewise.
12642
12643 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
12644
12645         PR debug/37890
12646         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
12647         it for block local namespace aliases.
12648         (gen_decl_die): Pass context_die to gen_namespace_die.
12649
12650 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
12651
12652         PR c/39495
12653         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
12654         minimum or maximum value.
12655
12656 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
12657
12658         * reginfo.c (globalize_reg): Recompute derived reg sets.
12659
12660 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
12661
12662         PR target/39063
12663         * libgcc2.c (mprotect): Do not use signed arguments for
12664         VirtualProtect, use DWORD arguments.  Also fix the 'may
12665         be used uninitialized' warning for the np variable.
12666
12667 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
12668
12669         PR target/39496
12670         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
12671         functions using regparm calling conventions when not optimizing.
12672         (ix86_function_sseregparm): Similarly for sseregparm calling
12673         conventions.
12674
12675 2009-03-19  Li Feng  <nemokingdom@gmail.com>
12676
12677         PR middle-end/39500
12678         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
12679         dependence if the first conflict is after niter iterations.
12680
12681 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
12682
12683         PR middle-end/38609
12684         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
12685         functions with dynamic stack-pointer adjustments.
12686
12687 2009-03-19  Ben Elliston  <bje@au.ibm.com>
12688
12689         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
12690         option; change to -msdata=data.
12691
12692 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12693
12694         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
12695         and -fopenmp.
12696
12697 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
12698
12699         PR target/35180
12700         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
12701
12702 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
12703
12704         * doc/invoke.texi (Code Gen Options): Expand discussion of
12705         -fno-common.
12706
12707 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
12708
12709         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
12710         * matrix-reorg.c (struct matrix_info): Likewise.
12711         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
12712         * rtl.h (struct mem_attrs): Likewise.
12713         * df.h (struct df): Likewise.
12714         * tree-data-ref.h (struct data_dependence_relation): Likewise.
12715         * ira-int.h (struct ira_allocno): Likewise.
12716         * df-scan.c (struct df_collection_rec): Likewise.
12717         * ira.c (struct equivalence): Likewise.
12718         * function.c (struct temp_slot): Likewise.
12719         * cfgloop.h (struct loop): Likewise.
12720
12721         PR debug/39485
12722         * function.c (use_register_for_decl): When not optimizing, disregard
12723         register keyword for variables with types containing methods.
12724
12725 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
12726
12727         PR middle-end/39447
12728         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
12729         (is_simple_operand): Call contains_component_ref_p before calling data
12730         reference analysis that would fail on COMPONENT_REFs.
12731
12732         * tree-vrp.c (search_for_addr_array): Fix formatting.
12733
12734 2009-03-18  Richard Guenther  <rguenther@suse.de>
12735
12736         * tree-vect-transform.c (vect_loop_versioning): Fold the
12737         generated comparisons.
12738         * tree-vectorizer.c (set_prologue_iterations): Likewise.
12739         (slpeel_tree_peel_loop_to_edge): Likewise.
12740
12741 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12742
12743         PR middle-end/37805
12744         * opts.c (print_specific_help): In addition to `undocumented',
12745         accept `separate' and `joined' flags if passed alone.  Describe
12746         output by the first matched one of those.
12747         (common_handle_option): Skip over empty strings.
12748         * gcc.c (display_help): Fix help string for `--help='.
12749         * doc/invoke.texi (Option Summary, Overall Options): With
12750         `--help=', classes and qualifiers can both be repeated, but
12751         only the latter can be negated.  One should not pass only
12752         negated qualifiers.  Fix markup and examples.
12753
12754         Revert
12755         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
12756         PR middle-end/37805
12757         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
12758         and -fhelp=separate.
12759
12760 2009-03-17  Jing Yu  <jingyu@google.com>
12761
12762         PR middle-end/39378
12763         * function.h (struct rtl_data): Move is_thunk from here...
12764         (struct function): ...to here.
12765         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
12766         * varasm.c (assemble_start_function): Change is_thunk from crtl to
12767         cfun.
12768         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
12769         cfun.
12770         (alpha_does_function_need_gp, alpha_start_function): Likewise.
12771         (alpha_output_function_end_prologue): Likewise.
12772         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
12773         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
12774         (rs6000_output_function_epilogue): Likewise.
12775         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
12776
12777 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
12778
12779         PR target/39482
12780         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
12781         from different units in a single alternative.
12782         (*truncdfsf_i387): Ditto.
12783         (*truncxfsf2_mixed): Ditto.
12784         (*truncxfdf2_mixed): Ditto.
12785
12786 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
12787
12788         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
12789         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
12790
12791         PR debug/39474
12792         * tree-ssa-live.c (remove_unused_locals): Don't remove local
12793         unused non-artificial variables when not optimizing.
12794
12795         PR debug/39471
12796         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
12797         DW_TAG_imported_module even if decl is IMPORTED_DECL with
12798         NAMESPACE_DECL in its DECL_INITIAL.
12799
12800         PR middle-end/39443
12801         * optabs.c (set_user_assembler_libfunc): New function.
12802         * expr.h (set_user_assembler_libfunc): New prototype.
12803         * c-common.c: Include libfuncs.h.
12804         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
12805         for memcmp, memset, memcpy, memmove and abort.
12806         * Makefile.in (c-common.o): Depend on libfuncs.h.
12807
12808         PR debug/39412
12809         * dwarf2out.c (gen_inlined_enumeration_type_die,
12810         gen_inlined_structure_type_die, gen_inlined_union_type_die,
12811         gen_tagged_type_instantiation_die): Removed.
12812         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
12813         do nothing.
12814
12815 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
12816
12817         PR testsuite/38526
12818         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
12819         its use.
12820         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
12821         (check-parallel-%): Ditto.
12822         (check-consistency): Ditto.
12823
12824 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
12825
12826         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
12827         local variable rhs by NULL_TREE.
12828
12829 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
12830
12831         PR target/39477
12832         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
12833
12834 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
12835
12836         PR target/39476
12837         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
12838
12839 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
12840
12841         PR target/39473
12842         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
12843         for ms->sysv ABI calls only in 64bit mode.
12844
12845         * config/i386/i386.md (untyped_call): Support 32bit.
12846
12847 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
12848
12849         * doc/extend.texi: Replace x86_65 with x86_64.
12850
12851 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
12852
12853         PR tree-optimization/39455
12854         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
12855         mismatches for POINTER_TYPE_P (type).
12856         (number_of_iterations_le): Likewise.
12857
12858 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
12859
12860         * config/picochip/picochip.c: Removed profiling support.
12861         * config/picochip/picochip.md: Removed profiling instruction.
12862         * config/picochip/picochip.h: Removed profiling builtin.
12863
12864 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
12865
12866         * doc/install.texi (--with-host-libstdcxx): Document.
12867
12868 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
12869
12870         PR target/34299
12871         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
12872         generate a warning if the function name does not begin with
12873         "__vector" and the function has either the 'signal' or 'interrupt'
12874         attribute, from here to ...
12875         (avr_declare_function_name): ...here. New function.
12876         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
12877         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
12878
12879 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
12880
12881         PR bootstrap/39454
12882         * cse.c (fold_rtx): Don't modify original const_arg1 when
12883         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
12884         separate variable instead.
12885         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
12886         from out of range shift counts.
12887         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
12888
12889 2009-03-13  Catherine Moore  <clm@codesourcery.com>
12890
12891         * config/i386/x-mingw32 (host-mingw32.o): Replace
12892         diagnostic.h with $(DIAGNOSTIC_H).
12893
12894 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
12895
12896         PR target/39431
12897         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
12898         predicate.
12899         * config/i386/sync.md (sync_compare_and_swap<mode>,
12900         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
12901         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
12902         into a register.
12903         (sync_double_compare_and_swapdi_pic,
12904         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
12905         cmpxchg8b_pic_memory_operand instead of just memory_operand.
12906
12907 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
12908
12909         PR target/39445
12910         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
12911
12912 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
12913
12914         PR target/39327
12915         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
12916         (avx_addsubv4df3): Likewise.
12917         (*avx_addsubv4sf3): Likewise.
12918         (sse3_addsubv4sf3): Likewise.
12919
12920 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
12921
12922         PR target/38824
12923         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
12924
12925 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
12926
12927         PR debug/39432
12928         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
12929         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
12930         registers for allocnos created from user-defined variables.
12931
12932 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12933
12934         PR target/39181
12935         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
12936         of non-integer mode as well.
12937
12938 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
12939
12940         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
12941         for functions for which the parameter types are unknown.
12942
12943 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
12944
12945         PR target/39137
12946         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
12947         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
12948         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
12949         * config/i386/i386.c (ix86_local_alignment): For
12950         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
12951         long long variables on the stack to avoid dynamic realignment.
12952         Allow the first argument to be a decl rather than type.
12953         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
12954
12955 2009-03-11  Nick Clifton  <nickc@redhat.com>
12956
12957         PR target/5362
12958         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
12959         options.
12960         Add description to mno-lsim option.
12961         * config/mcore/mcore.h: Remove comment about deprecated m4align
12962         option.
12963         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
12964         * doc/invoke.texi: Add description of mno-lsim and
12965         mstack-increment options.
12966
12967         * config/fr30/fr30.opt: Document the -mno-lsim option.
12968         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
12969         and -mno-lsim options.
12970
12971 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12972
12973         * fold-const.c (fold_comparison): Only call fold_inf_compare
12974         if the mode supports infinities.
12975
12976 2009-03-11  Jason Merrill  <jason@redhat.com>
12977
12978         PR debug/39086
12979         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
12980         end already did.  Notice GIMPLE_CALL modifications of the result.
12981         Don't copy debug information from an ignored decl or a decl from
12982         another function.
12983
12984 2009-03-10  Richard Guenther  <rguenther@suse.de>
12985             Nathan Froyd  <froydnj@codesourcery.com>
12986
12987         PR middle-end/37850
12988         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
12989         (__divMODE3): Likewise.
12990
12991 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
12992
12993         PR tree-optimization/39394
12994         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
12995         DECL_SIZE_UNIT of variable length FIELD_DECLs.
12996
12997 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12998
12999         * recog.c (verfiy_changes): Disallow renaming of hard regs in
13000         inline asms for register asm ("") declarations.
13001
13002 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
13003
13004         * fold-const.c (fold_unary): Fix comment.
13005
13006 2009-03-07  Jan Hubicka  <jh@suse.cz>
13007
13008         PR target/39361
13009         * tree-inline.c (setup_one_parameter): Do replacement of const
13010         argument by constant in SSA form.
13011
13012 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13013
13014         PR middle-end/38028
13015         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
13016         determine alignment passed to assign_stack_local.
13017         (assign_parms_unsplit_complex): Likewise.
13018         * except.c (sjlj_build_landing_pads): Likewise.
13019
13020 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
13021
13022         PR middle-end/39360
13023         * tree-flow.h (add_referenced_var): Return bool instead of void.
13024         * tree-dfa.c (add_referenced_var): Return result of
13025         referenced_var_check_and_insert call.
13026         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
13027         of referenced_var_check_and_insert.
13028
13029         PR debug/39372
13030         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
13031         (gen_variable_die): Emit DW_AT_location on abstract static variable's
13032         DIE, don't emit it if abstract origin already has it.
13033         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
13034         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
13035
13036 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13037
13038         * genpreds.c (needs_variable): Fix parentheses at variable name
13039         detection.
13040         (write_tm_constrs_h): Indent generated code.
13041
13042 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13043
13044         * doc/extend.texi (Function Attributes): Add documentation
13045         for isr attributes.
13046
13047 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
13048
13049         PR debug/39387
13050         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
13051         take locus from its DECL_SOURCE_LOCATION instead of input_location.
13052
13053 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
13054
13055         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
13056         the loop as bad.
13057
13058 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
13059
13060         PR debug/39379
13061         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
13062         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
13063
13064 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
13065
13066         * config/i386/i386.md (R8_REG, R9_REG): New constants.
13067         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
13068         constants instead of magic numbers.
13069         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
13070         (QI_REG_P): Ditto.
13071         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
13072         (x86_64_ms_abi_int_parameter_registers): Ditto.
13073         (x86_64_int_return_registers): Ditto.
13074         (ix86_maybe_switch_abi): Ditto.
13075         (ix86_expand_call): Ditto for clobbered_registers array.
13076         (ix86_hard_regno_mode_ok): Ditto.
13077         (x86_extended_QIreg_mentioned_p): Ditto.
13078
13079 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
13080
13081         PR tree-optimization/39349
13082         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
13083
13084         * combine.c (gen_lowpart_for_combine): Use omode when generating
13085         clobber.
13086
13087 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
13088
13089         PR rtl-optimization/39235
13090         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
13091
13092 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
13093
13094         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
13095
13096 2009-03-04  Richard Guenther  <rguenther@suse.de>
13097
13098         PR tree-optimization/39362
13099         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
13100         that occur in abnormal PHIs should be varying.
13101
13102 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
13103
13104         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
13105         Extend comments.
13106         (simple_iv):  Take loop as an argument instead of statement.
13107         * tree-scalar-evolution.h (simple_iv): Declaration changed.
13108         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
13109         to simple_iv.
13110         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
13111         Ditto.
13112         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
13113         * matrix-reorg.c (analyze_transpose): Ditto.
13114         * tree-data-ref.c (dr_analyze_innermost): Ditto.
13115         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13116         * tree-predcom.c (ref_at_iteration): Ditto.
13117         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
13118
13119 2009-03-04  Richard Guenther  <rguenther@suse.de>
13120
13121         PR tree-optimization/39358
13122         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
13123         escaped_id and callused_id.
13124         (solve_graph): Likewise.
13125
13126 2009-03-04  Richard Guenther  <rguenther@suse.de>
13127
13128         PR tree-optimization/39339
13129         * tree-sra.c (try_instantiate_multiple_fields): Make it
13130         no longer ICE on the above.
13131
13132 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
13133
13134         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
13135         that fits within Pmode.
13136
13137 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
13138
13139         PR middle-end/10109
13140         * tm.texi (LIBCALL_VALUE): Update description.
13141
13142 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
13143
13144         PR middle-end/34443
13145         * doc/extend.texi (section): Update description.
13146
13147 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
13148
13149         PR middle-end/39345
13150         * tree-inline.c (remapped_type): New.
13151         (can_be_nonlocal): Call remapped_type instead of remap_type.
13152
13153 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
13154
13155         PR fortran/39354
13156         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
13157         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
13158
13159 2009-03-03  Richard Guenther  <rguenther@suse.de>
13160
13161         PR middle-end/39272
13162         * tree.c (tree_nonartificial_location): New function.
13163         * tree.h (tree_nonartificial_location): Declare.
13164         * builtins.c (expand_builtin_memory_chk): Provide location
13165         of the call location for artificial function pieces.
13166         (maybe_emit_chk_warning): Likewise.
13167         (maybe_emit_sprintf_chk_warning): Likewise.
13168         (maybe_emit_free_warning): Likewise.
13169         * expr.c (expand_expr_real_1): Likewise.
13170
13171 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
13172
13173         PR tree-optimization/39343
13174         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
13175         COMPONENT_REF t has ARRAY_TYPE.
13176
13177 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
13178
13179         PR middle-end/39335
13180         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
13181         when the type precision of the induction variable should be
13182         larger than the type precision of nit.
13183         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
13184         * graphite.c (graphite_loop_normal_form): Same.
13185         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
13186
13187 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
13188
13189         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
13190         (*call_1_rex64_ms_sysv): Use named constants instead of magic
13191         numbers to describe clobbered registers.
13192         (*call_value_0_rex64_ms_sysv): Ditto.
13193         * config/i386/mmx.md (mmx_emms): Ditto.
13194         (mmx_femms): Ditto.
13195
13196 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
13197
13198         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
13199         of ABI_64.
13200
13201 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13202
13203         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
13204         (spu_section_type_flags): New function.
13205
13206 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
13207
13208         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
13209         reg_class_contents of FLOAT_REGS into a temporary.
13210
13211 2009-03-02  Richard Guenther  <rguenther@suse.de>
13212             Ira Rosen  <irar@il.ibm.com>
13213
13214         PR tree-optimization/39318
13215         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
13216         information to the vectorized statement.
13217
13218 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
13219
13220         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
13221         variable.  Use defined names instead of magic constants for REX SSE
13222         registers.
13223
13224 2009-03-01  Richard Guenther  <rguenther@suse.de>
13225
13226         PR tree-optimization/39331
13227         * omp-low.c (lower_send_shared_vars): Do not receive new
13228         values for the reference of DECL_BY_REFERENCE parms or results.
13229
13230 2009-03-01  Jan Hubicka  <jh@suse.cz>
13231
13232         PR debug/39267
13233         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
13234         BLOCK_NONLOCALIZED_VAR): New macros.
13235         (tree_block): Add nonlocalized_vars.
13236         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
13237         gen_decl_die): Add origin argument.  Allow generation of die with
13238         origin at hand only.
13239         (gen_member_die, gen_type_die_with_usage, force_decl_die,
13240         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
13241         of gen_*.
13242         (gen_block_die): Fix checking for unused blocks.
13243         (process_scope_var): Break out from .... ; work with origins only.
13244         (decls_for_scope) ... here; process nonlocalized list.
13245         (dwarf2out_ignore_block): Look for nonlocalized vars.
13246         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
13247         vars.
13248         (dump_scope_block): Dump them.
13249         * tree-inline.c (remap_decls): Handle nonlocalized vars.
13250         (remap_block): Likewise.
13251         (can_be_nonlocal): New predicate.
13252         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
13253
13254 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13255
13256         * configure: Regenerate.
13257
13258 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13259
13260         * optc-gen.awk: No need to duplicate option flags twice.
13261         Reuse help texts for duplicate options which do not have any.
13262
13263         * gcc.c (display_help): Document --version.
13264
13265         * gcc.c (main): If print_help_list and verbose_flag, ensure
13266         driver output comes before subprocess output.
13267
13268         * optc-gen.awk: Assign all remaining fields to help string,
13269         space-separated, for multi-line help in *.opt.
13270
13271         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
13272         -Wno-pedantic-ms-format is for MinGW targets only.
13273
13274         * doc/options.texi (Option file format): Fix bad indentation,
13275         restoring dropped sentence.
13276
13277 2009-02-28  Jan Hubicka  <jh@suse.cz>
13278
13279         * tree-inline.c (tree_function_versioning): Output debug info.
13280
13281 2009-02-28  Jan Hubicka  <jh@suse.cz>
13282
13283         PR debug/39267
13284         * tree-inline.c (setup_one_parameter): Do not copy propagate
13285         arguments when not optimizing.
13286
13287 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
13288
13289         PR target/39327
13290         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
13291         (avx_addsubv4df3): Likewise.
13292         (*avx_addsubv4sf3): Likewise.
13293         (sse3_addsubv4sf3): Likewise.
13294         (*avx_addsubv2df3): Likewise.
13295         (sse3_addsubv2df3): Likewise.
13296         (avx_unpckhps256): Correct item selectors.
13297         (avx_unpcklps256): Likewise.
13298         (avx_unpckhpd256): Likewise.
13299         (avx_unpcklpd256): Likewise.
13300
13301 2009-02-28  Jan Hubicka  <jh@suse.cz>
13302
13303         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
13304         static vars.
13305         (copy_arguments_for_versioning): If var is declared don't declare it.
13306         (tree_function_versioning): First setup substitutions and then copy
13307         args.
13308
13309 2009-02-27  Jan Hubicka  <jh@suse.cz>
13310
13311         PR debug/39267
13312         * cgraph.h (varpool_output_debug_info): Remove.
13313         * cgraphunit.c (varpool_output_debug_info): Remove.
13314         * dwarf2out.c (deferred_locations_struct): New struct
13315         (deferred_locations): New type.
13316         (deferred_locations_list): New static var.
13317         (deffer_location): New function.
13318         (gen_variable_die): Use it.
13319         (decls_for_scope): Output info on local static vars.
13320         (dwarf2out_finish): Process deferred locations.
13321         * varpool.c (varpool_output_debug_info): Remove.
13322
13323 2009-02-27  Jan Hubicka  <jh@suse.cz>
13324
13325         PR debug/39267
13326         * tree.h (TREE_PROTECTED): Fix comment.
13327         (BLOCK_HANDLER_BLOCK): Remove.
13328         (struct tree_block): Remove handler_block add body_block.
13329         (inlined_function_outer_scope_p): New.
13330         (is_body_block): Remove.
13331         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
13332         * dwarf2out.c (is_inlined_entry_point): Remove.
13333         (add_high_low_attributes): Use inlined_function_outer_scope_p.
13334         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
13335         code.
13336         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
13337         * gimplify.c (gimplify_expr): Gimplify body blocks.
13338         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
13339         block with multiple subblocks.
13340         (dump_scope_block): Prettier output; dump more flags and info.
13341         (dump_scope_blocks): New.
13342         (remove_unused_locals): Use dump_scope_blocks.
13343         * tree-flow.h (dump_scope_blocks): Declare.
13344         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
13345         * stmt.c (is_body_block): Remove.
13346         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
13347         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
13348
13349 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
13350
13351         PR middle-end/39308
13352         * graphite.c (graphite_loop_normal_form): Do not call
13353         number_of_iterations_exit from a gcc_assert.
13354
13355 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
13356
13357         * config/s390/s390.c (s390_swap_cmp): Look for conditional
13358         jumps if COND is NULL.
13359         (find_cond_jump): New function.
13360         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
13361         * config/s390/s390.md: Remove z10_cobra attribute value.
13362
13363 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
13364
13365         * config/alpha/alpha.h (alpha_expand_mov): Return false if
13366         force_const_mem returns NULL_RTX.
13367
13368 2009-02-26  Jan Hubicka  <jh@suse.cz>
13369
13370         PR debug/39267
13371         * cgraph.h (varpool_output_debug_info): Remove.
13372         * cgraphunit.c (varpool_output_debug_info): Remove.
13373         * dwarf2out.c (deferred_locations_struct): New struct
13374         (deferred_locations): New type.
13375         (deferred_locations_list): New static var.
13376         (deffer_location): New function.
13377         (gen_variable_die): Use it.
13378         (decls_for_scope): Output info on local static vars.
13379         (dwarf2out_finish): Process deferred locations.
13380         * varpool.c (varpool_output_debug_info): Remove.
13381
13382 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
13383
13384         PR rtl-optimization/39241
13385         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
13386         to subreg_offset_representable_p.
13387
13388 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
13389
13390         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
13391         execute function prototype.  Get f and nregs from max_reg_num
13392         and get_insns.  Remove the first backward pass as it's dead,
13393         guard the forward pass by flag_expensive_optimizations.
13394         (rest_of_handle_regmove): Delete.
13395         (pass_regmove): Replace it with regmove_optimize.
13396
13397 2009-02-25  Martin Jambor  <mjambor@suse.cz>
13398
13399         PR tree-optimization/39259
13400         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
13401         calls_alloca function flags.
13402         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
13403         calls are detected.
13404
13405 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
13406
13407         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
13408         flags_set_1_rtx, flags_set_1_set): Delete.
13409         (regmove_optimize): Do not call mark_flags_life_zones.
13410
13411 2009-02-24  Julian Brown  <julian@codesourcery.com>
13412
13413         PR target/35965
13414         * config/arm/arm.c (require_pic_register): Only set
13415         cfun->machine->pic_reg once per function.
13416
13417 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
13418
13419         * doc/invoke.texi (Link Options): Document an easier way to pass
13420         options that take arguments to the GNU linker using -Xlinker and -Wl.
13421
13422 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
13423
13424         PR target/33785
13425         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
13426
13427 2009-02-24  Richard Guenther  <rguenther@suse.de>
13428
13429         PR debug/39285
13430         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
13431
13432 2009-02-24  Richard Guenther  <rguenther@suse.de>
13433             Zdenek Dvorak  <ook@ucw.cz>
13434
13435         PR tree-optimization/39233
13436         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
13437         from converting them to a generic type.
13438
13439 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
13440
13441         PR tree-optimization/39260
13442         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
13443         contains a condition with a real type.
13444         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
13445
13446 2009-02-23  Jason Merrill  <jason@redhat.com>
13447
13448         PR c++/38880
13449         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
13450         narrowing_initializer_constant_valid_p.
13451         (narrowing_initializer_constant_valid_p): Don't return
13452         null_pointer_node for adding a pointer to itself.
13453
13454 2009-02-23  Jan Hubicka  <jh@suse.cz>
13455
13456         PR c/12245
13457         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
13458         resizing.
13459
13460 2009-02-23  Jan Hubicka  <jh@suse.cz>
13461
13462         PR tree-optimization/37709
13463         * tree.c (block_ultimate_origin): Move here from dwarf2out.
13464         * tree.h (block_ultimate_origin): Declare.
13465         * dwarf2out.c (block_ultimate_origin): Move to tree.c
13466         * tree-ssa-live.c (remove_unused_scope_block_p):
13467         Eliminate blocks containig no instructions nor live variables nor
13468         nested blocks.
13469         (dump_scope_block): New function.
13470         (remove_unused_locals): Enable removal of dead blocks by default;
13471         enable dumping at TDF_DETAILS.
13472
13473 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
13474
13475         * config/i386/i386.c (classify_argument): Don't allow COImode
13476         and OImode.
13477         (function_arg_advance_32): Don't allow OImode.
13478         (function_arg_32): Likewise.
13479         (function_value_32): Likewise.
13480         (return_in_memory_32): Likewise.
13481         (function_arg_64): Remove OImode comment.
13482
13483 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
13484
13485         PR target/39261
13486         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
13487         ix86_expand_vector_set for V4DImode in 64bit mode only.
13488         (ix86_expand_vector_init_one_var): Likewise.
13489
13490 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
13491
13492         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
13493
13494 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
13495
13496         PR bootstrap/39257
13497         * loop-iv.c: Revert last change.
13498         * emit-rtl.c: Likewise.
13499
13500 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
13501
13502         PR target/39256
13503         * config/i386/i386.c (type_natural_mode): Remove an extra
13504         space in the warning message.
13505         (function_value_32): Handle 32-byte vector modes.
13506         (return_in_memory_32): Likewise.
13507
13508 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
13509
13510         * loop-iv.c (truncate_value): New function.
13511         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
13512         of lowpart_subreg.
13513         (lowpart_subreg): Move to...
13514         * emit-rtl.c: ...here.
13515
13516 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
13517
13518         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
13519         accidental and undocumented change at revision 140860.
13520
13521 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
13522
13523         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
13524         take gimple_seq * arguments.
13525         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
13526         types_compatible_p langhook.
13527
13528 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
13529             Joseph Myers  <joseph@codesourcery.com>
13530
13531         * config/arm/arm.c (arm_builtin_va_list): New function.
13532         (arm_expand_builtin_va_start): Likewise.
13533         (arm_gimplify_va_arg_expr): Likewise.
13534         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
13535         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
13536         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
13537         (va_list_type): New variable.
13538         (arm_mangle_type): Mangle va_list_type appropriately.
13539
13540 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
13541
13542         PR middle-end/39157
13543         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
13544         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
13545         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
13546         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
13547         parameter to 1000 for -O1 by default.
13548         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
13549         parameter.
13550         * loop-invariant.c: Include params.h.
13551         (move_loop_invariants): Don't call move_single_loop_invariants on
13552         very large loops.
13553
13554 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
13555
13556         * calls.c (emit_library_call_value_1): Use slot_offset instead of
13557         offset when calculating bounds for indexing stack_usage_map.  Fixes
13558         a buffer overflow with certain target setups.
13559
13560 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
13561
13562         PR target/39240
13563         * calls.c (expand_call): Clear try_tail_call if caller and callee
13564         disagree in promotion of function return value.
13565
13566 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
13567
13568         PR target/39175
13569         * c-common.c (c_determine_visibility): If visibility changed and
13570         DECL_RTL has been already set, call make_decl_rtl to update symbol
13571         flags.
13572
13573 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
13574
13575         PR c++/39188
13576         * varasm.c (assemble_variable): Don't check DECL_NAME when
13577         globalizing a variable.
13578
13579 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
13580
13581         PR c/38483
13582         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
13583         expression before any __builtin_trap call.
13584         * c-typeck.c (build_function_call): Convert and check function
13585         arguments before generating a call to a trap.  Evaluate the
13586         function arguments before the trap.
13587
13588 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
13589
13590         PR target/39228
13591         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
13592         (UNSPEC_FXAM_MEM): New unspec.
13593         (fxam<mode>2_i387_with_temp): New insn and split pattern.
13594         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
13595         memory using fxam<mode>2_i387_with_temp to remove excess precision.
13596
13597 2009-02-19  Richard Guenther  <rguenther@suse.de>
13598
13599         PR tree-optimization/39207
13600         PR tree-optimization/39074
13601         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
13602         storedanything_tree): New.
13603         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
13604         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
13605         (build_succ_graph): Add edges from STOREDANYTHING to all
13606         non-direct nodes.
13607         (init_base_vars): Initialize STOREDANYTHING.
13608         (compute_points_to_sets): Free substitution info after
13609         building the succ graph.
13610         (ipa_pta_execute): Likewise.
13611
13612         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
13613         field.
13614         (do_ds_constraint): Do not add to special var or non-pointer
13615         field solutions.
13616         (type_could_have_pointers): Split out from ...
13617         (could_have_pointers): ... here.  For arrays use the element type.
13618         (create_variable_info_for): Initialize may_have_pointers.
13619         (new_var_info): Likewise.
13620         (handle_lhs_call): Make the HEAP variable unknown-sized.
13621         (intra_create_variable_infos): Use a type with pointers for
13622         PARM_NOALIAS, make it unknown-sized.
13623
13624 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
13625
13626         PR target/39224
13627         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
13628
13629 2009-02-18  Jason Merrill  <jason@redhat.com>
13630
13631         PR target/39179
13632         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
13633         value if DECL_EXTERNAL.
13634         * tree-sra.c (sra_walk_gimple_assign): Likewise.
13635         * target.h (gcc_target::binds_local_p): Clarify "module".
13636         * tree.h (TREE_PUBLIC): Clarify "module".
13637
13638 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
13639
13640         PR target/38891
13641         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
13642         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
13643
13644 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
13645
13646         PR target/39082
13647         * c.opt (Wabi): Support C and ObjC.
13648         (Wpsabi): New.
13649
13650         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
13651
13652         * config/i386/i386.c (classify_argument): Warn once about the ABI
13653         change when passing union with long double.
13654
13655         * doc/invoke.texi: Update -Wabi for warning psABI changes.
13656
13657 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
13658
13659         PR c/35447
13660         * c-parser.c (c_parser_compound_statement): Always enter and leave
13661         a scope.
13662
13663 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13664
13665         PR target/34587
13666         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
13667
13668 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
13669
13670         PR tree-optimization/36922
13671         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
13672         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
13673         Likewise.
13674
13675 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
13676
13677         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
13678         to 0 for EABI64.
13679
13680 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
13681
13682         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
13683
13684 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
13685
13686         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
13687         tree sharing.
13688
13689 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
13690             Richard Sandiford  <rdsandiford@googlemail.com>
13691
13692         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
13693         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
13694         (loongson_biadd): ...this.
13695
13696 2009-02-17  Richard Guenther  <rguenther@suse.de>
13697
13698         PR tree-optimization/39202
13699         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
13700         a var make sure to follow existing collapses.
13701
13702 2009-02-17  Richard Guenther  <rguenther@suse.de>
13703
13704         PR middle-end/39214
13705         * langhooks.c (lhd_print_error_function): Check for NULL block.
13706
13707 2009-02-17  Richard Guenther  <rguenther@suse.de>
13708
13709         PR tree-optimization/39204
13710         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
13711         of the PHI arg.
13712
13713 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
13714
13715         * config/soft-fp/double.h: Update from glibc CVS.
13716
13717 2009-02-17  Richard Guenther  <rguenther@suse.de>
13718
13719         PR tree-optimization/39207
13720         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
13721         strict-aliasing warnings for pointers pointing to NULL.
13722
13723 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
13724
13725         PR c/35446
13726         * c-parser.c (c_parser_braced_init): Call pop_init_level when
13727         skipping until next close brace.
13728
13729 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
13730
13731         PR target/37049
13732         * config/i386/i386.c (ix86_expand_push): Set memory alignment
13733         to function argument boundary.
13734
13735 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
13736
13737         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
13738         in the lea_add. Reload eventually constraints it properly.
13739         * config/picochip/constraints.md: Remove the target constraint
13740         "b", since it is not needed anymore.
13741
13742 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
13743
13744         * gthr-dce.h: Uglify function parameter and local variable names.
13745         * gthr-gnat.h: Likewise.
13746         * gthr-mipssde.h: Likewise.
13747         * gthr-nks.h: Likewise.
13748         * gthr-posix95.h: Likewise.
13749         * gthr-posix.h: Likewise.
13750         * gthr-rtems.h: Likewise.
13751         * gthr-single.h: Likewise.
13752         * gthr-solaris.h: Likewise.
13753         * gthr-tpf.h: Likewise.
13754         * gthr-vxworks.h: Likewise.
13755         * gthr-win32.h: Likewise.
13756
13757 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
13758
13759         PR target/39196
13760         * config/i386/i386.md: Restrict the new peephole2 to move
13761         between MMX/SSE registers.
13762
13763 2009-02-15  Richard Guenther  <rguenther@suse.de>
13764
13765         Revert
13766         2009-02-13  Richard Guenther  <rguenther@suse.de>
13767
13768         * configure.ac: Enable LFS.
13769         * configure: Re-generate.
13770         * config.in: Likewise.
13771
13772 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13773
13774         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
13775         spu_srqwbyte, spu_srqwbytebc): Define.
13776         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
13777         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
13778         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
13779         "shrqby_<mode>"): New insn-and-split patterns.
13780         * config/spu/spu.c (expand_builtin_args): Determine and return
13781         number of operands using spu_builtin_description data.
13782         (spu_expand_builtin_1): Use it.
13783
13784 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
13785
13786         PR target/38056
13787         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
13788         TARGET_CONST_GP.
13789
13790 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
13791
13792         PR target/39149
13793         * config/i386/i386.c (override_options): Correct warning
13794         messages for -malign-loops, -malign-jumps and -malign-functions.
13795
13796 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
13797
13798         PR target/39152
13799         * config/i386/i386.md: Restrict the new peephole2 to move
13800         between the general purpose registers.
13801
13802 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
13803
13804         PR target/39162
13805         * config/i386/i386.c (type_natural_mode): Add a new argument.
13806         Return the original mode and warn ABI change if vector size is 32byte.
13807         (function_arg_advance): Updated.
13808         (function_arg): Likewise.
13809         (ix86_function_value): Likewise.
13810         (ix86_return_in_memory): Likewise.
13811         (ix86_sol10_return_in_memory): Likewise.
13812         (ix86_gimplify_va_arg): Likewise.
13813         (function_arg_32): Don't warn ABX ABI change here.
13814         (function_arg_64): Likewise.
13815
13816 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
13817
13818         * loop-iv.c (implies_p): In the final case, test that operands 0
13819         of the two comparisons match.
13820
13821         * config/bfin/bfin.c (find_prev_insn_start): New function.
13822         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
13823         (find_next_insn_start): Move.
13824
13825 2009-02-13  Richard Guenther  <rguenther@suse.de>
13826
13827         * configure.ac: Enable LFS.
13828         * configure: Re-generate.
13829         * config.in: Likewise.
13830
13831 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
13832
13833         PR c/35444
13834         * c-parser.c (c_parser_parms_list_declarator): Discard pending
13835         sizes on syntax error after some arguments have been parsed.
13836
13837 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
13838
13839         * doc/invoke.texi (-fira): Remove.
13840
13841 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
13842
13843         * caller-save.c: Replace regclass.c with reginfo.c in comments.
13844         * recog.c: Likewise.
13845         * rtl.h: Likewise.
13846
13847 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
13848
13849         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
13850         (umul_ppmm): Likewise.
13851         (count_leading_zeros): Likewise.
13852         (count_trailing_zeros): Likewise.
13853         (UMUL_TIME): Likewise.
13854
13855 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
13856
13857         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
13858         soft-fp/t-softfp to tmake_file.
13859
13860         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
13861         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
13862         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
13863         IA64_BUILTIN_INFQ]: New.
13864         (ia64_init_builtins): Initialize __builtin_infq,
13865         __builtin_fabsq and __builtin_copysignq if not HPUX.
13866         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
13867         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
13868
13869         * config/ia64/lib1funcs.asm (__divtf3): Define only if
13870         SHARED is defined.
13871         (__fixtfti): Likewise.
13872         (__fixunstfti): Likewise.
13873         (__floattitf): Likewise.
13874
13875         * config/ia64/libgcc-glibc.ver: New.
13876         * config/ia64/t-fprules-softfp: Likewise.
13877         * config/ia64/sfp-machine.h: Likewise.
13878
13879         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
13880         (LIBGCC2_TF_CEXT): Likewise.
13881         (TF_SIZE): Likewise.
13882         (TARGET_INIT_LIBFUNCS): Likewise.
13883
13884         * config/ia64/t-glibc (SHLINB_MAPFILES):
13885         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
13886
13887 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
13888
13889         * config/i386/i386.c (construct_container): Rewrite processing
13890         BLKmode with X86_64_SSE_CLASS.
13891
13892 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
13893
13894         PR target/39152
13895         * config/i386/i386.md: Replace simplify_replace_rtx with
13896         replace_rtx in the new peephole2.
13897
13898 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
13899
13900         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
13901         loop unrolling do not happen at -O2.
13902
13903 2009-02-12  Michael Matz  <matz@suse.de>
13904
13905         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
13906
13907 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
13908
13909         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
13910         for -g3.
13911
13912 2009-02-12  Ben Elliston  <bje@au.ibm.com>
13913
13914         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
13915         patterns when updating the back chain.  Missed in the 2009-02-10
13916         change.
13917
13918 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
13919
13920         * doc/extend.texi (Decimal Floating Types): Update identifier of
13921         draft TR and list of missing support.
13922
13923 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
13924
13925         PR middle-end/39154
13926         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
13927         bit to variable length decl's flags, add it also to its
13928         pointer replacement variable.
13929
13930 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
13931             Jakub Jelinek  <jakub@redhat.com>
13932
13933         PR target/39118
13934         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
13935         (memory_blockage): New expander.
13936         (*memory_blockage): New insn pattern.
13937         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
13938         instead of general blockage at the end of function prologue when
13939         frame pointer is used to access red zone area.  Do not emit blockage
13940         when profiling, it is emitted in generic code.
13941         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
13942         function epilogue when frame pointer is used to access red zone area.
13943
13944 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
13945
13946         PR target/38824
13947         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
13948         by arithmetic with memory operands.
13949         * config/i386/predicates.md (commutative_operator): New.
13950
13951 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
13952
13953         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
13954         bulleted lists.
13955
13956 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
13957
13958         * alias.h (record_alias_subset): Declare.
13959         * alias.c (record_alias_subset): Make global.
13960
13961 2009-02-10  Nick Clifton  <nickc@redhat.com>
13962
13963         * tree-parloops.c: Change license to GPLv3.
13964         * ipa-struct-reorg.c: Change license to GPLv3.
13965         * ipa-struct-reorg.h: Change license to GPLv3.
13966
13967 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
13968
13969         PR c/39084
13970         * c-decl.c (start_struct): Return NULL on error.
13971
13972 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
13973
13974         PR middle-end/39124
13975         * cfgloopmanip.c (remove_path): Call remove_bbs after
13976         cancel_loop_tree, not before it.
13977
13978         PR target/39139
13979         * function.h (struct function): Add has_local_explicit_reg_vars bit.
13980         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
13981         VAR_DECLs were seen.
13982         * tree-ssa-live.c (remove_unused_locals): Recompute
13983         cfun->has_local_explicit_reg_vars.
13984         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
13985         copies or clearings if cfun->has_local_explicit_reg_vars.
13986
13987 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
13988
13989         PR target/39118
13990         * config/i386/i386.c (expand_prologue): Emit blockage at the end
13991         of function prologue when frame pointer is used to access
13992         red zone area.
13993
13994 2009-02-10  Richard Guenther  <rguenther@suse.de>
13995
13996         PR middle-end/39127
13997         * gimplify.c (gimple_regimplify_operands): Always look if
13998         we need to create a temporary.
13999
14000 2009-02-10  Richard Guenther  <rguenther@suse.de>
14001
14002         PR tree-optimization/39132
14003         * tree-loop-distribution.c (todo): New global var.
14004         (generate_memset_zero): Trigger TODO_rebuild_alias.
14005         (tree_loop_distribution): Return todo.
14006
14007 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
14008
14009         PR target/39119
14010         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
14011         (x86_64_reg_class_name): Removed.
14012         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
14013         first one isn't X86_64_SSE_CLASS or any other ones aren't
14014         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
14015         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
14016         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
14017         and 3 X86_64_SSEUP_CLASS.
14018         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
14019         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
14020
14021 2009-02-10  Ben Elliston  <bje@au.ibm.com>
14022
14023         * config/rs6000/rs6000.md (allocate_stack): Always use an update
14024         form instruction to update the stack back chain word, even if the
14025         user has disabled the generation of update instructions.
14026         (movdi_<mode>_update_stack): New.
14027         (movsi_update_stack): Likewise.
14028         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
14029         always use an update form instruction to update the stack back
14030         chain word.
14031
14032 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
14033
14034         PR middle-end/38953
14035         * graphite.c (if_region_set_false_region): After moving a region in
14036         the false branch of a condition, remove the empty dummy basic block.
14037         (gloog): Remove wrong fix for PR38953.
14038
14039 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14040
14041         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
14042         generation due to implicit sign extension.
14043
14044 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
14045
14046         PR middle-end/38981
14047         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
14048         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
14049
14050 2009-02-09  Richard Guenther  <rguenther@suse.de>
14051
14052         PR middle-end/35202
14053         * convert.c (convert_to_real): Disable (float)fn((double)x)
14054         to fnf(x) conversion if errno differences may occur and
14055         -fmath-errno is set.
14056
14057 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
14058
14059         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
14060         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
14061         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14062
14063 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
14064
14065         PR c/35434
14066         * c-common.c (handle_alias_attribute): Disallow attribute for
14067         anything not a FUNCTION_DECL or VAR_DECL.
14068
14069 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
14070
14071         PR c/39035
14072         * real.c (do_compare): Special-case compare of zero against
14073         decimal float value.
14074
14075 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
14076
14077         PR c/36432
14078         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
14079         as indicating flexible array members unless the field itself is
14080         being declarared as the incomplete array.
14081
14082 2009-02-06  Jan Hubicka  <jh@suse.cz>
14083
14084         PR tree-optimization/38844
14085         * ipa-inline.c (try_inline): Stop inlining recursion when edge
14086         is already inlined.
14087
14088 2009-02-06  Richard Guenther  <rguenther@suse.de>
14089
14090         PR middle-end/38977
14091         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
14092         fork because we may expand it as __gcov_fork.
14093
14094 2009-02-06  Nick Clifton  <nickc@redhat.com>
14095
14096         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
14097
14098 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
14099
14100         PR tree-optimization/35659
14101         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
14102         vn_phi_eq): Shortcut if hashcode does not match.
14103         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
14104         NULL operands.
14105         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
14106         and avoid iterative_hash_expr.
14107         (FOR_EACH_VALUE_ID_IN_SET): New.
14108         (value_id_compare): Remove.
14109         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
14110         sort expressions by value id.
14111
14112 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
14113
14114         PR target/38991
14115         * config/sh/predicates.md (general_movsrc_operand): Don't check
14116         the subreg of system registers here.
14117
14118 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
14119
14120         PR c++/39106
14121         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
14122         on the copied decl.
14123
14124 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
14125
14126         PR rtl-optimization/39110
14127         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
14128         addresses, not aligned ones.
14129
14130 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
14131             Richard Guenther  <rguenther@suse.de>
14132
14133         PR tree-optimization/39100
14134         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
14135         comment says and add edges.
14136
14137 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
14138
14139         PR c/35435
14140         * c-common.c (handle_tls_model_attribute): Ignore attribute for
14141         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
14142
14143 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
14144
14145         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
14146         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
14147         register_bb_in_sese, new_sese, free_sese): Moved.
14148         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
14149         outermost_loop_in_scop, build_scop_iteration_domain,
14150         expand_scalar_variables_ssa_name, get_vdef_before_scop,
14151         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
14152         Use loop_in_sese_p instead of loop_in_scop_p.
14153         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
14154         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
14155         (scopdet_basic_block_info): Fix bug in scop detection.
14156         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
14157         eq_loop_to_cloog_loop): Remove.
14158         (nb_loops_around_loop_in_scop, nb_loop
14159         ref_nb_loops): Moved here...
14160         * graphite.h (ref_nb_loops): ... from here.
14161         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
14162         (loop_domain_dim, loop_iteration_vector_dim): Remove.
14163         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
14164         * testsuite/gcc.dg/graphite/scop-19.c: New
14165
14166 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
14167             Hans-Peter Nilsson  <hp@axis.com>
14168
14169         PR rtl-optimization/37889
14170         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
14171         Move offset handling from PLUS to before the switch.  Use new
14172         arguments when considering SYMBOL_REFs too.
14173         (rtx_addr_can_trap_p): Pass dummy offset and size.
14174         (enum may_trap_p_flags): Remove.
14175         (may_trap_p_1): Pass size from MEM_SIZE.
14176
14177         PR rtl-optimization/38921
14178         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
14179         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
14180         * rtlanal.c (may_trap_after_code_motion_p): Delete.
14181         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
14182
14183 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
14184
14185         AVX Programming Reference (January, 2009)
14186         * config/i386/sse.md (*vpclmulqdq): New.
14187
14188 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
14189
14190         PR tree-optimization/38977
14191         PR gcov-profile/38292
14192         * calls.c (special_function_p): Disregard __builtin_ prefix.
14193
14194 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
14195
14196         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
14197         non-indexable addresses even before reload.
14198
14199 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
14200
14201         PR c/29129
14202         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
14203         as having variable size.  Do not give an error for unnamed
14204         parameters with [*] declarators.  Give a warning for type names
14205         with [*] declarators and mark them as variable size.
14206         * c-parser.c (c_parser_sizeof_expression): Do not give an error
14207         for sizeof applied to [*] type names.
14208
14209 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14210
14211         PR C++/36607
14212         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
14213
14214 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
14215
14216         * gcc.c (process_command): Update copyright notice dates.
14217         * gcov.c (print_version): Likewise.
14218         * gcov-dump.c (print_version): Likewise.
14219         * mips-tfile.c (main): Likewise.
14220         * mips-tdump.c (main): Likewise.
14221
14222 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
14223
14224         PR c/35433
14225         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
14226         for composite type involving a zero-length array type.
14227
14228 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
14229
14230         PR target/35318
14231         * function.c (match_asm_constraints_1): Skip over
14232         initial optional % in the constraint.
14233
14234         PR inline-asm/39059
14235         * c-parser.c (c_parser_postfix_expression): If fixed point is not
14236         supported, don't accept FIXED_CSTs.
14237         * c-decl.c (finish_declspecs): Error if fixed point is not supported
14238         and _Sat is used without _Fract/_Accum.  Set specs->type to
14239         integer_type_node for cts_fract/cts_accum if fixed point is not
14240         supported.
14241
14242 2009-02-02  Catherine Moore  <clm@codesourcery.com>
14243
14244         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
14245
14246 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
14247
14248         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
14249         (ABI_HAS_64BIT_SYMBOLS): Use it.
14250         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
14251
14252 2009-02-02  Paul Brook  <paul@codesourcery.com>
14253
14254         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
14255
14256 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
14257
14258         PR inline-asm/39058
14259         * recog.h (asm_operand_ok): Add constraints argument.
14260         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
14261         recurse on matching constraint.
14262         (check_asm_operands): Pass constraints as 3rd argument to
14263         asm_operand_ok.  Don't look up matching constraint here.
14264         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
14265         to asm_operand_ok.
14266
14267 2009-02-02  Ben Elliston  <bje@au.ibm.com>
14268
14269         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
14270         TARGET_NARROW_VOLATILE_BITFIELD macro names.
14271
14272 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14273
14274         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
14275         information.  Remove some obsolete information.  Reorganize.
14276
14277         * config/pa/fptr.c: Revert license to GPL 2.
14278         * config/pa/milli64.S: Likewise.
14279
14280 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
14281
14282         PR target/38904
14283         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
14284         LIBRARY name in, instead of hard-coding it.
14285         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
14286         extra target make frag to tmake_files according to EH model.
14287         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
14288         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
14289         frags that define makefile variable EH_MODEL appropriately.
14290         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
14291         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
14292         to "-sjlj" according to type of EH configured.
14293         (LIBGCC_SONAME):  Concatenate it to shared library base name.
14294         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
14295         to "_sjlj" according to type of EH configured.
14296         (LIBGCC_SONAME):  Concatenate it to shared library base name.
14297         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
14298         (SHLIB_LINK):  Add missing semicolon to if-else construct.
14299         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
14300         string value of "pe_dll" command-line option.
14301         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
14302         (SHLIB_SONAME):  Use it when overriding t-cygming default.
14303         (SHLIB_IMPLIB):  Override t-cygming default.
14304         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
14305         string value of "pe_dll" command-line option.
14306
14307 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
14308
14309         PR target/38952
14310         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
14311         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
14312
14313 2009-01-31  Richard Guenther  <rguenther@suse.de>
14314
14315         PR tree-optimization/38937
14316         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
14317         computing the transitive closure.
14318
14319 2009-01-30  Richard Guenther  <rguenther@suse.de>
14320
14321         PR tree-optimization/39041
14322         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
14323         Propagate variable indices only if the types match for this stmt.
14324
14325 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
14326
14327         PR target/39013
14328         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
14329         inline but never defined.
14330
14331 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
14332
14333         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
14334         (*insv_h_di_reg_extimm): New insn.
14335         (*insv_l<mode>_reg_extimm): New insn.
14336
14337 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
14338
14339         * config/picochip/picochip.c (flag_conserve_stack): set
14340         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
14341         fconserve-stack. Reduce call-overhead used by inliner.
14342
14343 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
14344
14345         PR/38157
14346         * common.opt (flag_conserve_stack): Initialised to zero.
14347
14348 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
14349
14350         PR/39002
14351         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
14352         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
14353         method.
14354
14355 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
14356
14357         * ira-color.c (allocno_reload_assign): Update comments.
14358         * regmove.c (regmove_optimize): Likewise.
14359
14360         * ra.h: Removed.
14361
14362 2009-01-29  Robert Millan  <rmh@aybabtu.com>
14363
14364         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
14365         * config/i386/kopensolaris-gnu.h: New file.  Undefine
14366         `MD_UNWIND_SUPPORT'.
14367         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
14368
14369 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
14370
14371         PR tree-optimization/39007
14372         * tree-loop-distribution.c (generate_builtin): Use
14373         recompute_dominator to compute the immediate dominator of the
14374         basic block just after the loop.
14375
14376 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14377
14378         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
14379         (ASM_OUTPUT_DWARF_PCREL): Define.
14380
14381 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
14382
14383         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
14384         * doc/passes.texi: Remove entries about regclass, local-alloc, and
14385         global.  Modify entries about regmove and IRA.
14386
14387         * ra-conflict.c: Remove the file.
14388
14389         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
14390
14391         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
14392         (pass_regclass_init): Rename to pass_reginfo_init.
14393
14394         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
14395
14396         * toplev.h (flag_ira): Remove.
14397
14398         * caller-save.c (setup_save_areas): Remove flag_ira.
14399
14400         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
14401
14402         * global.c: Remove the file.
14403
14404         * opts.c (decode_options): Remove flag_ira.
14405
14406         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
14407
14408         * regmove.c: Modify file description.
14409         (find_use_as_address, try_auto_increment): Define them only if
14410         AUTO_INC_DEC is defined.
14411         (replacement_quality, replace_in_call_usage, fixup_match_1,
14412         stable_and_no_regs_but_for_p): Remove.
14413         (reg_set_in_bb): Make it static.
14414         (regmove_optimize): Remove flag_ira and code which worked for
14415         !flag_ira.
14416
14417         * local-alloc.c: Remove the file.
14418
14419         * common.opt (fira): Remove.
14420
14421         * ira.c: Include except.h.
14422         (eliminable_regset): Move from global.c.
14423         (mark_elimination): Ditto.  Remove flag_ira.
14424         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
14425         equiv_mem_modified, validate_equiv_mem_from_store,
14426         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
14427         contains_replace_regs, memref_referenced_p, memref_used_between_p,
14428         no_equiv, recorded_label_ref): Move from local-alloc.c.
14429         (update_equiv_regs): Ditto.  Make it static.
14430         (print_insn_chain, print_insn_chains): Move it from global.c.
14431         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
14432         (build_insn_chain): Ditto.  Make it static.
14433         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
14434         Rename to init_live_subregs.
14435         (gate_ira): Remove flag_ira.
14436
14437         * regclass.c: Rename reginfo.c.  Change file description.
14438         (FORBIDDEN_INC_DEC_CLASSES): Remove.
14439         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
14440         (init_reg_sets_1): Remove code for evaluation of
14441         reg_class_superclasses and losing_caller_save_reg_set.
14442         (init_regs): Remove init_reg_autoinc.
14443         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
14444         ok_for_base_p_nonstrict): Remove.
14445         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
14446         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
14447         corresponding entries.
14448         (dump_regclass, record_operand_costs, scan_one_insn,
14449         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
14450         record_address_regs, auto_inc_dec_reg_p): Remove.
14451         (gt-regclass.h): Rename to gt-reginfo.h.
14452
14453         * rtl.h (dump_global_regs, retry_global_alloc,
14454         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
14455
14456         * Makefile.in (RA_H): Remove.
14457         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
14458         Rename regclass.o to reginfo.o.
14459         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
14460         gt-reginfo.h.
14461         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
14462         (GTFILES): Rename regclass.c to reginfo.c.
14463
14464         * passes.c (init_optimization_passes): Remove pass_local_alloc and
14465         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
14466
14467         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
14468         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
14469         Remove flag_ira.
14470         (finish_spills): Ditto.  Remove code for !flag_ira.
14471
14472 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
14473
14474         PR middle-end/35854
14475         * doc/invoke.texi (rtl debug options): Complete rewrite.
14476         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
14477         to auto_inc_dec".
14478         * mode-switching.c (pass_mode_switching): Rename pass from
14479         "mode-sw" to "mode_sw".
14480         * except.c (pass_convert_to_eh_ranges): Rename pass from
14481         "eh-ranges" to "eh_ranges".
14482         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
14483         to "subreg1".
14484
14485
14486 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
14487             Alexander Monakov  <amonakov@ispras.ru>
14488
14489         PR middle-end/38857
14490         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
14491         register.
14492         (move_exprs_to_boundary): Change return type and pass through
14493         should_move from move_op.  Relax assert.  Update usage ...
14494         (schedule_expr_on_boundary): ... here.  Use should_move instead of
14495         cant_move.
14496         (move_op_orig_expr_found): Indicate that insn was disconnected from
14497         stream.
14498         (code_motion_process_successors): Do not call after_merge_succs
14499         callback if original expression was not found when traversing any of
14500         the branches.
14501         (code_motion_path_driver): Change return type.  Update prototype.
14502         (move_op): Update comment.  Add a new parameter (should_move).  Update
14503         prototype.  Set *should_move based on indication provided by
14504         move_op_orig_expr_found.
14505
14506 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
14507
14508         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
14509         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
14510         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
14511         * config/rs6000/rs6000.c (rs6000_override_options): Default
14512         avoid-indexed-addresses on for Power6, off for everything else.
14513         (avoiding_indexed_address_p): New function.
14514         (rs6000_legitimize_address): Use it.
14515         (rs6000_legitimate_address): Likewise.
14516         * config/rs6000/rs6000.md (movXX_updateX): Likewise
14517
14518 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
14519
14520         PR tree-optimization/38997
14521         * tree-loop-distribution.c (generate_memset_zero): Use
14522         POINTER_PLUS_EXPR for a pointer addition.
14523
14524 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
14525
14526         * config/s390/s390.md (bswap<mode>2): New pattern added.
14527
14528 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
14529
14530         * config/s390/s390.md (*tls_load_31): Added type attribute.
14531
14532 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
14533
14534         * config/s390/s390.md: Fix a few comments.
14535
14536 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
14537
14538         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
14539         (*tm<mode>_full): Fixed z10prop attribute.
14540         (*tst<mode>_extimm): Fixed z10prop attribute.
14541         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
14542         (*tstqiCCT_cconly): Fixed z10prop attribute.
14543         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
14544         (*movsi_larl): Fixed z10prop attribute.
14545         (*movsi_zarch): Fixed z10prop attribute.
14546         (*movsi_eas): Fixed z10prop attribute.
14547         (*movhi): Fixed z10prop attribute.
14548         (*movqi): Fixed z10prop attribute.
14549         (*movstrictqi): Fixed z10prop attribute.
14550         (*mov<mode>): Fixed z10prop attribute.
14551         (*movcc): Fixed z10prop attribute.
14552         (*sethighpartdi_64): Fixed z10prop attribute.
14553         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
14554         (*negdi2_sign_cc): Fixed z10prop attribute.
14555         (*negdi2_sign): Fixed z10prop attribute.
14556         (*absdi2_sign_cc): Fixed z10prop attribute.
14557         (*absdi2_sign): Fixed z10prop attribute.
14558         (*negabsdi2_sign_cc): Fixed z10prop attribute.
14559         (*negabsdi2_sign): Fixed z10prop attribute.
14560         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
14561         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
14562         (doloop_si64): Fixed z10prop attribute.
14563         (doloop_si31): Fixed z10prop attribute.
14564         (doloop_long): Fixed z10prop attribute.
14565         (indirect_jump): Fixed z10prop attribute.
14566         (nop): Fixed z10prop attribute.
14567         (main_base_64): Fixed z10prop attribute.
14568         (reload_base_64): Fixed z10prop attribute.
14569
14570 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
14571
14572         PR rtl-optimization/38740
14573         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
14574         if !optimize.
14575         * config/mips/mips.c (mips_reorg): Likewise.
14576
14577 2009-01-28  Richard Guenther  <rguenther@suse.de>
14578
14579         PR tree-optimization/38926
14580         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
14581         with the correct value id to a value.
14582         (do_regular_insertion): Use the value number of edoubleprime
14583         for the value number of the expr.
14584
14585         Revert
14586         2008-08-21  Richard Guenther  <rguenther@suse.de>
14587
14588         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
14589         a PHI ask VN if it is already available.
14590         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
14591         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
14592
14593 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
14594
14595         PR middle-end/38934
14596         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
14597         set to varying whenever max has TREE_OVERFLOW set, similarly
14598         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
14599
14600 2009-01-28  Richard Guenther  <rguenther@suse.de>
14601
14602         PR middle-end/38908
14603         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
14604         uninitialized aggregate uses in call arguments.
14605
14606 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
14607
14608         PR tree-optimization/38984
14609         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
14610         the nothing_id variable if -fno-delete-null-pointer-checks.
14611
14612 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
14613
14614         PR target/38988
14615         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
14616         (set_got_offset_rex64): Ditto.
14617
14618 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
14619
14620         PR target/38941
14621         * doc/extend.texi: Improve local variable with asm reg.
14622
14623 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
14624
14625         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
14626         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
14627         was not supplied then set warn_packed_bitfield_compat to the
14628         default value of 1.
14629         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
14630         against 1.
14631
14632 2009-01-27  Richard Guenther  <rguenther@suse.de>
14633
14634         PR tree-optimization/38503
14635         * cfgexpand.c (expand_gimple_basic_block): Ignore
14636         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
14637         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
14638         variables that cannot have TBAA applied.
14639         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
14640         statements.
14641
14642 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
14643
14644         PR middle-end/38969
14645         * calls.c (initialize_argument_information): Do not wrap complex
14646         arguments in SAVE_EXPR.
14647
14648 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
14649
14650         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
14651         (INSTALL_LIBGCC): Revert typo commit.
14652
14653 2009-01-26  Richard Guenther  <rguenther@suse.de>
14654
14655         PR tree-optimization/38745
14656         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
14657         from special handling.
14658
14659 2009-01-26  Richard Guenther  <rguenther@suse.de>
14660
14661         PR tree-optimization/38745
14662         * tree-ssa.c (execute_update_addresses_taken): Do not include
14663         variables that cannot possibly be a register in not_reg_needs.
14664         Do not clear TREE_ADDRESSABLE on vars that may not become
14665         registers.
14666         * tree-ssa.c (update_alias_info_1): Include those in the set
14667         of addressable vars.
14668
14669 2009-01-26  Richard Guenther  <rguenther@suse.de>
14670
14671         PR middle-end/38851
14672         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
14673         * tree-ssa-dse.c: Include langhooks.h
14674         (execute_simple_dse): Remove stores with zero size.
14675
14676 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
14677
14678         PR c/38957
14679         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
14680         as PLUS_EXPR.
14681
14682 2009-01-24  Julian Brown  <julian@codesourcery.com>
14683
14684         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
14685         config/arm/linux-atomic.c.
14686         * config/arm/linux-atomic.c: New.
14687
14688 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
14689
14690         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
14691         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
14692         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
14693
14694 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
14695
14696         PR c/38938
14697         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
14698         properly.
14699
14700 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
14701
14702         PR tree-optimization/38953
14703         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
14704         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
14705         (gloog): Split the exit of the scop when the scop exit is a loop exit.
14706         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
14707         changed the CFG.
14708
14709 2009-01-24  Paul Brook  <paul@codesourcery.com>
14710
14711         * config/arm/neon.md (neon_type): Move to arm.md.
14712         (neon_mov<VSTRUCT>): Add neon_type attribute.
14713         * config/arm/arm.md (neon_type): Move to here.
14714         (conds): Add "unconditioal" and use as default for NEON insns.
14715
14716 2009-01-24  Ben Elliston  <bje@au.ibm.com>
14717
14718         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
14719         void *' warning from -Wc++-compat.
14720         * Makefile.in (dominance.o-warn): Remove.
14721
14722 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
14723
14724         PR tree-optimization/38932
14725         * fold-const.c (fold_unary_ignore_overflow): New.
14726         * tree.h (fold_unary_ignore_overflow): Declare.
14727         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
14728         * tree-ssa-sccvn.c (visit_reference_op_load,
14729         simplify_unary_expression): Likewise.
14730
14731 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
14732
14733         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
14734         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
14735         regardless of their type.
14736         * c-common.c (handle_packed_attribute): Don't ignore packed on
14737         bitfields.
14738         * c.opt (Wpacked-bitfield-compat): New warning option.
14739         * stor-layout.c (place_field): Warn if offset of a field changed.
14740         * doc/extend.texi (packed): Mention the ABI change.
14741         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
14742         (Warning Options): Add it to the list.
14743
14744 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
14745
14746         * c-opts.c (c_common_post_options): Fix a typo in comments.
14747
14748 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
14749
14750         PR middle-end/38615
14751         * gimplify.c (gimplify_init_constructor): Fix promotion of const
14752         variables to static.
14753         * doc/invoke.texi (-fmerge-all-constants): Update description.
14754
14755 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
14756
14757         PR target/38931
14758         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
14759         (*movdi_1_rex64): Use type "mmx" for alternative 5.
14760
14761 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
14762
14763         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
14764         a word boundary.
14765         (LOCAL_ALIGNMENT): Similarly.
14766
14767 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
14768             Joseph Myers  <joseph@codesourcery.com>
14769
14770         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
14771         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
14772         * config/arm/arm-tune.md: Regenerate.
14773         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
14774         -march=iwmmxt2.
14775
14776 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
14777
14778         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
14779         version number to five.
14780
14781 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
14782
14783         PR c++/38930
14784         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
14785         * c-common.c (set_underlying_type): Likewise.
14786         (is_typedef_decl ): Likewise
14787         * tree.h: Likewise
14788         (set_underlying_type): Likewise.
14789         (is_typedef_type): Likewise.
14790
14791 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
14792
14793         PR middle-end/38587
14794         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
14795         crossing setjmps.
14796
14797 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
14798
14799         PR bootstrap/37660
14800         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
14801         (LIBGCC_SPEC):  Don't define.
14802         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
14803
14804 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
14805
14806         PR rtl-optimization/38879
14807         * alias.c (base_alias_check): Unaligned access via AND address can
14808         alias all surrounding object types except those with sizes equal
14809         or wider than the size of unaligned access.
14810
14811 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
14812
14813         PR c++/26693
14814         * c-decl.c (clone_underlying_type): Move this ...
14815         * c-common.c (set_underlying_type): ... here.
14816         Also, make sure the function properly sets TYPE_STUB_DECL() on
14817         the newly created typedef variant type.
14818         (is_typedef_decl ): New entry point.
14819         * tree.h: Added a new member member_types_needing_access_check to
14820         struct tree_decl_non_common.
14821         (set_underlying_type): New entry point.
14822         (is_typedef_type): Likewise.
14823
14824 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
14825
14826         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
14827         Check whether two instructions have memory references that
14828         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
14829         are helper functions for traversing.
14830         * alias.h (insn_alias_sets_confilict_p): New prototypes.
14831         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
14832         not to draw dependency edge for instructions with non-conflicting
14833         alias sets.
14834
14835 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
14836
14837         PR other/38758
14838         * longlong.h: Update copyright years.  Use soft-fp license notice.
14839         Sync __clz_tab declaration with glibc.
14840
14841 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
14842
14843         PR target/30687
14844         * doc/extend.texi (syscall_linkage): New.
14845         (version_id): Modify.
14846
14847 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
14848             Richard Guenther  <rguenther@suse.de>
14849
14850         PR tree-optimization/38747
14851         PR tree-optimization/38748
14852         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
14853         conversion if the base address is an indirect reference and the
14854         aliasing sets could cause issues.
14855
14856 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
14857
14858         * common.opt (fgraphite, fgraphite-identity): Add comment for
14859         explaining why these options are not documented.
14860
14861 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
14862
14863         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
14864         gimple_call_lhs is NULL.
14865
14866 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
14867
14868         PR target/38868
14869         * emit-rtl.c (adjust_address_1): Make sure memref is never
14870         overwritten.
14871
14872 2009-01-20  Ben Elliston  <bje@au.ibm.com>
14873
14874         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14875         const qualifier from arg parameter. Remove unnecessary cast to char *.
14876         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
14877         const qualifier from arg 2.
14878
14879 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
14880
14881         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
14882
14883 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
14884
14885         PR c/38869
14886         * rtl.h (reinit_regs): New prototype.
14887         * regclass.c: Include ira.h.
14888         (reinit_regs): New.
14889         * Makefile.in (regclass.o): Add ira.h.
14890         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
14891
14892 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
14893
14894         PR target/38736
14895         * c-common.c (handle_aligned_attribute): Use
14896         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
14897         default alignment value.
14898
14899         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
14900
14901         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
14902         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
14903
14904         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
14905         __BIGGEST_ALIGNMENT__.
14906
14907         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
14908
14909 2009-01-18  Richard Guenther  <rguenther@suse.de>
14910
14911         PR tree-optimization/38819
14912         * tree-flow.h (operation_could_trap_helper_p): Declare.
14913         * tree-eh.c (operation_could_trap_helper_p): Export.
14914         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
14915         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
14916         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
14917         are about to insert a possibly trapping instruction and fail
14918         in this case.
14919
14920 2009-01-18  Andreas Schwab  <schwab@suse.de>
14921
14922         * doc/install.texi (Configuration): Remove obsolete paragraph
14923         about use of --with-gnu-ld with --with-gnu-as.
14924
14925 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
14926
14927         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
14928         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
14929         Follow spelling conventions.
14930
14931 2009-01-18  Ben Elliston  <bje@au.ibm.com>
14932
14933         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
14934         C++ warning about implicit conversion from void * to struct
14935         bitmap_head_def *.
14936         (bitmap_obstack_free): Likewise for bitmap_element *.
14937         * Makefile.in (bitmap.o-warn): Remove.
14938
14939 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
14940
14941         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
14942
14943 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
14944             Tobias Grosser  <tobi.grosser@amd.com>
14945
14946         * graphite.c (graphite_trans_scop_block): Do not block single
14947         nested loops.
14948
14949 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
14950
14951         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
14952         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
14953         test with assertion.
14954
14955 2009-01-16  Richard Guenther  <rguenther@suse.de>
14956
14957         PR tree-optimization/38835
14958         PR middle-end/36227
14959         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
14960         and INT + PTR -> (INT)(PTR p+ INT) folding.
14961         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
14962
14963 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
14964
14965         PR target/38554
14966         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
14967         the subreg from a lowpart subreg if it is also casting the value.
14968
14969 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14970             Tobias Grosser  <tobi.grosser@amd.com>
14971
14972         * graphite.c (compare_prefix_loops): New.
14973         (build_scop_canonical_schedules): Rewritten.
14974         (graphite_transform_loops): Move build_scop_canonical_schedules
14975         after build_scop_iteration_domain.
14976
14977 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
14978             Tobias Grosser  <tobi.grosser@amd.com>
14979
14980         * graphite.c (add_conditions_to_domain): Add the loops to
14981         the dimension of the iteration domain.  Do copy the domain
14982         only when it exists.
14983         (build_scop_conditions_1): Do not call add_conditions_to_domain.
14984         (add_conditions_to_constraints): New.
14985         (can_generate_code_stmt, can_generate_code): Removed.
14986         (gloog): Do not call can_generate_code.
14987         (graphite_transform_loops): Call add_conditions_to_constraints
14988         after building the iteration domain.
14989
14990 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
14991
14992         PR tree-optimization/38789
14993         * tree-ssa-threadedge.c
14994         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
14995         __builtin_constant_p.
14996
14997 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
14998
14999         * dce.c (delete_unmarked_insns): Reversed the order that insns are
15000         examined before deleting them.
15001
15002 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
15003
15004         * function.c (aggregate_value_p): Correctly extract the function
15005         type from CALL_EXPR_FN lookup.
15006
15007 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
15008
15009         * config/picochip/picochip.c (picochip_override_options): Revert
15010         CFI asm flag disable commited previously.
15011
15012 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
15013             Tobias Grosser  <tobi.grosser@amd.com>
15014             Jan Sjodin  <jan.sjodin@amd.com>
15015
15016         * graphite.c (scan_tree_for_params): On substractions negate
15017         all the coefficients of the term.
15018         (clast_to_gcc_expression_red): New.  Handle reduction expressions
15019         of more than two operands.
15020         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
15021         (get_vdef_before_scop): Handle also the case of default definitions.
15022
15023 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
15024
15025         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
15026         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
15027         Also use them when walking CALL_INSN_FUNCTION_USAGE.
15028
15029 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
15030             Joey Ye  <joey.ye@intel.com>
15031
15032         PR middle-end/37843
15033         * cfgexpand.c (expand_stack_alignment): Don't update stack
15034         boundary nor check incoming stack boundary here.
15035         (gimple_expand_cfg): Update stack boundary and check incoming
15036         stack boundary here.
15037
15038 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
15039
15040         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
15041
15042 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
15043
15044         PR rtl-optimization/38245
15045         * calls.c (expand_call): Add stack arguments to
15046         CALL_INSN_FUNCTION_USAGE even for pure calls (when
15047         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
15048         in regs and partially in memory or BLKmode arguments.
15049         (emit_library_call_value_1): Add stack arguments to
15050         CALL_INSN_FUNCTION_USAGE even for pure calls (when
15051         ACCUMULATE_OUTGOING_ARGS).
15052         * dce.c: Include tm_p.h.
15053         (find_call_stack_args): New function.
15054         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
15055         argument.
15056         (mark_insn): Call find_call_stack_args for CALL_Ps.
15057         (prescan_insns_for_dce): Walk insns backwards in bb rather than
15058         forwards.  Allocate and free arg_stores bitmap if needed, pass it
15059         down to deletable_insn_p, don't mark stores set in arg_stores
15060         bitmap, clear the bitmap at the beginning of each bb.
15061         * Makefile.in (dce.o): Depend on $(TM_P_H).
15062
15063 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
15064
15065         PR target/22599
15066         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
15067         to make sure the insn is a conditional test (bug 22599).  Reformat a
15068         few long lines.
15069
15070 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
15071
15072         PR middle-end/38431
15073         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
15074         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
15075         (gloog): Do not call cleanup_tree_cfg.
15076         (graphite_transform_loops): Call cleanup_tree_cfg after all
15077         scops have been code generated.
15078
15079 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
15080         * doc/gty.texi (Invoking the garbage collector): Added new node
15081         and section documenting ggc_collect.
15082
15083 2009-01-14  Richard Guenther  <rguenther@suse.de>
15084
15085         PR tree-optimization/38826
15086         PR middle-end/38477
15087         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
15088         initialization notes only if we actually emitted a warning.
15089         (intra_create_variable_infos): Add constraints for a result decl
15090         that is passed by hidden reference.
15091         (build_pred_graph): Mark all related variables non-direct on
15092         address-taking.
15093
15094 2009-01-14  Nick Clifton  <nickc@redhat.com>
15095
15096         * ira-conflicts.c: Include addresses.h for the definition of
15097         base_reg_class.
15098         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
15099         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
15100
15101 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15102
15103         PR target/38811
15104         * Makefile.in (ira-lives.o): Add except.h.
15105
15106         * ira-lives.c: Include except.h.
15107         (process_bb_node_lives): Process can_throw_internal.
15108
15109 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
15110
15111         PR rtl-optimization/38774
15112         * combine.c (simplify_set): When undoing cc_use change, don't do
15113         PUT_CODE on the newly created comparison, but instead put back the
15114         old comparison.
15115
15116 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
15117
15118         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
15119         values.  Remove duplicate arm8 entry.
15120
15121 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
15122
15123         PR tree-optimization/38786
15124         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
15125         the SSA_NAME case of expand_scalar_variables_expr.
15126         Set the type of an expression to the type of its assign statement.
15127         (expand_scalar_variables_expr): Also gather the scalar computation
15128         used to index the memory access.  Do not pass loop_p.
15129         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
15130         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
15131         the gimple_stmt_iterator where it inserts new code.
15132         Do not pass loop_p.
15133         (copy_bb_and_scalar_dependences): Do not pass loop_p.
15134         (translate_clast): Update call to copy_bb_and_scalar_dependences.
15135
15136 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
15137
15138         * graphite.h (debug_value): Removed.
15139         * graphite.c (debug_value): Removed.
15140
15141 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
15142
15143         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
15144         ldrd/strd with two 32-bit instructions.
15145
15146 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
15147
15148         * config/arm/arm.c (struct processors): Pass for speed down into
15149         cost helper functions.
15150         (const_ok_for_op): Handle COMPARE and inequality nodes.
15151         (arm_rtx_costs_1): Rewrite.
15152         (arm_size_rtx_costs): Update prototype.
15153         (arm_rtx_costs): Pass speed down to helper functions.
15154         (arm_slowmul_rtx_costs): Rework cost calculations.
15155         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
15156         (arm_9e_rtx_costs): Likewise.
15157
15158 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
15159
15160         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
15161         relocations of local symbols wider than UNITS_PER_WORD are not valid.
15162         (alpha_legitimize_address): Do not split local symbols wider than
15163         UNITS_PER_WORD into HIGH/LO_SUM parts.
15164
15165 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
15166
15167         PR bootstrap/38580
15168         * gcc.c (process_command): Replace call to execvp with calls
15169         to pex_one and exit.
15170
15171 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
15172
15173         PR target/29141
15174         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
15175         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
15176         variant for devices with 3-byte PC.
15177         (__tablejump_elpm__): New.
15178
15179 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
15180
15181         PR c/32041
15182         * c-parser.c (c_parser_postfix_expression): Allow `->' in
15183         offsetof member-designator, handle it as `[0].'.
15184
15185 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15186
15187         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
15188         function when not using named sections on targets with named sections
15189         if branch distance is less than 262132.
15190
15191 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
15192
15193         * combine.c (combine_instructions):  Recompute
15194         optimize_this_for_speed_p  for each BB in the main combine loop.
15195
15196 2009-01-12  Tomas Bily  <tbily@suse.cz>
15197
15198         PR middlend/38385
15199         * tree-loop-distribution.c (prop_phis): New function.
15200         (generate_builtin): Call prop_phis.
15201         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
15202
15203 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
15204
15205         PR tree-optimization/38807
15206         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
15207         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
15208
15209 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
15210
15211         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15212         subreg of op0 to the original op0.
15213
15214 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
15215
15216         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
15217
15218 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
15219
15220         PR debug/7055
15221         * mips-tfile.c (parse_def): Fix parsing of def strings
15222         starting with digits.
15223
15224 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
15225
15226         PR target/38695
15227         * config/arm/arm.c (arm_is_long_call_p): Don't call
15228         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
15229
15230 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
15231
15232         * regrename.c (regrename_optimize): Fix dumping.
15233         (find_oldest_value_reg): Preserve REG_POINTER.
15234         (copy_hardreg_forward_1): Likewise.
15235
15236 2009-01-09  Diego Novillo  <dnovillo@google.com>
15237
15238         * gimple.h (struct gimple_statement_base) <uid>: Document
15239         the restrictions on its use.
15240         (gimple_uid): Tidy.
15241         (gimple_set_uid): Tidy.
15242
15243 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
15244
15245         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
15246         zero guard even if align_bytes != 0 and count is smaller than
15247         size_needed.
15248
15249 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
15250
15251         PR rtl-optimization/38495
15252         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
15253         (add_range_and_copies_from_move_list): Print all added ranges.
15254         Add ranges to memory optimized destination.
15255
15256 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
15257
15258         PR target/38686
15259         PR target/38708
15260         * config/i386/i386.c (override_options): Reject
15261         -mstringop-strategy=rep_8byte with -m32.
15262         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
15263         to 1.  Do count comparison against epilogue_size_needed at compile
15264         time even when count_exp was constant forced into register.  For
15265         size_needed don't jump to epilogue, instead just avoid aligning
15266         and invoke the body algorithm.  If need_zero_guard, add zero guard
15267         even if count is non-zero, but smaller than size_needed + number of
15268         bytes that could be stored for alignment.
15269         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
15270         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
15271         but smaller than size_needed + number of bytes that could be stored
15272         for alignment.  Compare size_needed with epilogue_size_needed instead
15273         of desired_align - align, don't adjust size_needed, pass
15274         epilogue_size_needed to the epilogue expanders.
15275
15276         PR c/35742
15277         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
15278
15279 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15280
15281         * pa.c (last_address): Change to unsigned.
15282         (update_total_code_bytes): Change argument to unsigned.  Don't
15283         check if insn addresses are set.
15284         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
15285         addresses are not set.
15286         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
15287
15288 2009-01-09  Nick Clifton  <nickc@redhat.com>
15289
15290         * config/sh/symbian.c: Replace uses of DECL_INLINE with
15291         DECL_DECLARED_INLINE_P.
15292
15293 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
15294
15295         PR middle-end/38347
15296         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
15297         GET_MODE (op0) in operand_subword_force calls.
15298
15299         PR middle-end/38771
15300         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
15301         fold_convert arg0 operands to TREE_TYPE (op0) first.
15302
15303 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
15304
15305         * params.def (ira-max-conflict-table-size): Decrease default value
15306         to 1000.
15307
15308 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
15309
15310         PR tree-optimization/37031
15311         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
15312         on parameter_set.
15313         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
15314         allocate it using gc instead of heap, use VEC_quick_push instead of
15315         VEC_safe_push.
15316         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
15317         instead of heap, use VEC_quick_push instead of VEC_safe_push.
15318         * tree-data-ref.h (struct access_matrix): Change matrix to gc
15319         allocated vector from heap allocated.
15320         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
15321         * tree-loop-linear.c (linear_transform_loops): Allocate nest
15322         vector only after perfect_loop_nest_depth call.
15323
15324 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
15325             Jan Sjodin  <jan.sjodin@amd.com>
15326
15327         PR tree-optimization/38559
15328         * graphite.c (debug_value, copy_constraint,
15329         swap_constraint_variables, scale_constraint_variable, ): New.
15330         (get_lower_bound, get_upper_bound): Removed.
15331         (graphite_trans_bb_strip_mine): Clean up this code that works
15332         only for constant number of iterations.  Fully copy upper and
15333         lower bound constraints, not only the constant part of them.
15334         * graphite.h (debug_value): Declared.
15335
15336 2009-01-08  Ira Rosen  <irar@il.ibm.com>
15337
15338         PR tree-optimization/37194
15339         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
15340         Don't add the cost of cost model guard in prologue to scalar
15341         outside cost in case of known number of iterations.
15342
15343 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
15344             Alan Modra  <amodra@bigpond.net.au>
15345
15346         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
15347         non-word-aligned REG+CONST addressing.
15348
15349 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
15350
15351         PR target/38706
15352         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
15353         free_after_compilation when outputting a thunk.
15354         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
15355         Do not call free_after_compilation here.
15356
15357 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
15358
15359         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
15360         (ix86_valid_target_attribute_inner_p): Ditto.
15361
15362 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
15363
15364         PR tree-optimization/38492
15365         PR tree-optimization/38498
15366         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
15367         * tree-chrec.h (scev_is_linear_expression): Declared.
15368         * graphite.c (graphite_cannot_represent_loop_niter): New.
15369         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
15370         (graphite_loop_normal_form): Use gcc_assert.
15371         (scan_tree_for_params): Use CASE_CONVERT.
15372         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
15373         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
15374         Use gcc_assert.  Discard scops that contain unhandled cases.
15375         (build_scop_conditions): Return a boolean status for unhandled cases.
15376         (strip_mine_profitable_p): Print the loop number, not its depth.
15377         (is_interchange_valid): Pass the depth of the loop nest, don't
15378         recompute it wrongly.
15379         (graphite_trans_bb_block): Same.
15380         (graphite_trans_bb_block): Print tentative of loop blocking.
15381         (graphite_trans_scop_block): Do not print that the loop has been
15382         blocked.
15383         (graphite_transform_loops): Do not handle scops that contain condition
15384         scalar phi nodes.
15385
15386 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15387
15388         AVX Programming Reference (December, 2008)
15389         * config/i386/avxintrin.h (_mm256_stream_si256): New.
15390         (_mm256_stream_pd): Likewise.
15391         (_mm256_stream_ps): Likewise.
15392
15393         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
15394         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
15395         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
15396         (bdesc_special_args): Add __builtin_ia32_movntdq256,
15397         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
15398         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
15399         (ix86_expand_special_args_builtin): Likewise.
15400
15401         * config/i386/sse.md (AVXMODEDI): New.
15402         (avx_movnt<mode>): Likewise.
15403         (avx_movnt<mode>): Likewise.
15404         (<sse>_movnt<mode>): Remove AVX support.
15405         (sse2_movntv2di): Likewise.
15406
15407 2009-01-07  Richard Guenther  <rguenther@suse.de>
15408
15409         PR middle-end/38751
15410         * fold-const.c (extract_muldiv): Remove obsolete comment.
15411         (fold_plusminus_mult_expr): Undo MINUS_EXPR
15412         to PLUS_EXPR canonicalization for the canonicalization.
15413
15414 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
15415
15416         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
15417         hosted cross-compilers generating less efficient code.
15418
15419 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
15420
15421         * function.h (rtl_data): Add a dbr_scheduled_p field.
15422         * reorg.c (dbr_schedule): Set it.
15423         (gate_handle_delay_slots): Check it.
15424         * config/mips/mips.c (mips_base_delayed_branch): Delete.
15425         (mips_reorg): Check flag_delayed_branch instead of
15426         mips_base_delayed_branch.
15427         (mips_override_options): Don't set mips_base_delayed_branch
15428         or flag_delayed_branch.
15429
15430 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
15431
15432         PR rtl-optimization/38426.
15433         * ira.c (ira): Set current_function_is_leaf earlier.
15434
15435 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
15436
15437         PR rtl-optimization/38722
15438         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
15439         too early, only set a flag and modify after last possible
15440         undo_all point.
15441
15442 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
15443
15444         PR c/34252
15445         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
15446         * real.c (decimal_single_format): Correct values of emin and emax.
15447         (decimal_double_format): Ditto.
15448         (decimal_quad_format): Ditto.
15449         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
15450         computation of DECnn_MIN and DECnn_MAX for corrected values of
15451         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
15452         __DECnn_MIN__, and adjust its computation for the corrected value
15453         of emin.
15454
15455 2009-01-06  Jan Hubicka  <jh@suse.cz>
15456
15457         PR target/38744
15458         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
15459
15460 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
15461
15462         * doc/contrib.texi (Contributors): Slightly adjust the end note.
15463         Add Robert Clark to the list of testers.
15464
15465 2009-01-06  Jan Hubicka  <jh@suse.cz>
15466             Kai Tietz  <kai.tietz@onevision.com>
15467
15468         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
15469         * config/i386/i386.c (ix86_expand_call): Add clobbers.
15470
15471 2009-01-06  Jan Hubicka  <jh@suse.cz>
15472             Kai Tietz  <kai.tietz@onevision.com>
15473
15474         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
15475         for w64 ABI.
15476         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
15477         (ix86_nsaved_regs): Count only general purpose regs.
15478         (ix86_nsaved_sseregs): New.
15479         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
15480         to 16 for w64; compute padding and size of sse reg save area.
15481         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
15482         general purpose regs.
15483         (ix86_emit_save_sse_regs_using_mov): New.
15484         (ix86_expand_prologue): Save SSE regs if needed.
15485         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
15486         (ix86_emit_restore_sse_regs_using_mov): New.
15487         (ix86_expand_epilogue): Save SSE regs if needed.
15488
15489 2009-01-06  Jan Hubicka  <jh@suse.cz>
15490             Kai Tietz  <kai.tietz@onevision.com>
15491
15492         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
15493         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
15494         functions when accumulate outgoing args is off.
15495
15496 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
15497
15498         PR bootstrap/38742
15499         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
15500         before using pseudos_have_intersected_live_ranges_p.
15501
15502         * ira-int.h (ira_assert): Always define.
15503
15504 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
15505
15506         AVX Programming Reference (December, 2008)
15507         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
15508         (_mm256_permute2_pd): Likewise.
15509         (_mm_permute2_ps): Likewise.
15510         (_mm256_permute2_ps): Likewise.
15511         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
15512         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
15513
15514         * config/i386/i386.c (ix86_builtins): Remove
15515         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
15516         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
15517         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
15518         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
15519         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
15520         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
15521         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
15522         __builtin_ia32_vpermil2ps256.
15523         (ix86_init_mmx_sse_builtins): Updated.
15524         (ix86_expand_args_builtin): Likewise.
15525
15526 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15527
15528         * pa.c (output_call): Relocate non-jump insns in the delay slot of
15529         long absolute calls when generating PA 2.0 code.
15530
15531 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
15532
15533         PR rtl-optimization/38583
15534         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
15535
15536         * params.def (ira-max-conflict-table-size): New.
15537
15538         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
15539
15540         * ira.h (ira_conflicts_p): New external definition.
15541
15542         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
15543         table.  Report this.  Return result of building.
15544         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
15545         building conflict table.
15546
15547         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
15548         (ira_color): Use ira_conflicts_p.
15549
15550         * global.c: Include ira.h.
15551         (pseudo_for_reload_consideration_p, build_insn_chain): Use
15552         ira_conflicts_p.
15553
15554         * Makefile.in (global.o): Add ira.h.
15555
15556         * ira-build.c (mark_all_loops_for_removal,
15557         propagate_some_info_from_allocno): New.
15558         (remove_unnecessary_allocnos): Call
15559         propagate_some_info_from_allocno.
15560         (remove_low_level_allocnos): New.
15561         (remove_unnecessary_regions): Add parameter.  Call
15562         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
15563         parameter to remove_unnecessary_regions.
15564         (ira_build): Remove all regions but root if the conflict table was
15565         not built.  Update conflict hard regs for allocnos crossing calls.
15566
15567         * ira.c (ira_conflicts_p): New global.
15568         (ira): Define and use ira_conflicts_p.
15569
15570         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15571         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
15572         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
15573
15574 2009-01-06  Ben Elliston  <bje@au.ibm.com>
15575
15576         * gengtype-lex.l (YY_NO_INPUT): Define.
15577
15578 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15579
15580         PR c/34911
15581         * c-common.c (handle_vector_size_attribute): Also reject
15582         BOOLEAN_TYPE types.
15583
15584 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
15585
15586         PR tree-optimization/38492
15587         * graphite.c (rename_map_elt, debug_rename_elt,
15588         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
15589         rename_map_elt_info, eq_rename_map_elts,
15590         get_new_name_from_old_name, bb_in_sese_p): Moved around.
15591         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
15592         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
15593         (sese_build_livein_liveouts): New.
15594         (new_sese, free_sese): New.
15595         (new_scop): Call new_sese.
15596         (free_scop): Call free_sese.
15597         (rename_variables_from_edge, rename_phis_end_scop): Removed.
15598         (register_old_new_names): Renamed register_old_and_new_names.
15599         (register_scop_liveout_renames, add_loop_exit_phis,
15600         insert_loop_close_phis, struct igp,
15601         default_liveout_before_guard, add_guard_exit_phis,
15602         insert_guard_phis, copy_renames): New.
15603         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
15604         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
15605         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
15606         (scop_adjust_phis_for_liveouts): New.
15607         (gloog): Call scop_adjust_phis_for_liveouts.
15608
15609         * graphite.h (struct sese): Documented.  Added fields liveout,
15610         num_ver and livein.
15611         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
15612         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
15613         (struct scop): Added field liveout_renames.
15614         (SCOP_LIVEOUT_RENAMES): New.
15615
15616 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
15617
15618         PR tree-optimization/38510
15619         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
15620         (translate_clast): Call recompute_all_dominators before
15621         graphite_verify.
15622         (gloog): Call recompute_all_dominators before graphite_verify.
15623
15624 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
15625             Jan Sjodin  <jan.sjodin@amd.com>
15626
15627         PR tree-optimization/38500
15628         * graphite.c (create_sese_edges): Call fix_loop_structure after
15629         splitting blocks.
15630
15631 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
15632
15633         * config.gcc: Add m32r*-*-rtems*.
15634         * config/m32r/rtems.h: New file.
15635
15636 2009-01-05  Ben Elliston  <bje@au.ibm.com>
15637
15638         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
15639         (.po.pox): Likewise.
15640         (po/gcc.pot): Likewise.
15641
15642 2009-01-04  David S. Miller  <davem@davemloft.net>
15643
15644         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
15645         (STARTING_FRAME_OFFSET): Always set to zero.
15646
15647 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
15648
15649         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
15650         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
15651         fixed-point types, and vectors of the same.
15652
15653 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
15654
15655         * config/mips/sync.md (*mb_barrier): Rename to...
15656         (*memory_barrier): ...this.
15657
15658 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
15659
15660         * doc/extend.texi (Function Attributes): Move @cindex after @item
15661         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
15662         and put in alphabetical order. Fix 'target' name and put in order.
15663         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
15664         typos.
15665
15666 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
15667
15668         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
15669         (memory_barrier): Expand as unspec instead of unspec_volatile.
15670         Remove mem:BLK from insn operands.  Use Pmode scratch register.
15671         (*memory_barrier): Define as unspec instead of unspec_volatile.
15672         Use (match_dup 0) as input operand.
15673
15674         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
15675         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
15676         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
15677         scratch register.  Remove operand 1.
15678         (*stbar): Define as unspec instead of unspec_volatile.
15679         Use (match_dup 0) as input operand, remove (const_int 8).
15680         (*membar): Define as unspec instead of unspec_volatile.
15681         Use (match_dup 0) as input operand, remove input operand 2.
15682
15683         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
15684         (memory_barrier): Expand as unspec instead of unspec_volatile.
15685         Remove mem:BLK from insn operands.  Use Pmode scratch register.
15686         (*memory_barrier): Define as unspec instead of unspec_volatile.
15687         Use (match_dup 0) as input operand.
15688
15689         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
15690         Remove mem:BLK from insn operands.  Use Pmode scratch register.
15691         Set volatile flag on operand 0.
15692         (*memory_barrier): New insn pattern.
15693
15694         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
15695         insn operands.
15696         (*memory_barrier): Use (match_dup 0) as input operand.
15697
15698         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
15699         Remove mem:BLK from insn operands.  Use Pmode scratch register.
15700         Set volatile flag on operand 0.
15701         (*mb_internal): New insn pattern.
15702
15703         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
15704
15705 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
15706
15707         PR middle-end/38586
15708         * function.c (struct temp_slot): Move to the section of the file
15709         that deals with temp slots.  Remove field 'address'.
15710         (temp_slot_address_table): New hash table of address -> temp slot.
15711         (struct temp_slot_address_entry): New struct, items for the table.
15712         (temp_slot_address_compute_hash, temp_slot_address_hash,
15713         temp_slot_address_eq, insert_temp_slot_address): Support functions
15714         for the new table.
15715         (find_temp_slot_from_address): Rewrite to use the new hash table.
15716         (remove_unused_temp_slot_addresses): Remove addresses of temp
15717         slots that have been made available.
15718         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
15719         worker function for remove_unused_temp_slot_addresses.
15720         (assign_stack_temp_for_type): Don't clear the temp slot address list.
15721         Add the temp slot address to the address -> temp slot map.
15722         (update_temp_slot_address): Update via insert_temp_slot_address.
15723         (free_temp_slots): Call remove_unused_temp_slot_addresses.
15724         (pop_temp_slots): Likewise.
15725         (init_temp_slots): Allocate the address -> temp slot map, or empty
15726         the map if it is already allocated.
15727         (prepare_function_start): Initialize temp slot processing.
15728
15729 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
15730
15731         PR middle-end/38584
15732         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
15733         Calculate the size of all stack vars assuming no packing of stack
15734         vars will happen, replacing a quadratic algorithm with a linear one.
15735
15736 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
15737
15738         PR target/38707
15739         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
15740         can't be used.
15741
15742 2009-01-03  Diego Novillo  <dnovillo@google.com>
15743
15744         * doc/contrib.texi: Update contributions.
15745
15746 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
15747
15748         PR c++/38705
15749         * builtins.c (fold_builtin_memory_op): Give up if either operand
15750         is volatile.  Set srctype or desttype to non-qualified version
15751         of the other type.
15752
15753         PR c/38700
15754         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
15755         and FUNCTION_DECLs.
15756
15757 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
15758
15759         PR rtl-optimization/35805
15760         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
15761         problem if fast dce is able to remove any instructions.
15762         * dce.c (dce_process_block): Fix dump message.
15763
15764 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
15765
15766         PR 33649
15767         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
15768
15769 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
15770
15771         PR middle-end/38690
15772         * tree-flow.h (op_code_prio, op_prio): New prototypes.
15773         * tree-pretty-print.c (op_code_prio): New function.
15774         (op_prio): No longer static.  Use op_code_prio.
15775         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
15776         Use op_prio and op_code_prio to determine if () should be
15777         printed around operand(s) or not.
15778
15779         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
15780         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
15781         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
15782         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
15783         pp_character instead of pp_string for single letter printing.
15784
15785 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
15786
15787         * doc/extend.texi: Fix '#pragma GCC option' typo.
15788
15789 2009-01-02  Richard Guenther  <rguenther@suse.de>
15790
15791         * doc/install.texi (--enable-checking): Mention different
15792         default for stage1.
15793         (--enable-stage1-checking): Document.
15794
15795 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
15796
15797         PR middle-end/30142
15798         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
15799         case to be an error.
15800
15801 2009-01-02  Ben Elliston  <bje@au.ibm.com>
15802
15803         * config/fp-bit.h (pack_d): Constify argument.
15804         * config/fp-bit.c (makenan): Constify return type. Remove casts.
15805         (isnan): Constify argument.
15806         (isinf): Likewise.
15807         (iszero): Likewise.
15808         (pack_d): Likewise.
15809         (_fpadd_parts): Constify return type.
15810         (_fpmul_parts): Likewise.
15811         (_fpdiv_parts): Likewise.
15812
15813 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
15814
15815         PR c/36489
15816         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
15817         warn about overwriting initializer with side-effects or
15818         -Woverride-init if !IMPLICIT.
15819         (output_init_element): Likewise.  Pass IMPLICIT down to
15820         add_pending_init.
15821         (process_init_element): Add IMPLICIT argument.  Pass it down
15822         to output_init_element.
15823         (push_init_element, pop_init_level, set_designator): Adjust
15824         process_init_element callers.
15825         (set_nonincremental_init, set_nonincremental_init_from_string):
15826         Adjust add_pending_init callers.
15827         (output_pending_init_elements): Adjust output_init_element callers.
15828         * c-tree.h (process_init_element): Adjust prototype.
15829         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
15830         process_init_element callers.
15831
15832 \f
15833 Copyright (C) 2009 Free Software Foundation, Inc.
15834
15835 Copying and distribution of this file, with or without modification,
15836 are permitted in any medium without royalty provided the copyright
15837 notice and this notice are preserved.