OSDN Git Service

* tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
2
3         * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only
4         in loop closed ssa.
5
6 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
7
8         * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that
9         the loop structures may need fixing.
10         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
11         New functions.
12         (cleanup_tree_cfg_loop): Removed.
13         (cleanup_tree_cfg): If loops need fixing, call repair_loop_structures.
14         * tree-predcom.c (tree_predictive_commoning): Return TODO_cleanup_cfg
15         instead of running cleanup_tree_cfg_loop.
16         * cfgloop.h (LOOPS_NEED_FIXUP): New constant.
17         * tree-flow.h (cleanup_tree_cfg_loop): Declaration removed.
18         (tree_predictive_commoning): Declaration changed.
19         * passes.c (execute_function_todo): Do not use cleanup_tree_cfg_loop.
20
21 2007-08-01  Zdenek Dvorak  <ook@ucw.cz>
22
23         * doc/invoke.texi (l1-cache-size): Update documentation.
24         (l2-cache-size): Document.
25         * params.h (L2_CACHE_SIZE): New macro.
26         * tree-ssa-loop-prefetch.c (L1_CACHE_SIZE_BYTES): Reflect
27         that L1_CACHE_SIZE is in kB now.
28         (L2_CACHE_SIZE_BYTES): New macro.
29         (tree_ssa_prefetch_arrays): Show size in kB.
30         * config/i386/i386.h (struct processor_costs): Add l1_cache_size
31         and l2_cache_size fields.
32         * config/i386/driver-i386.c (describe_cache): Detect cache size
33         in kB.
34         * config/i386/i386.c (size_cost, i386_cost, i486_cost,pentium_cost,
35         pentiumpro_cost, geode_cost, k6_cost, athlon_cost, k8_cost,
36         amdfam10_cost, pentium4_cost, nocona_cost, core2_cost,
37         generic64_cost, generic32_cost): Add l1_cache_size and l2_cache_size.
38         (override_options): Set l1-cache-size and l2-cache-size to default
39         values if not specified otherwise.
40         * params.def (PARAM_L1_CACHE_SIZE): Change to set in kB.
41         (PARAM_L2_CACHE_SIZE): New.
42
43 2007-08-01  Nigel Stephens  <nigel@mips.com>
44             David Ung  <davidu@mips.com>
45             Thiemo Seufer  <ths@mips.com>
46             Chris Dearman  <chris@mips.com>
47             Richard Sandiford  <richard@codesourcery.com>
48
49         * config.gcc (mips*-sde-elf*): New stanza.
50         (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*)
51         (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*)
52         (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*, mips-*-elf*)
53         (mipsel-*-elf*, mips64-*-elf*, mips64el-*-elf*, mips64orion-*-elf*)
54         (mips64orionel-*-elf*, mips*-*-rtems*, mips-wrs-windiss)
55         (mipstx39-*-elf*, mipstx39el-*-elf*): Add mips/t-libgcc-mips16
56         to tmake_file.
57         * config/mips/sde.h: New file.
58         * config/mips/t-libgcc-mips16: Likewise.
59         * config/mips/t-sde: Likewise.
60         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove settings
61         of _ABIN32, _ABI64, _ABIO32, _MIPS_SIM, _MIPS_SZLONG, _MIPS_SZPTR,
62         _MIPS_FPSET and _MIPS_SZINT.
63         * config/mips/iris.h (TARGET_OS_CPP_BUILTINS): Likewise.
64         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Remove separate
65         insertion of a default -mips option.  Use MIPS_32BIT_OPTION_SPEC.
66         * config/mips/t-isa3264 (LIB1ASMSRC, LIB1ASMFUNCS): Delete.
67         * config/mips/t-r3900 (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
68         * config/mips/t-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
69         * config/mips/mips.h (TARGET_CPU_CPP_BUITINS): Define _ABIO32,
70         _ABIN32, _ABI64, _ABIO64, _MIPS_SIM, _MIPS_SZINT, _MIPS_SZLONG,
71         _MIPS_SZPTR and _MIPS_FPSET.
72         (MIPS_ISA_LEVEL_SPEC): Inject the default -mips option if no
73         architecture is specified.
74         (MIPS_32BIT_OPTION_SPEC): New macro.
75
76 2007-07-31  Dan Hipschman  <dsh@google.com>
77
78         * gcc.c (end_going_arg): New function.
79         (do_spec_2): Use it.
80         (do_spec_1): Use it.
81
82 2007-07-31  H.J. Lu  <hongjiu.lu@intel.com>
83
84         * ddg.c (add_cross_iteration_register_deps): Declare bb_info
85         only if ENABLE_CHECKING is defined.
86
87 2007-07-31  Kenneth Zadeck <zadeck@naturalbridge.com>
88
89         * df.h (DF_RU, DF_RU_BB_INFO, df_ru_bb_info, df_ru,
90         df_ru_add_problem, df_ru_get_bb_info): Removed.
91         (DF_RD, DF_UREC, DF_CHAIN, DF_NOTE): Renumbered.
92         * df-problems.c (df_ru_problem_data, df_ru_set_bb_info,
93         df_ru_free_bb_info, df_ru_alloc,
94         df_ru_bb_local_compute_process_def,
95         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
96         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
97         df_ru_transfer_function, df_ru_free, df_ru_start_dump,
98         df_ru_top_dump, df_ru_bottom_dump, df_problem problem_RU,
99         df_ru_add_problem): Removed.
100
101 2007-07-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
102
103         PR target/32847
104         * pa.md (casesi32): Use match_scratch.  Revise insn condition.
105         (casesi32p, casesi64p): Likewise.
106         (casesi): Adjust for above.
107
108 2007-07-31  Richard Sandiford  <richard@codesourcery.com>
109
110         * mode-switching.c (create_pre_exit): Don't search past calls.
111
112 2007-07-31  Sandra Loosemore  <sandra@codesourcery.com>
113
114         * config/mips/mips.h (ISA_HAS_SYNCI):  Add !TARGET_MIPS16 test.
115
116 2007-07-31  Revital Eres  <eres@il.ibm.com>
117
118         * ddg.c (add_deps_for_def): Rename to...
119         (add_cross_iteration_register_deps): This.  Change implementation
120         to use only reaching def and def-use chains to construct the
121         inter loop dependencies.
122         (add_deps_for_use): Remove function.
123         (build_inter_loop_deps): Call add_cross_iteration_register_deps
124         function to build the inter loop dependencies.
125         * modulo-sched.c (sms_schedule): Build only
126         reaching def and def-use chains for the propose of the ddg
127         construction.
128
129 2007-07-31  Julian Brown  <julian@codesourcery.com>
130
131         * config/arm/neon.md (vec_set<mode>_internal, vec_setv2di_internal):
132         New define_insns. Use correct RTL.
133         (vec_set<mode>): Write as expander.
134
135 2007-07-31  Razya Ladelsky  <razya@il.ibm.com>
136
137         * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring 
138         to an unallocated space.
139
140 2007-07-30  Jan Sjodin  <jan.sjodin@amd.com>
141
142         * tree-data-ref.c
143         (split_constant_offset): Enable split_constant_offset to extract
144         constants from other statements.
145         * tree-vect-transform.c
146         (vect_create_addr_base_for_vector_ref): Generate data_ref_base
147         to a temp var. Force base_offset to be simple.
148
149 2007-07-30  Seongbae Park <seongbae.park@gmail.com>
150
151         * df-scan.c (df_scan_verify): Remove artificial limit on
152         the number of blocks for verification.
153         * df-problems.c (df_lr_bb_local_compute, df_simulate_find_defs,
154         df_simulate_defs): Avoid unnecessary insn checking for defs.
155
156 2007-07-29  Mark Mitchell  <mark@codesourcery.com>
157
158         gcc/
159         * config/m68k/lb1sf68.asm (FUNC): New macro.
160         (__mulsi3): Use it.
161         (__udivsi3): Likewise.
162         (__divsi3): Likewise.
163         (__umodsi3): Likewise.
164         (__modsi3): Likewise.
165         (__subdf3): Likewise.
166         (__adddf3): Likewise.
167         (__muldf3): Likewise.
168         (__divdf3): Likewise.
169         (__negdf2): Likewise.
170         (__cmpdf2): Likewise.
171         (__subsf3): Likewise.
172         (__addsf3): Likewise.
173         (__mulsf3): Likewise.
174         (__divsf3): Likewise.
175         (__negsf2): Likewise.
176         (__cmpsf2): Likewise.
177         (__eqdf2): Likewise.
178         (__nedf2): Likewise.
179         (__gtdf2): Likewise.
180         (__gedf2): Likewise.
181         (__ltdf2): Likewise.
182         (__ledf2): Likewise.
183         (__eqsf2): Likewise.
184         (__nesf2): Likewise.
185         (__gtsf2): Likewise.
186         (__gesf2): Likewise.
187         (__ltsf2): Likewise.
188         (__lesf2): Likewise.
189
190 2007-07-30  Ollie Wild  <aaw@google.com>
191
192         * c-ppoutput.c (print_lines_directives_only): New function.
193         (scan_translation_unit_directives_only): New function.
194         (preprocess_file): Add call to scan_translation_unit_directives_only.
195         * c-opts.c (c_common_handle_option): Add OPT_fdirectives_only.
196         (sanitize_cpp_opts): Add default flag_dump_macros setting for
197         -fdirectives-only.  Add errors for -fdirectives-only conflict with
198         -Wunused-macros and -traditional.
199         (finish_options): Add builtin macro initialization for
200         -fdirectives-only + -fpreprocessed.
201         * c.opt (fdirectives-only): New.
202         * doc/cppopts.texi (fdirectives-only): New.
203
204 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
205
206         * alias.c (record_set, memory_modified_1): Constify.
207         * bt-load.c (note_btr_set): Likewise.
208         * caller-save.c (mark_set_regs, add_stored_regs): Likewise.
209         * combine.c (set_nonzero_bits_and_sign_copies,
210         expand_field_assignment, record_dead_and_set_regs_1,
211         use_crosses_set_p, reg_dead_at_p_1, can_combine_p,
212         likely_spilled_retval_1): Likewise.
213         * config/frv/frv.c (frv_registers_update_1, frv_io_check_address,
214         frv_io_handle_set): Likewise.
215         * config/mips/mips.c (mips_sim_record_set,
216         vr4130_true_reg_dependence_p_1): Likewise.
217         * config/mt/mt.c (insn_dependent_p_1): Likewise.
218         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
219         * config/sh/sh.c (flow_dependent_p_1): Likewise.
220         * cselib.c (cselib_invalidate_rtx_note_stores): Likewise.
221         * dce.c (mark_nonreg_stores_1, mark_nonreg_stores_2): Likewise.
222         * ddg.c (mark_mem_store): Likewise.
223         * df-problems.c (df_urec_mark_reg_change): Likewise.
224         * function.c (update_epilogue_consts): Likewise.
225         * gcse.c (record_set_info, record_last_set_info,
226         mems_conflict_for_gcse_p, canon_list_insert, reg_set_info,
227         reg_clear_last_set): Likewise.
228         * global.c (mark_reg_store, mark_reg_clobber, reg_becomes_live):
229         Likewise.
230         * jump.c (reversed_comparison_code_parts): Likewise.
231         * local-alloc.c (validate_equiv_mem_from_store, no_equiv,
232         reg_is_set): Likewise.
233         * loop-iv.c (mark_altered): Likewise.
234         * mode-switching.c (reg_becomes_live): Likewise.
235         * optabs.c (no_conflict_move_test): Likewise.
236         * postreload-gcse.c (record_last_set_info, find_mem_conflicts):
237         Likewise.
238         * postreload.c (reload_combine_note_store, move2add_note_store):
239         Likewise.
240         * regmove.c (flags_set_1): Likewise.
241         * regrename.c (note_sets, kill_clobbered_value, kill_set_value):
242         Likewise.
243         * reload1.c (mark_not_eliminable, forget_old_reloads_1):
244         Likewise. 
245         * resource.c (update_live_status): Likewise.
246         * rtl.h (set_of, note_stores): Likewise.
247         * rtlanal.c (set_of_1, parms_set, struct set_of_data, set_of,
248         note_stores, parms_set): Likewise.
249         * sched-rgn.c (sets_likely_spilled_1): Likewise.
250         * stack-ptr-mod.c (notice_stack_pointer_modification_1):
251         Likewise. 
252         * var-tracking.c (count_stores, add_stores): Likewise.
253
254 2007-07-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
255
256         * alias.c (mems_in_disjoint_alias_sets_p,
257         fixed_scalar_and_varying_struct_p, aliases_everything_p,
258         nonoverlapping_component_refs_p, nonoverlapping_memrefs_p,
259         write_dependence_p, mems_in_disjoint_alias_sets_p,
260         read_dependence, true_dependence, canon_true_dependence,
261         anti_dependence, output_dependence): Constify.
262         * combine.c (extended_count): Likewise.
263         * cse.c (cse_rtx_varies_p, hash_rtx, exp_equiv_p): Likewise.
264         * cselib.c (get_value_hash, references_value_p,
265         cselib_reg_set_mode, cselib_rtx_varies_p): Likewise.
266         * cselib.h (cselib_reg_set_mode, references_value_p): Likewise.
267         * emit-rtl.c (mem_expr_equal_p, active_insn_p): Likewise.
268         * function.c (contains, prologue_epilogue_contains,
269         sibcall_epilogue_contains): Likewise. 
270         * jump.c (simplejump_p, condjump_p, condjump_in_parallel_p,
271         pc_set, any_uncondjump_p, any_condjump_p, onlyjump_p,
272         only_sets_cc0_p, sets_cc0_p, rtx_renumbered_equal_p, true_regnum,
273         reg_or_subregno): Likewise.
274         * recog.c (asm_noperands): Likewise.
275         * reload1.c (function_invariant_p): Likewise.
276         * rtl.h (mem_expr_equal_p, active_insn_p, rtx_varies_p,
277         rtx_addr_varies_p, asm_noperands, exp_equiv_p, hash_rtx,
278         condjump_p, any_condjump_p, any_uncondjump_p, pc_set,
279         simplejump_p, onlyjump_p, only_sets_cc0_p, sets_cc0_p,
280         true_regnum, reg_or_subregno, condjump_in_parallel_p,
281         extended_count, prologue_epilogue_contains,
282         sibcall_epilogue_contains, function_invariant_p, true_dependence,
283         canon_true_dependence, read_dependence, anti_dependence,
284         output_dependence): Likewise.
285         * rtlanal.c (rtx_varies_p, rtx_addr_varies_p): Likewise.
286
287 2007-07-30  Julian Brown  <julian@codesourcery.com>
288
289         * config/arm/neon.md (V_ext): New mode attribute.
290         (neon_vget_lane<mode>): Replace with define_expand.
291         (neon_vget_lane<mode>_sext_internal)
292         (neon_vget_lane<mode>_zext_internal): New define_insns for double
293         and quad precision vectors.
294         (neon_vget_lanedi): Add bounds check. Remove dead comment.
295         * config/arm/neon.ml (get_lane): Make 32-bit get-lane intrinsics
296         have typeless 32-bit result.
297
298 2007-07-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
299
300         PR tree-opt/32527
301         * tree-affine.h (aff_tree): The type of rest is sizetype for types
302         of pointers.
303         * tree-affine.c (aff_combination_scale): If type is a pointer type,
304         use sizetype for rest.
305         (aff_combination_add_elt): Likewise. Don't specialize pointer types.
306         (aff_combination_convert): Don't convert rest for pointer types.
307
308 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
309
310         * Makefile.in (tree-ssa-alias.o): Add alloc-pool.h
311
312         * tree-ssa-alias.c: Add alloc-pool.h.
313         (init_alias_info): Free alias_bitmap_obstack.
314         (delete_alias_info): Call delete_mem_ref_stats.
315         (get_mem_sym_stats_for): Use alloc_pool.
316         (init_mem_ref_stats): Do not delete mem_ref_stats here.
317         (delete_mem_sym_stats): Removed.
318         
319 2007-07-29  Sebastian Pop  <sebpop@gmail.com>
320
321         * tree-data-ref.c (add_multivariate_self_dist): Parametric access
322         functions cannot be represented as classical distance vectors.
323
324 2007-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
325
326         * attribs.c (hash_attr, eq_attr, init_attributes): Constify.
327         * builtins.c (validate_arg, builtin_mathfn_code,
328         validate_arglist): Likewise.
329         * calls.c (call_expr_flags): Likewise.
330         * combine.c (reg_nonzero_bits_for_combine,
331         reg_num_sign_bit_copies_for_combine, get_last_value,
332         reg_truncated_to_mode): Likewise.
333         * emit-rtl.c (subreg_lowpart_p): Likewise.
334         * expr.c (highest_pow2_factor_for_target,
335         categorize_ctor_elements_1, categorize_ctor_elements,
336         count_type_elements, contains_packed_reference,
337         highest_pow2_factor, highest_pow2_factor_for_target): Likewise.
338         * fold-const.c (may_negate_without_overflow_p, int_const_binop,
339         fold_convertible_p, operand_equal_p, tree_swap_operands_p,
340         native_encode_int, native_encode_real, native_encode_complex,
341         native_encode_vector, native_encode_expr, native_interpret_int,
342         native_interpret_real, native_interpret_complex,
343         native_interpret_vector, native_interpret_expr): Likewise.
344         * function.c (use_register_for_decl): Likewise.
345         * gimplify.c (get_name): Likewise.
346         * langhooks-def.h (lhd_return_null_const_tree): New.
347         (LANG_HOOKS_GET_CALLEE_FNDECL): Use it.
348         * langhooks.c (lhd_return_null_const_tree): New.
349         * langhooks.h (lang_get_callee_fndecl): Constify.
350         * output.h (constructor_static_from_elts_p): Likewise.
351         * rtl-factoring.c (gen_symbol_ref_rtx_for_label): Likewise.
352         * rtl.h (nonzero_bits, num_sign_bit_copies, truncated_to_mode,
353         subreg_lowpart_p, noop_move_p, struct rtl_hooks): Likewise.
354         * rtlanal.c (cached_nonzero_bits, nonzero_bits1,
355         cached_num_sign_bit_copies, num_sign_bit_copies1, noop_move_p,
356         nonzero_bits, num_sign_bit_copies, truncated_to_mode): Likewise.
357         * rtlhooks-def.h (reg_nonzero_bits_general,
358         reg_num_sign_bit_copies_general, reg_truncated_to_mode_general):
359         Likewise. 
360         * rtlhooks.c (reg_num_sign_bit_copies_general,
361         reg_nonzero_bits_general, reg_truncated_to_mode_general):
362         Likewise. 
363         * stmt.c (warn_if_unused_value, is_body_block): Likewise.
364         * stor-layout.c (mode_for_size_tree): Likewise.
365         * tree-ssa-loop-im.c (memref_eq): Likewise.
366         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): Likewise.
367         * tree.c (contains_placeholder_p, type_list_equal,
368         simple_cst_equal, get_callee_fndecl, operand_equal_for_phi_arg_p):
369         Likewise. 
370         * tree.h (tree_int_cst_sign_bit, may_negate_without_overflow_p,
371         mode_for_size_tree, categorize_ctor_elements, count_type_elements,
372         contains_placeholder_p, contains_packed_reference,
373         get_callee_fndecl, operand_equal_for_phi_arg_p,
374         warn_if_unused_value, is_body_block, native_encode_expr,
375         native_interpret_expr, fold_convertible_p, operand_equal_p,
376         int_const_binop, tree_swap_operands_p, builtin_mathfn_code,
377         validate_arglist, simple_cst_equal, type_list_equal,
378         use_register_for_decl, call_expr_flags, get_name,
379         highest_pow2_factor): Likewise.
380         (const_call_expr_arg_iterator_d,
381         init_const_call_expr_arg_iterator, next_const_call_expr_arg,
382         first_const_call_expr_arg, more_const_call_expr_args_p,
383         FOR_EACH_CONST_CALL_EXPR_ARG): New.
384         * varasm.c (constructor_static_from_elts_p): Constify.
385
386 2007-07-28  Kazu Hirata  <kazu@codesourcery.com>
387
388         * cfglayout.c, config/arm/arm.c, config/arm/cortex-a8.md,
389         config/arm/neon-schedgen.ml, config/arm/neon.ml,
390         config/arm/vec-common.md, config/ia64/div.md, cselib.c,
391         df-core.c, df.h, dominance.c, optabs.c, opts.c, reg-stack.c,
392         regstat.c, target.h, tree-ssa-live.c, tree-ssa-pre.c,
393         tree-vect-transform.c, tree.def: Fix comment typos.  Follow
394         spelling conventions.
395         * doc/invoke.texi: Follow spelling conventions.
396
397 2007-07-29  Vladimir Yanovsky  <yanov@il.ibm.com>
398             Revital Eres  <eres@il.ibm.com>
399
400         * modulo-sched.c (sms_schedule): Avoid loops which includes
401         auto-increment instructions.
402
403 2007-07-28  Richard Guenther  <rguenther@suse.de>
404
405         PR middle-end/32920
406         * fold-const.c (fold_cond_expr_with_comparison): Convert
407         operand zero of MIN/MAX_EXPR to correct type.
408
409 2007-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
410
411         * calls.c (special_function_p, setjmp_call_p, alloca_call_p,
412         flags_from_decl_or_type): Constify.
413         * gcc.c (do_spec_1): Likewise.
414         * print-tree.c (dump_addr, print_node_brief): Likewise.
415         * tree-cfg.c (stmt_starts_bb_p, is_ctrl_stmt, computed_goto_p,
416         simple_goto_p, tree_can_make_abnormal_goto, stmt_starts_bb_p,
417         tree_purge_all_dead_eh_edges): Likewise.
418         * tree-flow.h (is_ctrl_stmt, computed_goto_p, simple_goto_p,
419         tree_can_make_abnormal_goto, tree_purge_all_dead_eh_edges):
420         Likewise. 
421         * tree.c (expr_location, expr_has_location, expr_locus,
422         expr_filename, expr_lineno, get_inner_array_type,
423         fields_compatible_p): Likewise.
424         * tree.h (get_inner_array_type, fields_compatible_p,
425         expr_location, expr_has_location, expr_locus, expr_filename,
426         expr_lineno, dump_addr, print_node_brief, flags_from_decl_or_type,
427         setjmp_call_p, alloca_call_p): Likewise.
428
429 2007-07-28  Daniel Berlin  <dberlin@dberlin.org>
430
431         * timevar.def: Add TV_CALL_CLOBBER, TV_FLOW_SENSITIVE,
432         TV_FLOW_INSENSITIVE.
433
434         * tree-ssa-alias.c (compute_call_clobbered): Push/pop
435         TV_CALL_CLOBBER.
436         (compute_flow_sensitive_aliasing): Ditto for TV_FLOW_SENSITIVE.
437         (compute_flow_insensitive_aliasing): Ditto for
438         TV_FLOW_INSENSITIVE.    
439
440 2007-07-27  Jan Hubicka  <jh@suse.cz>
441
442         * config/i386/i386.c (register_move_cost): Remove accidentally comitted
443         #if 0 block.
444
445         * attribs.c: Include hashtab.h
446         (attribute_hash): New.
447         (substring): New structure.
448         (extract_attribute_substring, substring_hash, hash_attr, eq_attr):
449         New function.
450         (init_attributes): Initialize attribute hash.
451         (decl_attributes): Use attribute hash.
452         * Makefile.in (attribs.c): Depend on hashtab.h.
453
454 2007-07-27  Steve Ellcey  <sje@cup.hp.com>
455
456         * config/ia64/vect.md (vec_initv2si): Remove bad BIG_ENDIAN test.
457
458 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
459
460         * doc/invoke.texi (mdsp, mdspr2): Document the __mips_dsp,
461         __mips_dspr2 and __mips_dsp_rev macros.
462         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dsp_rev.
463
464 2007-07-27  Douglas Gregor  <doug.gregor@gmail.com>
465         
466        * c-common.h (enum rid): Add RID_DECLTYPE, update RID_LAST_CXX0X.
467
468 2007-07-26  Kenneth Zadeck <zadeck@naturalbridge.com>
469
470         PR middle-end/32749
471         
472         * df-problems.c (df_create_unused_note): Removed do_not_gen parm
473         and the updating of the live and do_not_gen sets.
474         (df_note_bb_compute): Added updating of live and do_not_gen sets
475         for regular defs so that the case of clobber inside conditional
476         call is processed correctly.
477         
478 2007-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
479
480         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Generate the
481         operands with compatible type.
482
483 2007-07-27  Richard Sandiford  <richard@codesourcery.com>
484
485         * expr.h (store_bit_field): Don't return a value.
486         * expmed.c (check_predicate_volatile_ok): New function.
487         (store_bit_field_1): New function, extracted from store_bit_field.
488         Take a fallback_p argument and return true if the operation succeeded.
489         Only use store_fixed_bit_field if fallback_p.  Don't recompute
490         mode_for_extraction; use op_mode instead.  Try forcing memories
491         into registers if the insv expander fails.
492         (store_bit_field): Use store_bit_field_1 with fallback_p true.
493         Don't return a value.
494         (convert_extracted_bit_field): New function, extracted from
495         store_bit_field.
496         (extract_bit_field_1): Likewise.  Take a fallback_p argument
497         and return NULL if the operation succeeded.  Only use
498         extract_fixed_bit_field if fallback_p.  Only calculate one
499         extraction mode.  Combine code for extv and extzv.  Try forcing
500         memories into registers if the ext(z)v expander fails.
501         (extract_bit_field): Use extract_bit_field_1 with fallback_p true.
502
503 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
504
505         * df.h (df_mw_hardreg): Turn df_ref_type and df_ref_flags
506         into bitfields.
507         (df_ref): Likewise.  Put regno with other integer fields.
508
509 2007-07-27  Richard Sandiford  <rsandifo@nildram.co.uk>
510
511         * df.h (df_mw_hardreg): Remove "loc" field.
512         * df-scan.c (df_ref_record): Don't set it.  Remove redundant
513         local variable.
514         * df-problems.c (df_whole_mw_reg_unused_p): New function,
515         split out from df_set_unused_notes_for_mw.  Return false for
516         partial references.  Assert that mw_reg is a REG when returning true.
517         (df_set_unused_notes_for_mw): Use it.  Use mw_reg instead of *loc.
518         (df_whole_mw_reg_dead_p): New function, split out from
519         df_set_dead_notes_for_mw.  Return false for partial references.
520         Assert that mw_reg is a REG when returning true.
521         (df_set_dead_notes_for_mw): Use it.  Use mw_reg instead of *loc.
522         Remove redundant bitmap check.
523
524 2007-07-26  H.J. Lu  <hongjiu.lu@intel.com>
525
526         * config/ia64/t-ia64 ($(T)crtbegin.o): Removed.
527         ($(T)crtend.o): Likwise.
528         ($(T)crtbeginS.o): Likwise.
529         ($(T)crtendS.o): Likwise.
530         ($(T)crtfastmath.o): Likwise.
531
532 2007-07-26  Zdenek Dvorak  <dvorakz@suse.cz>
533
534         * dominance.c (dom_computed, n_bbs_in_dom_tree): Removed.
535         * function.h (dom_computed, n_bbs_in_dom_tree): New macros.
536         * basic-block.h (struct control_flow_graph): Added x_dom_computed
537         and x_n_bbs_in_dom_tree fields.
538
539 2007-07-26  Steve Ellcey  <sje@cup.hp.com>
540
541         PR tree-optimization/32087
542         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
543         Do not call scale_bbs_frequencies_int with prob of zero.
544
545 2007-07-26  Julian Brown  <julian@codesourcery.com>
546
547         * config/arm/arm-protos.h (neon_lane_bounds, neon_const_bounds)
548         (neon_element_bits): Add prototypes.
549         * config/arm/arm.c (bounds_check, neon_lane_bounds)
550         (neon_const_bounds, neon_element_bits): New functions.
551         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_lanedi)
552         (neon_vget_lanev2di, neon_vset_lane<mode>, neon_vset_lanedi)
553         (neon_vset_lanev2di, neon_vdup_lane<mode>, neon_vdup_lanedi)
554         (neon_vdup_lanev2di, neon_vcvt_n<mode>, neon_vmul_lane<mode>)
555         (neon_vmull_lane<mode>, neon_vqdmull_lane<mode>)
556         (neon_vqdmulh_lane<mode>, neon_vmla_lane<mode>)
557         (neon_vmlal_lane<mode>, neon_vqdmlal_lane<mode>)
558         (neon_vmls_lane<mode>, neon_vmlsl_lane<mode>)
559         (neon_vqdmlsl_lane<mode>, neon_vext<mode>, neon_vshr_n<mode>)
560         (neon_vshrn_n<mode>, neon_vqshrn_n<mode>, neon_vqshrun_n<mode>)
561         (neon_vshl_n<mode>, neon_vshl_n<mode>, neon_vqshl_n<mode>)
562         (neon_vqshlu_n<mode>, neon_vshll_n<mode>, neon_vsra_n<mode>)
563         (neon_vsri_n<mode>, neon_vsli_n<mode>): Add bounds checks.
564
565 2007-07-26  Nathan Froyd  <froydnj@codesourcery.com>
566
567         * config/vxworks.h (VXWORKS_LINK_SPEC): Fix typo.
568         (HAVE_AS_GNU_ATTRIBUTE): Undefine.
569
570 2007-07-26  Mark Shinwell  <shinwell@codesourcery.com>
571             Julian Brown  <julian@codesourcery.com>
572
573         * config/arm/arm.c (arm_mac_accumulator_is_mul_result): New.
574         * config/arm/arm-protos.h (arm_mac_accumulator_is_mul_result): New.
575         * config/arm/cortex-a8.md: New.
576         * config/arm/cortex-a8-neon.md: New.
577         * config/arm/neon-schedgen.ml: New.
578         * config/arm/neon.md (vqh_mnem): New.
579         (neon_type): New.
580         (Is_float_mode): New.
581         (Scalar_mul_8_16): New.
582         (Is_d_reg): New.
583         (V_mode_nunits): New.
584         (All instruction patterns): Annotate with neon_type attribute
585         values.
586         * config/arm/arm.md: Include cortex-a8.md.
587         (insn): Add smmla, umaal, smlald, smlsld, clz, mrs, msr and xtab
588         values.
589         Annotate instruction patterns accordingly.
590         (generic_sched): Do not use generic scheduling for Cortex-A8.
591         (generic_vfp): Do not use generic VFP scheduling for Cortex-A8.
592
593 2007-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
594
595         * fold-const.c (fold_read_from_constant_string): Use
596         build_int_cst_type.
597         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
598
599 2007-07-26  Nick Clifton  <nickc@redhat.com>
600
601         * tree-ssa-operands.h: Change copyright header to refer to version
602         3 of the GNU General Public License and to point readers at the
603         COPYING3 file and the FSF's license web page.
604         * tree-vrp.c, regrename.c, attribs.c, loop-unswitch.c,
605         sched-ebb.c, fwprop.c, tree-loop-linear.c, dwarf2asm.c,
606         tree-into-ssa.c, dwarf2asm.h, tree-ssa-loop-im.c, sbitmap.c,
607         targhooks.c, tree-dump.c, tree-complex.c, sbitmap.h, targhooks.h,
608         tree-dump.h, regstat.c, see.c, machmode.h, hooks.c, cgraphbuild.c,
609         hooks.h, genrecog.c, tree-ssa-threadupdate.c, gen-protos.c,
610         flags.h, rtlhooks.c, gencheck.c, tree-ssa-loop-niter.c,
611         opts-common.c, dbgcnt.def, tree-pretty-print.c, tracer.c,
612         gengtype.c, mkconfig.sh, gengtype.h, tree-ssa-loop-unswitch.c,
613         cgraph.c, c-lex.c, cgraph.h, libfuncs.h, cfgloopmanip.c,
614         rtl-error.c, optabs.c, postreload-gcse.c, tree-ssa-loop-manip.c,
615         optabs.h, genmddeps.c, defaults.h, postreload.c, value-prof.c,
616         tree-ssa-loop-ch.c, tree-tailcall.c, gengenrtl.c, value-prof.h,
617         genopinit.c, tree.c, tree.h, reload.c, tree-pass.h, ipa-cp.c,
618         reload.h, bitmap.c, bitmap.h, tree-scalar-evolution.c,
619         c-config-lang.in, tree-scalar-evolution.h, target.h, cppspec.c,
620         rtlanal.c, ddg.c, lambda-mat.c, mips-tdump.c, ddg.h,
621         tree-phinodes.c, mips-tfile.c, pointer-set.c, pointer-set.h,
622         diagnostic.c, final.c, diagnostic.h, builtins.c, genoutput.c,
623         gcc.c, lists.c, tree-ssa-alias-warnings.c, gcc.h, cfghooks.c,
624         input.h, gensupport.c, fold-const.c, cfghooks.h, insn-notes.def,
625         gensupport.h, builtin-attrs.def, sync-builtins.def, params.c,
626         cfgloopanal.c, params.h, graphds.c, omp-low.c, tree-ssa-dse.c,
627         graphds.h, gcov.c, cfg.c, genextract.c, ipa-reference.c,
628         genautomata.c, tree-ssa-uncprop.c, auto-inc-dec.c, toplev.c,
629         tree-gimple.c, ipa-reference.h, vmsdbgout.c, errors.c, toplev.h,
630         reorg.c, tree-gimple.h, tree-chrec.c, pretty-print.c, errors.h,
631         real.c, tree-chrec.h, pretty-print.h, debug.c, real.h, genemit.c,
632         omega.c, c-cppbuiltin.c, genmultilib, debug.h, omega.h,
633         tree-ssa-sccvn.c, genconfig.c, tree-ssa-sccvn.h, cgraphunit.c,
634         regs.h, df-scan.c, vec.c, hosthooks-def.h, vec.h,
635         tree-ssa-copyrename.c, scan.c, builtin-types.def, tree-ssa-ccp.c,
636         scan.h, mode-classes.def, haifa-sched.c, dominance.c, dojump.c,
637         double-int.c, gcov-io.c, dbxout.c, builtins.def, double-int.h,
638         dbxout.h, tree-ssa-loop-ivopts.c, df-core.c, mode-switching.c,
639         gengtype-lex.l, tree-nomudflap.c, modulo-sched.c, c-objc-common.c,
640         hosthooks.h, c-objc-common.h, caller-save.c, graph.c,
641         ipa-pure-const.c, graph.h, c-format.c, cse.c, fix-header.c,
642         c-format.h, web.c, tree-stdarg.c, genpeep.c, tree-stdarg.h,
643         tree-ssa-math-opts.c, xcoffout.c, tree-ssa-dom.c, tree-nrv.c,
644         xcoffout.h, tree-ssa-propagate.c, ipa-utils.c,
645         tree-ssa-propagate.h, tree-ssa-alias.c, loop-init.c, ipa-utils.h,
646         gimple-low.c, rtl.def, c-tree.h, tree-ssa-sink.c, ipa-inline.c,
647         mkmap-symver.awk, machmode.def, c-pch.c, cfganal.c, global.c,
648         alloc-pool.c, c-semantics.c, alloc-pool.h, jump.c, ifcvt.c,
649         dwarf2out.c, expr.c, cfgbuild.c, tree-browser.c, dwarf2out.h,
650         expr.h, longlong.h, opts.c, gcov-iov.c, opts.h, dwarf2.h,
651         genattrtab.c, genconditions.c, genattr.c, optc-gen.awk,
652         timevar.def, tree-ssa-loop-ivcanon.c, hard-reg-set.h, predict.c,
653         tree-ssa-loop.c, host-default.c, predict.h, recog.c, dbgcnt.c,
654         recog.h, dbgcnt.h, c-aux-info.c, tree-ssa-address.c, timevar.c,
655         dse.c, lcm.c, tree-ssa-ifcombine.c, timevar.h, dse.h,
656         matrix-reorg.c, tree-vn.c, treestruct.def, fp-test.c, c-decl.c,
657         tree-eh.c, c-errors.c, c-pretty-print.c, regmove.c,
658         lambda-trans.c, c-pretty-print.h, et-forest.c, et-forest.h,
659         ebitmap.c, configure.ac, local-alloc.c, function.c, langhooks.c,
660         ebitmap.h, cppdefault.c, tree-vectorizer.c, function.h,
661         langhooks.h, print-rtl.c, cppdefault.h, df.h, tree-vectorizer.h,
662         sdbout.c, stor-layout.c, sdbout.h, rtlhooks-def.h, read-rtl.c,
663         gcse.c, ipa-type-escape.c, vmsdbg.h, alias.c, gengtype-parse.c,
664         ipa-type-escape.h, domwalk.c, alias.h, tree-if-conv.c, profile.c,
665         init-regs.c, domwalk.h, ipa.c, gccbug.in, tree-data-ref.c,
666         loop-unroll.c, tree-data-ref.h, tree-flow-inline.h, tree-affine.c,
667         mkmap-flat.awk, tree-affine.h, tree-vect-analyze.c, c.opt, ggc.h,
668         opt-gather.awk, c-typeck.c, gimplify.c, coretypes.h, exec-tool.in,
669         insn-addr.h, tree-ssa-phiopt.c, c-pragma.c, c-pragma.h, calls.c,
670         tree-ssa-coalesce.c, genmodes.c, loop-doloop.c, predict.def,
671         dwarf.h, tree.def, rtl-factoring.c, lower-subreg.c, expmed.c,
672         bt-load.c, ggc-common.c, genflags.c, tree-dfa.c, except.c,
673         coverage.c, except.h, emit-rtl.c, cfgexpand.c, coverage.h,
674         stringpool.c, cselib.c, emit-rtl.h, tree-cfgcleanup.c, c-opts.c,
675         cselib.h, cfgcleanup.c, simplify-rtx.c, tree-ssa-pre.c, explow.c,
676         tree-ssa-live.c, tree-sra.c, tree-ssa-live.h, tree-predcom.c,
677         loop-invariant.c, genpreds.c, protoize.c, opth-gen.awk, c-dump.c,
678         lambda.h, loop-iv.c, tree-mudflap.c, ipa-prop.c, print-tree.c,
679         tree-mudflap.h, tree-ssa-copy.c, ipa-prop.h, cfglayout.c,
680         tree-ssa-forwprop.c, c-convert.c, cfglayout.h, common.opt,
681         ggc-zone.c, ggc-page.c, c-omp.c, tree-ssa-dce.c, gencodes.c,
682         varasm.c, tree-vect-patterns.c, libada-mk.in, tree-ssa-ter.c,
683         sched-deps.c, tree-nested.c, c-ppoutput.c, tree-ssa.c,
684         target-def.h, tree-ssa-loop-prefetch.c, lambda-code.c,
685         omp-builtins.def, rtl.c, regclass.c, stab.def, intl.c, rtl.h,
686         intl.h, tree-inline.c, conditions.h, tree-inline.h, integrate.c,
687         sched-int.h, tree-iterator.c, integrate.h, tree-iterator.h,
688         genchecksum.c, tree-optimize.c, output.h, tree-vect-transform.c,
689         tree-object-size.c, combine.c, tree-outof-ssa.c, addresses.h,
690         bb-reorder.c, stack-ptr-mod.c, resource.c, var-tracking.c,
691         cfgloop.c, system.h, resource.h, ggc-none.c, tree-profile.c,
692         cfgloop.h, c-gimplify.c, c-common.c, opt-functions.awk,
693         tree-vect-generic.c, tree-flow.h, df-problems.c, scan-decls.c,
694         c-common.h, config.gcc, reg-stack.c, tlink.c, main.c, stub-objc.c,
695         fixproto, config.host, Makefile.in, gccspec.c, sched-rgn.c,
696         vecprim.h, basic-block.h, tree-ssa-structalias.c,
697         tree-ssa-structalias.h, c-common.def, sched-vis.c, tree-cfg.c,
698         passes.c, genconstants.c, c-incpath.c, c-incpath.h,
699         struct-equiv.c, c-parser.c, tree-ssa-reassoc.c, varray.c, sreal.c,
700         varray.h, dfp.c, sreal.h, combine-stack-adj.c, dfp.h,
701         reg-notes.def, cfgrtl.c, config.build, varpool.c, gengtype-yacc.y,
702         stmt.c, dce.c, tree-browser.def, prefix.c, statistics.h,
703         params.def, dce.h, c-lang.c, gcov-dump.c, prefix.h,
704         tree-ssanames.c, collect2.c, collect2.h, tree-ssa-threadedge.c,
705         convert.c, convert.h, langhooks-def.h, reload1.c,
706         tree-ssa-operands.c: Likewise.
707
708 2007-07-26  Jan Hubicka  <jh@suse.cz>
709
710         * tree-ssa-live.c: Include debug.h and flags.h.
711         (mark_scope_block_unused): New function.
712         (remove_unused_scope_block_p): New function.
713         (remove_unused_locals): Remove unused blocks too.
714
715 2007-07-25  Ian Lance Taylor  <iant@google.com>
716
717         * combine.c (combine_max_regno): Remove.  Remove all uses.
718         (struct reg_stat_struct): Rename from struct reg_stat.
719         (reg_stat_type): Define, and declare VECs.
720         (reg_stat): Change from pointer to VEC.  Change all uses.
721         (combine_split_insns): New static function.
722         (try_combine, find_split_point): Call it instead of split_insns.
723
724 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
725
726         * cfghooks.c (split_block): Fix the information about loop latch.
727
728 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
729
730         * cfgloopmanip.c (fix_loop_structure): Call force_single_succ_latches.
731
732 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
733
734         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
735         Scan the new edge for loop exit info.
736
737 2007-07-25  Andreas Tobler  <a.tobler@schweiz.org>
738
739         * config/darwin.c: Include debug.h.
740
741 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
742
743         PR target/32218
744         * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
745
746 2007-07-25  Steve Ellcey  <sje@cup.hp.com>
747
748         * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
749         (HARD_REGNO_MODE_OK): Ditto.
750         (MODES_TIEABLE_P): Ditto.
751         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
752         (CLASS_MAX_NREGS): Ditto.
753         * config/ia64/ia64.c (ia64_print_operand_address): Add R format.
754         * config/ia64/ia64.md (divsf3_internal_thr): Removed.
755         (divdf3_internal_thr): Removed.
756         * config/ia64/div.md: New file.
757         * config/ia64/constraints.md: Add H constraint.
758
759 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
760
761         * sbitmap.c (sbitmap_verify_popcount, sbitmap_alloc_with_popcount,
762         sbitmap_copy, sbitmap_copy_n, sbitmap_equal, sbitmap_empty_p,
763         sbitmap_union_of_diff_cg, sbitmap_union_of_diff, sbitmap_not,
764         sbitmap_difference, sbitmap_any_common_bits, sbitmap_a_and_b_cg,
765         sbitmap_a_and_b, sbitmap_a_xor_b_cg, sbitmap_a_xor_b,
766         sbitmap_a_or_b_cg, sbitmap_a_or_b, sbitmap_a_subset_b_p,
767         sbitmap_a_or_b_and_c_cg, sbitmap_a_or_b_and_c,
768         sbitmap_a_and_b_or_c_cg, sbitmap_a_and_b_or_c,
769         sbitmap_first_set_bit, sbitmap_last_set_bit, dump_sbitmap,
770         dump_sbitmap_file, debug_sbitmap, popcount_table,
771         sbitmap_popcount): Constify.
772         * sbitmap.h (const_sbitmap, const_sbitmap_ptr): New.
773         (sbitmap_iterator, sbitmap_iter_init, dump_sbitmap,
774         dump_sbitmap_file, sbitmap_copy, sbitmap_copy_n, sbitmap_equal,
775         sbitmap_empty_p, sbitmap_union_of_diff, sbitmap_union_of_diff_cg,
776         sbitmap_difference, sbitmap_not, sbitmap_a_or_b_and_c,
777         sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c,
778         sbitmap_a_and_b_or_c_cg, sbitmap_any_common_bits, sbitmap_a_and_b,
779         sbitmap_a_and_b_cg, sbitmap_a_or_b, sbitmap_a_or_b_cg,
780         sbitmap_a_xor_b, sbitmap_a_xor_b_cg, sbitmap_a_subset_b_p,
781         sbitmap_first_set_bit, sbitmap_last_set_bit, debug_sbitmap,
782         sbitmap_popcount, sbitmap_verify_popcount): Constify.
783
784 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
785
786         * bitmap.c (hash_descriptor, eq_descriptor, bitmap_element_zerop,
787         bitmap_copy, bitmap_clear_bit, popcount_table, bitmap_count_bits,
788         bitmap_first_set_bit, bitmap_and, bitmap_and_into,
789         bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into,
790         bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior,
791         bitmap_ior_into, bitmap_xor, bitmap_xor_into, bitmap_equal_p,
792         bitmap_intersect_p, bitmap_intersect_compl_p,
793         bitmap_ior_and_compl, bitmap_ior_and_compl_into,
794         debug_bitmap_file, debug_bitmap, bitmap_print, bitmap_hash):
795         Constify.
796         * bitmap.h (bitmap_copy, bitmap_equal_p, bitmap_intersect_p,
797         bitmap_intersect_compl_p, bitmap_count_bits, bitmap_and,
798         bitmap_and_into, bitmap_and_compl, bitmap_and_compl_into,
799         bitmap_compl_and_into, bitmap_ior, bitmap_ior_into, bitmap_xor,
800         bitmap_xor_into, bitmap_ior_and_compl, bitmap_ior_and_compl_into,
801         debug_bitmap, debug_bitmap_file, bitmap_print,
802         bitmap_first_set_bit, bitmap_hash, bmp_iter_set_init,
803         bmp_iter_and_init, bmp_iter_and_compl_init): Likewise.
804
805 2007-07-25  Daniel Berlin  <dberlin@dberlin.org>
806
807         * config/darwin.c (darwin_override_options): Additional fix for
808         debug info formats that don't support var tracking.
809
810 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
811
812         * cselib.c (entry_and_rtx_equal_p): Constify.
813         * gengtype.c (output_mangled_typename, write_types, write_local):
814         Likewise.
815         * gengtype.h (const_type_p): New.
816         * see.c (eq_descriptor_extension, hash_descriptor_extension):
817         Constify.
818         * tlink.c (scan_linker_output): De-constify.
819         * tree-ssa-loop-im.c (memref_eq): Constify.
820         * tree-ssa-structalias.c (const_shared_bitmap_info_t): New.
821         (shared_bitmap_hash, shared_bitmap_eq): Constify.
822
823 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
824
825         * c-common.c (fname_as_string, c_type_hash): Constify.
826         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
827         * cgraph.c (edge_hash, edge_eq): Likewise.
828         * dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
829         * emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
830         reg_attrs_htab_eq): Likewise.
831         * except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
832         Likewise.
833         * genautomata.c (const_reserv_sets_t, const_unit_decl_t,
834         const_decl_t, const_state_t, const_automata_list_el_t): New.
835         (first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
836         DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
837         automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
838         insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
839         reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
840         automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
841         compare_max_occ_cycle_nums, out_state_arcs_num,
842         compare_transition_els_num, units_cmp, state_reservs_cmp):
843         Constify.
844         * genmodes.c (cmp_modes): Likewise.
845         * ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
846         * gimplify.c (compare_case_labels): Likewise.
847         * ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
848         * loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
849         * matrix-reorg.c (mtt_info_hash): Likewise.
850         * postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
851         * rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
852         (htab_hash_bucket, htab_hash_elem): Constify.
853         * tree-browser.c (TB_parent_eq): Likewise.
854         * tree-scalar-evolution.c (hash_scev_info): Likewise.
855         * tree-ssa-alias.c (sort_tags_by_id): Likewise.
856         * tree-ssa-coalesce.c (const_coalesce_pair_p): New.
857         (coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
858         Constify.
859         * tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
860         * tree-ssa-pre.c (const_expr_pred_trans_t): New.
861         (expr_pred_trans_hash, expr_pred_trans_eq): Constify.
862         * tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
863         const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
864         New.
865         (vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
866         vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
867         vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
868         * tree-ssa-threadupdate.c (redirection_data_hash,
869         redirection_data_eq): Likewise. 
870         * tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
871         * tree-ssa.c (var_ann_eq): Likewise.
872         * tree-vrp.c (compare_case_labels): Likewise.
873         * tree.c (int_cst_hash_hash, int_cst_hash_eq,
874         tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
875         tree_not_check_failed, tree_class_check_failed,
876         tree_range_check_failed, tree_not_class_check_failed,
877         omp_clause_check_failed, omp_clause_range_check_failed,
878         tree_contains_struct_check_failed, tree_operand_check_failed):
879         Likewise. 
880         * tree.h (tree_contains_struct_check_failed, tree_check_failed,
881         tree_not_check_failed, tree_class_check_failed,
882         tree_range_check_failed, tree_not_class_check_failed,
883         tree_operand_check_failed, omp_clause_operand_check_failed,
884         tree_operand_length): Likewise. 
885         * var-tracking.c (const_variable): New.
886         (variable_htab_hash, variable_htab_eq): Constify.
887         * varasm.c (const_desc_hash): Likewise.
888
889 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
890
891         * expr.c (handled_component_p): Constify.
892         * fold-const.c (fit_double_type): Likewise.
893         * real.h (real_value_from_int_cst): Likewise.
894         * tree-flow-inline.h (gimple_in_ssa_p,
895         gimple_aliases_computed_p, gimple_addressable_vars,
896         gimple_call_clobbered_vars, gimple_referenced_vars,
897         gimple_global_var, gimple_nonlocal_all, gimple_var_anns,
898         end_htab_p, end_referenced_vars_p, var_ann, function_ann,
899         may_aliases, end_readonly_imm_use_p, has_zero_uses,
900         has_single_use, single_imm_use, num_imm_uses, is_exec_stmt,
901         is_label_stmt, is_global_var, phi_ssa_name_p,
902         factoring_name_p, is_call_clobbered, tree_common_ann,
903         op_iter_done, end_imm_use_stmt_p, end_imm_use_on_stmt_p,
904         unmodifiable_var_p, array_ref_contains_indirect_ref,
905         ref_contains_array_ref, lookup_subvars_for_var,
906         var_can_have_subvars, overlap_subvar, gimple_ssa_operands,
907         gimple_mem_ref_stats): Likewise.
908         * tree-flow.h (tree_common_ann, var_ann, function_ann,
909         may_aliases, is_exec_stmt, is_label_stmt,
910         ref_contains_array_ref, array_ref_contains_indirect_ref,
911         var_can_have_subvars, overlap_subvar, is_call_clobbered,
912         unmodifiable_var_p): Likewise.
913         * tree-gimple.c (is_gimple_min_invariant): Likewise.
914         * tree-gimple.h (is_gimple_min_invariant): Likewise. 
915         * tree.c (type_hash_list, attribute_hash_list, tree_size,
916         cst_and_fits_in_hwi, real_value_from_int_cst,
917         build_real_from_int_cst, integer_zerop, integer_onep,
918         integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2,
919         tree_floor_log2, real_zerop, real_onep, real_twop,
920         real_minus_onep, really_constant_p, purpose_member, chain_member,
921         list_length, fields_length, int_size_in_bytes, bit_position,
922         int_bit_position, byte_position, int_byte_position, expr_align,
923         array_type_nelts, tree_node_structure,
924         type_contains_placeholder_1, iterative_hash_pointer,
925         is_attribute_with_length_p, is_attribute_p, check_qualified_type,
926         tree_map_base_eq, type_hash_list, type_hash_eq,
927         attribute_hash_list, type_num_arguments, tree_int_cst_equal,
928         tree_int_cst_lt, tree_int_cst_compare, host_integerp,
929         tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
930         simple_cst_list_equal, compare_tree_int, iterative_hash_expr,
931         int_fits_type_p, get_containing_scope, decl_function_context,
932         decl_type_context, omp_clause_operand_check_failed,
933         initializer_zerop, int_cst_value, num_ending_zeros): Likewise.
934         * tree.h (omp_clause_operand_check_failed, tree_size,
935         build_real_from_int_cst, array_type_nelts, purpose_member,
936         tree_int_cst_equal, tree_int_cst_lt, tree_int_cst_compare,
937         host_integerp, tree_low_cst, tree_int_cst_msb, tree_int_cst_sgn,
938         is_attribute_p, check_qualified_type, expr_align,
939         int_size_in_bytes, bit_position, int_bit_position, byte_position,
940         int_byte_position, list_length, fields_length, initializer_zerop,
941         integer_zerop, integer_onep, integer_all_onesp, integer_pow2p,
942         integer_nonzerop, cst_and_fits_in_hwi, num_ending_zeros,
943         tree_node_structure, handled_component_p, get_containing_scope,
944         decl_function_context, decl_type_context, real_zerop,
945         type_num_arguments, fit_double_type, really_constant_p,
946         int_fits_type_p, tree_log2, tree_floor_log2, iterative_hash_expr,
947         compare_tree_int, chain_member, simple_cst_list_equal, real_onep,
948         real_twop, real_minus_onep, int_cst_value): Likewise.
949
950 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
951
952         * cfglayout.c (insn_scope, insn_line): Constify.
953         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq,
954         const_double_htab_hash, const_double_htab_eq,
955         mem_attrs_htab_hash): Likewise.
956         * loop-iv.c (biv_eq): Likewise.
957         * print-rtl.c (print_rtx, print_decl_name, print_mem_expr,
958         print_inline_rtx, debug_rtx, debug_rtx_list, debug_rtx_range,
959         debug_rtx_find, print_rtl, print_rtl_single, print_simple_rtl):
960         Likewise. 
961         * rtl-error.c (location_for_asm, diagnostic_for_asm,
962         error_for_asm, warning_for_asm, _fatal_insn,
963         _fatal_insn_not_found): Likewise. 
964         * rtl.c (rtx_size, shared_const_p, shallow_copy_rtx_stat,
965         rtx_equal_p, rtl_check_failed_bounds, rtl_check_failed_type1,
966         rtl_check_failed_type2, rtl_check_failed_code1,
967         rtl_check_failed_code2, rtl_check_failed_code_mode,
968         rtvec_check_failed_bounds, rtl_check_failed_flag): Likewise.
969         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
970         rtl_check_failed_type2, rtl_check_failed_code1,
971         rtl_check_failed_code2, rtl_check_failed_code_mode,
972         rtvec_check_failed_bounds, rtl_check_failed_flag, LABEL_KIND,
973         SET_LABEL_KIND, rhs_regno, subreg_lsb, subreg_regno, subreg_nregs,
974         shared_const_p, rtx_size, shallow_copy_rtx_stat, rtx_equal_p,
975         get_pool_mode, insn_line, insn_file, simplify_replace_rtx,
976         mode_signbit_p, rtx_addr_can_trap_p, nonzero_address_p,
977         rtx_unstable_p, get_integer_term, get_related_value,
978         offset_within_block_p, reg_mentioned_p, count_occurrences,
979         reg_referenced_p, reg_used_between_p, no_labels_between_p,
980         single_set_2, multiple_sets, set_noop_p, refers_to_regno_p,
981         reg_overlap_mentioned_p, dead_or_set_p, dead_or_set_regno_p,
982         find_reg_note, find_regno_note, find_reg_equal_equiv_note,
983         find_constant_src, find_reg_fusage, find_regno_fusage,
984         pure_call_p, remove_note, side_effects_p, volatile_refs_p,
985         volatile_insn_p, may_trap_p, may_trap_after_code_motion_p,
986         may_trap_or_fault_p, inequality_comparisons_p, tablejump_p,
987         computed_jump_p, auto_inc_p, in_expr_list_p,
988         remove_node_from_expr_list, loc_mentioned_in_p,
989         label_is_jump_target_p, reversed_comparison_code_parts,
990         debug_rtx, debug_rtx_list, debug_rtx_range, debug_rtx_find,
991         print_mem_expr, print_rtl, print_simple_rtl, print_rtl_single,
992         print_inline_rtx): Likewise.
993         * rtlanal.c (covers_regno_p, covers_regno_no_parallel_p,
994         computed_jump_p_1, nonzero_bits1, rtx_unstable_p,
995         rtx_addr_can_trap_p_1, rtx_addr_can_trap_p, nonzero_address_p,
996         get_integer_term, get_related_value, offset_within_block_p,
997         count_occurrences, reg_mentioned_p, no_labels_between_p,
998         reg_used_between_p, reg_referenced_p, single_set_2,
999         multiple_sets, set_noop_p, refers_to_regno_p,
1000         reg_overlap_mentioned_p, dead_or_set_p,
1001         covers_regno_no_parallel_p, covers_regno_p,
1002         dead_or_set_regno_p, find_reg_note, find_regno_note,
1003         find_reg_equal_equiv_note, find_constant_src, find_reg_fusage,
1004         find_regno_fusage, pure_call_p, remove_note, in_expr_list_p,
1005         remove_node_from_expr_list, volatile_insn_p, volatile_refs_p,
1006         side_effects_p, may_trap_p_1, may_trap_p,
1007         may_trap_after_code_motion_p, may_trap_or_fault_p,
1008         inequality_comparisons_p, tablejump_p, computed_jump_p_1,
1009         computed_jump_p, auto_inc_p, loc_mentioned_in_p, subreg_lsb,
1010         subreg_regno, subreg_nregs, label_is_jump_target_p): Likewise.
1011         * simplify-rtx.c (neg_const_int, plus_minus_operand_p,
1012         mode_signbit_p, simplify_replace_rtx, plus_minus_operand_p):
1013         Likewise. 
1014         * toplev.h (_fatal_insn_not_found, _fatal_insn, error_for_asm,
1015         warning_for_asm): Likewise.
1016         * tree.h (print_rtl): Likewise.
1017         * varasm.c (get_pool_mode): Likewise.
1018
1019 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1020
1021         * c-lex.c (c_lex_with_flags, lex_string): Constify.
1022         * c-ppoutput.c (print_line, pp_dir_change): Likewise.
1023         * c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
1024         * cfg.c (bb_copy_original_hash, bb_copy_original_eq): Likewise.
1025         * cfgloop.c (loop_exit_hash, loop_exit_eq): Likewise.
1026         * ddg.c (compare_sccs): Likewise.
1027         * df-scan.c (df_ref_compare, df_mw_compare): Likewise.
1028         * dfp.c (decimal_real_from_string, decimal_to_decnumber,
1029         decimal_to_binary, decimal_do_compare, decimal_real_to_decimal,
1030         decimal_do_fix_trunc, decimal_real_to_integer,
1031         decimal_real_to_integer2, decimal_real_maxval): Likewise.
1032         * dse.c (const_group_info_t): New.
1033         (invariant_group_base_eq, invariant_group_base_hash): Constify.
1034         * dwarf2out.c (const_dw_die_ref): New.
1035         (decl_die_table_hash, decl_die_table_eq, file_info_cmp): Constify.
1036         * tree-browser.c (TB_parent_eq): Likewise.
1037         * unwind-dw2-fde.c (__register_frame_info_bases,
1038         __deregister_frame_info_bases, fde_unencoded_compare, fde_split,
1039         add_fdes, linear_search_fdes, binary_search_unencoded_fdes):
1040         Likewise.
1041         * unwind-dw2-fde.h (get_cie, next_fde): Likewise.
1042         * unwind-dw2.c (uw_frame_state_for): Likewise.
1043         * value-prof.c (histogram_hash, histogram_eq): Likewise.
1044         * value-prof.h (const_histogram_value): New.
1045
1046 2007-07-25  Richard Sandiford  <richard@codesourcery.com>
1047
1048         * config/mips/mips.c (machine_function): Add
1049         initialized_mips16_gp_pseudo_p.
1050         (mips16_gp_pseudo_reg): Do not emit the initialization of
1051         mips16_gp_pseudo_rtx when being called from the gimple cost-
1052         calculation routines; emit it on the first use outside those
1053         routines.
1054
1055 2007-07-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1056
1057         * coretypes.h (const_bitmap, const_rtx, const_rtvec, const_tree):
1058         New.
1059         
1060         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1061         RTVEC_ELT, XWINT, XCWINT, XCMWINT, XCNMPRV, BLOCK_SYMBOL_CHECK,
1062         RTL_FLAG_CHECK1, RTL_FLAG_CHECK2, RTL_FLAG_CHECK3,
1063         RTL_FLAG_CHECK4, RTL_FLAG_CHECK5, RTL_FLAG_CHECK6,
1064         RTL_FLAG_CHECK7, RTL_FLAG_CHECK8, LABEL_KIND, SET_LABEL_KIND):
1065         Preserve const-ness of parameters through use of __typeof(),
1066         also constify and tidy.
1067         
1068         * tree.h (TREE_CHECK, TREE_NOT_CHECK, TREE_CHECK2,
1069         TREE_NOT_CHECK2, TREE_CHECK3, TREE_NOT_CHECK3, TREE_CHECK4,
1070         NON_TREE_CHECK4, TREE_CHECK5, TREE_NOT_CHECK5,
1071         CONTAINS_STRUCT_CHECK, TREE_CLASS_CHECK, TREE_RANGE_CHECK,
1072         OMP_CLAUSE_SUBCODE_CHECK, OMP_CLAUSE_RANGE_CHECK, EXPR_CHECK,
1073         GIMPLE_STMT_CHECK, NON_TYPE_CHECK, TREE_VEC_ELT_CHECK,
1074         PHI_NODE_ELT_CHECK, OMP_CLAUSE_ELT_CHECK, TREE_OPERAND_CHECK,
1075         TREE_OPERAND_CHECK_CODE, GIMPLE_STMT_OPERAND_CHECK,
1076         TREE_RTL_OPERAND_CHECK, TREE_CHAIN, TREE_TYPE): Likewise.
1077
1078 2007-07-25  Julian Brown  <julian@codesourcery.com>
1079             Mark Shinwell  <shinwell@codesourcery.com>
1080
1081         * config/alpha/alpha.c (alpha_mangle_fundamental_type): Rename to...
1082         (alpha_mangle_type): This.
1083         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1084         (TARGET_MANGLE_TYPE): Define this instead.
1085         * config/arm/arm-protos.h (arm_mangle_type): Add prototype.
1086         * config/arm/arm.c (TARGET_MANGLE_TYPE): Define target hook.
1087         (arm_init_neon_builtins): Fix comment.
1088         (arm_mangle_map_entry): New.
1089         (arm_mangle_map): New.
1090         (arm_mangle_type): New.
1091         * config/i386/i386.c (ix86_mangle_fundamental_type): Rename to...
1092         (ix86_mangle_type): This. Use TYPE_MAIN_VARIANT and restrict
1093         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
1094         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1095         (TARGET_MANGLE_TYPE): Define this instead.
1096         * config/ia64/ia64.c (ia64_mangle_fundamental_type): Rename to...
1097         (ia64_mangle_type): This. Use TYPE_MAIN_VARIANT  and restrict
1098         mangled types to VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, REAL_TYPE.
1099         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1100         (TARGET_MANGLE_TYPE): Define this instead.
1101         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Rename
1102         to...
1103         (rs6000_mangle_type): This. Use TYPE_MAIN_VARIANT.
1104         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1105         (TARGET_MANGLE_TYPE): Define this instead.
1106         * config/s390/s390.c (s390_mangle_fundamental_type): Rename to...
1107         (s390_mangle_type): This.
1108         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1109         (TARGET_MANGLE_TYPE): Define this instead.
1110         * config/sparc/sparc.c (sparc_mangle_fundamental_type): Rename to...
1111         (sparc_mangle_type): This.
1112         (TARGET_MANGLE_FUNDAMENTAL_TYPE): Don't define.
1113         (TARGET_MANGLE_TYPE): Define this instead.
1114         * cp/mangle.c (write_type): Call mangle_type target hook on all
1115         types before mangling.  Use original type, not main variant, as
1116         argument.
1117         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename hook to...
1118         (TARGET_MANGLE_TYPE): This.
1119         * target.h (gcc_target): Rename mangle_fundamental_type to
1120         mangle_type.
1121         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Rename section to...
1122         (TARGET_MANGLE_TYPE): This. Note slightly different semantics.
1123
1124 2007-07-25  Julian Brown  <julian@codesourcery.com>
1125             Paul Brook  <paul@codesourcery.com>
1126             Joseph Myers  <joseph@codesourcery.com>
1127             Mark Shinwell  <shinwell@codesourcery.com>
1128
1129         * Makefile.in (TEXI_GCC_FILES): Add arm-neon-intrinsics.texi.
1130         * config.gcc (arm*-*-*): Add arm_neon.h to extra headers.
1131         (with_fpu): Allow --with-fpu=neon.
1132         * config/arm/aof.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1133         * config/arm/aout.h (ADDITIONAL_REGISTER_NAMES): Add Q0-Q15.
1134         * config/arm/arm-modes.def (EI, OI, CI, XI): New modes.
1135         * config/arm/arm-protos.h (neon_immediate_valid_for_move)
1136         (neon_immediate_valid_for_logic, neon_output_logic_immediate)
1137         (neon_pairwise_reduce, neon_expand_vector_init, neon_reinterpret)
1138         (neon_emit_pair_result_insn, neon_disambiguate_copy)
1139         (neon_vector_mem_operand, neon_struct_mem_operand, output_move_quad)
1140         (output_move_neon): Add prototypes.
1141         * config/arm/arm.c (FL_NEON): New flag for NEON processor capability.
1142         (all_fpus): Add FPUTYPE_NEON.
1143         (fp_model_for_fpu): Add NEON field.
1144         (arm_return_in_memory): Return vectors <= 16 bytes in ARM registers.
1145         (arm_arg_partial_bytes): Allow NEON vectors to be passed partially
1146         in registers.
1147         (arm_legitimate_address_p): Don't support fancy addressing for NEON
1148         structure moves.
1149         (thumb2_legitimate_address_p): Likewise.
1150         (neon_valid_immediate): Recognize and prepare constants suitable for
1151         NEON instructions.
1152         (neon_immediate_valid_for_move): New function. Recognize and prepare
1153         immediates for NEON move instructions.
1154         (neon_immediate_valid_for_logic): New function. Recognize and
1155         prepare immediates for NEON logic instructions.
1156         (neon_output_logic_immediate): New function. Create asm string
1157         suitable for outputting immediate logic instructions.
1158         (neon_pairwise_reduce): New function. Implement reduction using
1159         pairwise operations.
1160         (neon_expand_vector_init): New function. Expand a (possibly
1161         non-constant) vector initialization.
1162         (neon_vector_mem_operand): New function. Memory operands supported
1163         for quad-word loads/stores to/from ARM or NEON registers. Don't
1164         allow base+offset addressing for core regs.
1165         (neon_struct_mem_operand): New function. Valid mems for NEON
1166         structure moves.
1167         (coproc_secondary_reload_class): Enable NEON registers to be loaded
1168         from neon_vector_mem_operand addresses without a secondary register.
1169         (add_minipool_forward_ref): Handle >8-byte minipool entries.
1170         (add_minipool_backward_ref): Likewise.
1171         (dump_minipool): Likewise.
1172         (push_minipool_fix): Likewise.
1173         (output_move_quad): New function. Output quad-word moves, loads and
1174         stores using ARM registers.
1175         (output_move_vfp): Add support for vectors in VFP (NEON) D
1176         registers.
1177         (output_move_neon): Output a NEON load/store to/from a quadword
1178         register.
1179         (arm_print_operand): Implement new codes:
1180         - 'c' for unadorned integers (without a # sign).
1181         - 'J', 'K' for reg+2/reg+3, reg+3/reg+2 in little/big-endian
1182         mode.
1183         - 'e', 'f' for the low and high D parts of a NEON Q register.
1184         - 'q' outputs a NEON Q register.
1185         - 'h' outputs ranges of D registers for VLDM/VSTM etc.
1186         - 'T' prints NEON opcode features from a coded bitmask.
1187         - 'F' is similar to T, but signed/unsigned codes both print as
1188         'i'.
1189         - 't' is similar to T, but 'u' is printed instead of 'p'.
1190         - 'O' prints 'r' if NEON instruction should perform rounding (as
1191         specified by bitmask), else prints nothing.
1192         - '#' is a punctuation character to stop operand numbers from
1193         running together with following digits in the assembler
1194         strings for instructions (when using mode attributes).
1195         (arm_assemble_integer): Handle extra NEON vector modes. Permute
1196         constant vectors in big-endian mode, where necessary.
1197         (arm_hard_regno_mode_ok): Allow vectors in VFP/NEON registers.
1198         Handle EI, OI, CI, XI modes.
1199         (ashlv4hi3, ashlv2si3, lshrv4hi3, lshrv2si3, ashrv4hi3)
1200         (ashrv2si3): Rename IWMMXT2_BUILTINs to...
1201         (ashlv4hi3_iwmmxt, ashlv2si3_iwmmxt, lshrv4hi3_iwmmxt)
1202         (lshrv2si3_iwmmxt, ashrv4hi3_iwmmxt, ashrv2si3_iwmmxt): New names.
1203         (neon_builtin_type_bits): Add enumeration, one bit for each vector
1204         type.
1205         (v8qi_UP, v4hi_UP, v2si_UP, v2sf_UP, di_UP, v16qi_UP, v8hi_UP)
1206         (v4si_UP, v4sf_UP, v2di_UP, ti_UP, ei_UP, oi_UP, UP): Define macros
1207         to turn v8qi, etc. into bits defined above.
1208         (neon_itype): New enumeration. Classifications of NEON builtins.
1209         (neon_builtin_datum): Define struct. Contains information about
1210         a single builtin (with multiple modes).
1211         (CF): Define helper macro for...
1212         (VAR1...VAR10): Define builtins with a type, name and 1-10 different
1213         modes.
1214         (neon_builtin_data): New array. Define information about builtins
1215         for use during initialization/expansion.
1216         (arm_init_neon_builtins): New function.
1217         (arm_init_builtins): Call arm_init_neon_builtins if TARGET_NEON is
1218         true.
1219         (neon_builtin_compare): New function.
1220         (locate_neon_builtin_icode): New function. Find an insn code for a
1221         builtin given a function code for that builtin. Also return type of
1222         builtin (NEON_BINOP, NEON_UNOP etc.).
1223         (builtin_arg): New enumeration. Types of arguments for builtins.
1224         (arm_expand_neon_args): New function. Expand a generic NEON builtin.
1225         Takes a variable argument list of builtin_arg types, terminated by
1226         NEON_ARG_STOP.
1227         (arm_expand_neon_builtin): New function. Expand a NEON builtin.
1228         (neon_reinterpret): New function. Expand NEON reinterpret intrinsic.
1229         (neon_emit_pair_result_insn): New function. Support returning pairs
1230         of vectors via a pointer.
1231         (neon_disambiguate_copy): New function. Set up operands for a
1232         multi-word copy such that registers do not get clobbered.
1233         (arm_expand_builtin): Call arm_expand_neon_builtin if fcode >=
1234         ARM_BUILTIN_NEON_BASE.
1235         (arm_file_start): Set float-abi attribute for NEON.
1236         (arm_vector_mode_supported_p): Enable NEON vector modes.
1237         (arm_mangle_map_entry): New.
1238         (arm_mangle_map): New.
1239         (arm_mangle_vector_type): New.
1240         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_NEON__
1241         when appropriate.
1242         (TARGET_NEON): New macro. Target supports NEON.
1243         (fputype): Add FPUTYPE_NEON.
1244         (UNITS_PER_SIMD_WORD): Define. Allow quad-word registers to be used
1245         for vectorization based on command-line arg.
1246         (NEON_REGNO_OK_FOR_NREGS): Define.
1247         (VALID_NEON_DREG_MODE, VALID_NEON_QREG_MODE)
1248         (VALID_NEON_STRUCT_MODE): Define.
1249         (PRINT_OPERAND_PUNCT_VALID_P): '#' is valid punctuation.
1250         (arm_builtins): Add ARM_BUILTIN_NEON_BASE.
1251         * config/arm/arm.md (VUNSPEC_POOL_16): Insert constant for unspec.
1252         (consttable_16): Add pattern for outputting 16-byte minipool
1253         entries.
1254         (movv2si, movv4hi, movv8qi): Remove blank expanders (redefined in
1255         vec-common.md).
1256         (vec-common.md, neon.md): Include md files.
1257         * config/arm/arm.opt (mvectorize-with-neon-quad): Add option.
1258         * config/arm/constraints.md (constraint "Dn", "Dl", "DL"): Define.
1259         (memory_constraint "Ut", "Un", "Us"): Define.
1260         * config/arm/iwmmxt.md (VMMX, VSHFT): New mode macros.
1261         (MMX_char): New mode attribute.
1262         (addv8qi3, addv4hi3, addv2si3): Remove. Replace with...
1263         (*add<mode>3_iwmmxt): New insn pattern.
1264         (subv8qi3, subv4hi3, subv2si3): Remove. Replace with...
1265         (*sub<mode>3_iwmmxt): New insn pattern.
1266         (mulv4hi3): Rename to...
1267         (*mulv4hi3_iwmmxt): This.
1268         (smaxv8qi3, smaxv4hi3, smaxv2si3, umaxv8qi3, umaxv4hi3)
1269         (umaxv2si3, sminv8qi3, sminv4hi3, sminv2si3, uminv8qi3)
1270         (uminv4hi3, uminv2si3): Remove. Replace with...
1271         (*smax<mode>3_iwmmxt, *umax<mode>3_iwmmxt, *smin<mode>3_iwmmxt)
1272         (*umin<mode>3_iwmmxt): These.
1273         (ashrv4hi3, ashrv2si3, ashrdi3_iwmmxt): Replace with...
1274         (ashr<mode>3_iwmmxt): This new pattern.
1275         (lshrv4hi3, lshrv2si3, lshrdi3_iwmmxt): Replace with...
1276         (lshr<mode>3_iwmmxt): This new pattern.
1277         (ashlv4hi3, ashlv2si3, ashldi3_iwmmxt): Replace with...
1278         (ashl<mode>3_iwmmxt): This new pattern.
1279         * config/arm/neon-docgen.ml: New file. Generate documentation for
1280         intrinsics.
1281         * config/arm/neon-gen.ml: New file. Generate arm_neon.h header.
1282         * config/arm/arm_neon.h: New (autogenerated).
1283         * config/arm/neon-testgen.ml: New file. Generate NEON tests
1284         automatically.
1285         * config/arm/neon.md: New file. Define NEON instructions.
1286         * config/arm/neon.ml: New file. Abstract description of NEON
1287         instructions, used to generate arm_neon.h header, documentation and
1288         tests.
1289         * config/arm/t-arm (MD_INCLUDES): Add vec-common.md, neon.md.
1290         * vec-common.md: New file. Shared parts for iWMMXt and NEON vector
1291         support.
1292         * doc/extend.texi (ARM Built-in Functions): Rename and remove
1293         extraneous comma.
1294         (ARM NEON Intrinsics): New subsection.
1295         * doc/arm-neon-intrinsics.texi: New (autogenerated).
1296
1297 2007-07-25  Danny Smith   <dannysmith@users.sourceforge.net>
1298
1299         * config/i386/i386-protos.h (i386_pe_asm_file_end): Remove
1300         prototype.
1301
1302 2007-07-24  Jan Hubicka  <jh@suse.cz>
1303
1304         * regclass.c (move_table): New type.
1305         (move_cost, may_move_in_cost, may_move_out_cost): Use it.
1306         (init_move_cost): Break out from ...
1307         (init_reg_sets_1): ... here; simplify computation of
1308         have_regs-of_mode and contains_reg_of_mode.
1309         (record_reg_classes): Unswitch internal loops.
1310         (copy_cost): Trigger lazy initialization of move cost
1311         (record_address_regs): Likewise.
1312
1313 2007-07-24  Daniel Berlin  <dberlin@dberlin.org>
1314
1315         * config/darwin.c (darwin_override_options): Don't force on
1316         flag_var_tracking_uninit when no debug info is requested.
1317
1318 2007-07-25  Zdenek Dvorak  <dvorakz@suse.cz>
1319
1320         * cfgloop.c (init_loops_structure): New function.
1321         (flow_loops_find): Create root of the loop tree unconditionally.
1322
1323 2007-07-24  Daniel Jacobowitz  <dan@codesourcery.com>
1324
1325         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use fold_convert.
1326
1327 2007-07-24  Jan Hubicka  <jh@suse.cz>
1328
1329         * caller-save.c: Include ggc.h, gt-caller-save.h
1330         (reg_save_code, reg_restore_code): Rename to ...
1331         (cached_reg_save_code, cached_reg_restore_code): ... those.
1332         (savepat, restpat, test_reg, test_mem, saveinsn, restinsn): New.
1333         (reg_save_code, reg_restore_code): New functions.
1334         (init_caller_save): Do not intialize
1335         reg_save_code/reg_restore_code tables.
1336         * Makefile.in: (gt-caller-save.h): New.
1337
1338 2007-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1339
1340         * tree-ssa-ifcombine.c (ifcombine_ifandif): Use a ONE operand
1341         with the mode of the original operand instead of
1342         integer_one_node.
1343
1344 2007-07-23  Jan Hubicka  <jH@suse.cz>
1345
1346         * i386.c (ix86_secondary_memory_needed): Break out to...
1347         (inline_secondary_memory_needed): ... here.
1348         (ix86_memory_move_cost): Break out to ...
1349         (inline_memory_move_cost): ... here; add support for IN value of 2 for
1350         maximum of input and output; fix handling of Q_REGS on 64bit.
1351         (ix86_secondary_memory_needed): Microoptimize.
1352
1353 2007-07-23  Sebastian Pop  <sebpop@gmail.com>
1354
1355         * tree-data-ref.c (find_vertex_for_stmt, create_rdg_edge_for_ddr,
1356         create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1357         stmts_from_loop, known_dependences_p, build_rdg): New.
1358         * tree-data-ref.h: Depends on graphds.h.
1359         (rdg_vertex, RDGV_STMT, rdg_dep_type, rdg_edge, RDGE_TYPE): New.
1360         (build_rdg): Declared.
1361         * Makefile.in (TREE_DATA_REF_H): Depends on graphds.h.
1362
1363 2007-07-23  Daniel Berlin  <dberlin@dberlin.org>
1364
1365         * tree-ssa-propagate.c (valid_gimple_expression_p): Match up with
1366         ccp_min_invariant.
1367
1368 2007-07-23  Peter Bergner  <bergner@vnet.ibm.com>
1369             Jakub Jelinek  <jakub@redhat.com>
1370
1371         PR middle-end/PR28690
1372         * optabs.c (expand_binop): (emit_cmp_and_jump_insns): Allow EQ compares.
1373         * rtlanal.c (commutative_operand_precedence): Prefer both REG_POINTER
1374         and MEM_POINTER operands over REG and MEM operands.
1375         (swap_commutative_operands_p): Change return value to bool.
1376         * rtl.h: Update the corresponding prototype.
1377         * tree-ssa-address.c (gen_addr_rtx): Use simplify_gen_binary
1378         instead of gen_rtx_PLUS.
1379         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Change return
1380         value to bool.  Change function arguments to rtx's and update code
1381         to match.
1382         (simplify_plus_minus): Update the simplify_plus_minus_op_data_cmp
1383         calls to match the new declaration.
1384         * simplify-rtx.c (simplify_associative_operation): Don't
1385         reorder simplify_binary_operation arguments.
1386
1387 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1388
1389         * config/mips/mips.c (override_options): Use mips_costs to derive
1390         the default branch cost.
1391         * config/mips/mips.h (BRANCH_COST): Use mips_branch_cost rather
1392         than mips_costs.
1393         * config/mips/mips.opt (mbranch-cost=): New option.
1394         * doc/invoke.texi (-mbranch-cost): Document new MIPS option.
1395
1396 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1397
1398         * config/mips/mips.h (GR_REG_CLASS_P, COP_REG_CLASS_P): Delete.
1399         (SECONDARY_MEMORY_NEEDED): Delete commented-out definition.
1400         * config/mips/mips.c (mips_register_move_cost): Use reg_class_subset_p
1401         instead of GR_REG_CLASS_P and COP_REG_CLASS_P.
1402
1403 2007-07-23  Richard Sandiford  <richard@codesourcery.com>
1404
1405         * config/mips/constraints.md (ks): New constraint.
1406         * config/mips/mips.md (*add<mode>3_sp1, *add<mode>3_sp2): Fold into...
1407         (*add<mode>3_mips16): ...here.
1408
1409 2007-07-21  Uros Bizjak  <ubizjak@gmail.com>
1410
1411         * optabs.h (enum optab_index): Add new OTI_signbit.
1412         (signbit_optab): Define corresponding macro.
1413         (enum insn_code signbit_optab[]): Remove array.
1414         * optabs.c (init_optabs): Initialize signbit_optab using init_optab.
1415         (expand_copysign_absneg): If back end provides signbit insn, use it
1416         instead of bit operations on floating point argument.
1417         * builtins.c (enum insn_code signbit_optab[]): Remove array.
1418         (expand_builtin_signbit): Check signbit_optab->handlers[].insn_code for
1419         availability of signbit insn.
1420
1421         * config/i386/i386.md (signbit<mode>2): New insn pattern to implement
1422         signbitf, signbit and signbitl built-ins as inline x87 intrinsics when
1423         SSE mode is not active.
1424         (isinf<mode>2): Disable for mfpmath=sse,387.
1425
1426 2007-07-22  Ben Elliston  <bje@au.ibm.com>
1427
1428         * regclass.c (invalid_mode_change_p): Attach ATTRIBUTE_UNUSED to
1429         `class' parameter.
1430         * struct-equiv.c (note_local_live): Likewise for `y_regno'.
1431
1432 2007-07-20  Richard Guenther  <rguenther@suse.de>
1433
1434         * tree-cfg.c (verify_expr): COND_EXPRs can have any
1435         integral typed condition.
1436         * tree-ssa.c (useless_type_conversion_p): Do not preserve
1437         booleanness.  Only preserve conversions from a non-base
1438         type to a base type, not in general between types with
1439         different TYPE_MIN_VALUE or TYPE_MAX_VALUE.
1440         * tree.def (COND_EXPR): Document that the condition
1441         can be of any integral type.
1442
1443 2007-07-20  Nigel Stephens  <nigel@mips.com>
1444             Richard Sandiford  <richard@codesourcery.com>
1445
1446         * config/mips/mips.h (mips_dwarf_regno): Declare.
1447         (DBX_REGISTER_NUMBER): Remove redundant brackets.
1448         (HI_REGNUM, LO_REGNUM): Define in an endian-dependent way.
1449         (AC1HI_REGNUM, AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM)
1450         (AC3HI_REGNUM, AC3LO_REGNUM, ACC_HI_REG_P): Delete.
1451         (reg_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
1452         (REG_CLASS_NAMES): Update accordingly.
1453         * config/mips/mips.c (mips_dwarf_regno): New array.
1454         (mips_regno_to_class): Rename HI_REG to MD0_REG and LO_REG to MD1_REG.
1455         (mips_subword): Remove special handling for accumulator registers.
1456         (override_options): Initiailize mips_dwarf_regno.  Remove use
1457         of ACC_HI_REG_P.
1458         (mips_swap_registers): New function.
1459         (mips_conditional_register_usage): Swap accumulator registers
1460         around if TARGET_LITTLE_ENDIAN.
1461         (mips_cannot_change_mode_class): Remove special treatment of ACC_REGS.
1462         * config/mips/constraints.md (h, l): Use the endianness to choose
1463         between MD0_REG and MD1_REG.
1464         * config/mips/mips.md (*mfhilo_<mode>_macc): Use a fixed-string,
1465         alternative-dependent template.
1466
1467 2007-07-20  Richard Sandiford  <richard@codesourcery.com>
1468
1469         * config/arm/arm.md (movsi): Use can_create_pseudo_p instead of
1470         no_new_pseudos.
1471
1472 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
1473
1474         * function.c (thread_prologue_and_epilogue_insns): Fix exit
1475         predecessor fallthru flags.
1476
1477 2007-07-20  Zdenek Dvorak  <dvorakz@suse.cz>
1478
1479         * tree-ssa-loop-niter.c (assert_loop_rolls_lt): Convert the operands
1480         of compare to the same type.
1481         * cfgloopmanip.c (add_loop): Update information about loop exits.
1482         (loop_version): Remove the innermost loop requirement.
1483         * tree-ssa-loop-manip.c (determine_exit_conditions): Convert bounds
1484         to sizetype for pointers.
1485
1486 2007-07-18  H.J. Lu  <hongjiu.lu@intel.com>
1487
1488         * Makefile.in (D32PBIT_FUNCS): Add _sd_to_tf and _tf_to_sd.
1489         (D64PBIT_FUNCS): Add _dd_to_tf and _tf_to_dd.
1490         (D128PBIT_FUNCS): Add _td_to_tf and _tf_to_td.
1491
1492         * config/dfp-bit.c: Empty for TFmode conversions.
1493
1494 2007-07-18  Caroline Tice  <ctice@apple.com>
1495         
1496         * var-tracking.c (find_src_status):  Check for  COND_EXEC insns
1497         and handle them correctly; check that src is not NULL before
1498         trying to use it.
1499         (find_src_set_src): Likewise.
1500         
1501 2007-07-18  Bob Wilson  <bob.wilson@acm.org>
1502         
1503         * config/xtensa/xtensa.c (xtensa_expand_mask_and_shift): New.
1504         (struct alignment_context, init_alignment_context): New.
1505         (xtensa_expand_compare_and_swap, xtensa_expand_atomic): New.
1506         * config/xtensa/xtensa.h (XCHAL_HAVE_RELEASE_SYNC): Add default.
1507         (XCHAL_HAVE_S32C1I): Likewise.
1508         (TARGET_RELEASE_SYNC, TARGET_S32C1I): New.
1509         * config/xtensa/xtensa.md (UNSPECV_MEMW): New constant.
1510         (UNSPECV_S32RI, UNSPECV_S32C1I): Likewise.
1511         (ATOMIC, HQI): New macros.
1512         (memory_barrier, *memory_barrier): New.
1513         (sync_lock_releasesi): New.
1514         (sync_compare_and_swapsi, sync_compare_and_swap<mode>): New.
1515         (sync_lock_test_and_set<mode>): New.
1516         (sync_<atomic><mode>): New.
1517         (sync_old_<atomic><mode>, sync_new_<atomic><mode>): New.
1518         * config/xtensa/xtensa-protos.h (xtensa_expand_compare_and_swap): New.
1519         (xtensa_expand_atomic): New.
1520         
1521 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1522
1523         PR target/30652
1524
1525         * builtins.c (expand_builtin_interclass_mathfn): Provide a generic
1526         transformation for builtin ISNORMAL.
1527         (expand_builtin): Handle BUILT_IN_ISNORMAL.
1528         * builtins.def (BUILT_IN_ISNORMAL): New.
1529         * doc/extend.texi: Document isnormal.
1530
1531 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1532
1533         PR target/30652
1534
1535         * builtins.c (expand_builtin_interclass_mathfn): Allow for missing
1536         optabs infrastructure.  Provide generic implementation for
1537         FINITE/ISFINITE.
1538         (expand_builtin): Handle FINITE/ISFINITE.
1539         (fold_builtin_classify): Make ISFINITE canonical instead of FINITE.
1540         (fold_builtin_1): Likewise.
1541
1542         * builtins.def (BUILT_IN_ISFINITE): New.
1543
1544         * doc/extend.texi: Document isfinite.
1545
1546 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1547
1548         PR target/30652
1549         PR middle-end/20558
1550
1551         * builtins.c (expand_builtin_interclass_mathfn): Provide a
1552         generic fallback for isinf.
1553         * c-cppbuiltin.c (builtin_define_float_constants): Move FP max
1554         calculation code ...
1555         * real.c (get_max_float): ... to here.
1556         * real.h (get_max_float): New.
1557
1558 2007-07-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1559
1560         PR middle-end/32668
1561
1562         * builtin-attrs.def (ATTR_TYPEGENERIC,
1563         ATTR_CONST_NOTHROW_TYPEGENERIC): New.
1564
1565         * builtins.def (BUILT_IN_ISINF, BUILT_IN_ISNAN,
1566         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
1567         BUILT_IN_ISLESSEQUAL, BUILT_IN_ISLESSGREATER,
1568         BUILT_IN_ISUNORDERED): Use ATTR_CONST_NOTHROW_TYPEGENERIC.
1569
1570         * c-common.c (handle_type_generic_attribute): New.
1571         (c_common_attribute_table): Add "type generic".
1572
1573         * c-typeck.c (convert_arguments): Handle "type generic" functions.
1574
1575 2007-07-18  Daniel Berlin  <dberlin@dberlin.org>
1576
1577         * tree-ssa-sccvn.c (try_to_simplify): Use valid_gimple_expression
1578         * tree-ssa-propagate (valid_gimple_expression): Handle ADDR_EXPR
1579         properly.
1580
1581 2007-07-18  Rask Ingemann Lambertsen  <rask@sygehus.dk>
1582
1583         PR target/32808
1584         * config/cris/cris.c (cris_print_index): Don't use XEXP before
1585         checking that the operand is an expression.
1586
1587 2007-07-19  Christoph von Wittich  <Christoph_vW@reactos.org>
1588             Danny Smith  <dannysmith@users.sourceforge.net>
1589
1590         PR/other 30335
1591         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Put
1592         file mapping object in local namespace if Windows version later
1593         than NT4
1594
1595 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
1596
1597         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Declare.
1598         * config/arm/arm.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
1599         arm_cannot_force_const_mem.
1600         (arm_cannot_force_const_mem): New function.
1601         * config/arm/arm.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macro.
1602         (LEGITIMATE_CONSTANT_P): Test arm_cannot_force_const_mem instead
1603         of arm_tls_referenced_p.
1604         * config/arm/arm.md (movsi): Split out-of-section constants when
1605         ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P.
1606         * config/arm/vxworks.h (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
1607
1608 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
1609
1610         * config/mips/mips.md (clear_cache): Treat the size argument as Pmode.
1611
1612 2007-07-18  Richard Sandiford  <richard@codesourcery.com>
1613
1614         * config/mips/mips.md (*extendqihi2): Convert the destination
1615         to SImode.
1616
1617 2007-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1618
1619         * config/pa/fptr.c: Update license header.
1620         * config/pa/milli64.S: Likewise.
1621
1622 2007-07-17  Nick Clifton  <nickc@redhat.com>
1623
1624         * COPYING_v3: New file.  Contains version 3 of the GNU General
1625         Public License.
1626         * COPYING.LIB_v3: New file.  Contains version 3 of the GNU
1627         Lesser General Public License.
1628         * doc/include/gpl_v3.texi: New file.  Contains version 3 of
1629         the GNU General Public License.
1630
1631 2007-07-17  Zdenek Dvorak  <dvorakz@suse.cz>
1632
1633         PR rtl-optimization/32773
1634         * cfglayout.c (force_one_exit_fallthru): New function.
1635         (cfg_layout_finalize): Use it.
1636
1637 2007-07-16  Richard Guenther  <rguenther@suse.de>
1638             Uros Bizjak  <ubizjak@gmail.com>
1639
1640         * tree-if-conv.c (find_phi_replacement_condition): Unshare "*cond"
1641         before forcing it to gimple operand.
1642
1643 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1644             David Ung  <davidu@mips.com>
1645
1646         * config/mips/mips.h (TUNE_24K): Define.
1647         (TUNE_MACC_CHAINS): Add TUNE_24K.
1648         * config/mips/mips.md: (*mul_acc_si, *mul_sub_si): Change type to
1649         imadd.
1650         * config/mips/74k.md (r74k_int_mult): Split madd/msub to ..
1651         (r74k_int_madd): .. this new reservation.
1652         (define_bypass): Fixed bypasses for r74k_int_madd to use
1653         mips_linked_madd_p.
1654         * config/mips/24k.md (define_bypass): Define new
1655         r24k_int_mul3->r24k_int_madd bypass using mips_linked_madd_p.
1656
1657 2007-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1658             Nigel Stephens  <nigel@mips.com>
1659
1660         * config/mips/mips.md:  Include 20kc.md.
1661         * config/mips/20kc.md: New file.
1662         * config/mips/mips.c (mips_rtx_cost_data): Fill in 20Kc costs.
1663         (mips_adjust_cost): Tweak for 20Kc.
1664         (mips_issue_rate): Likewise.
1665         * config/mips/mips.h (TUNE_20KC): Define.
1666
1667 2007-07-16  David Edelsohn  <edelsohn@gnu.og>
1668
1669         * config/rs6000/rs6000.c (struct processor_cost): Add
1670         cache_line_size, l1_cache_lines, and simultaneous_prefetches
1671         fields.
1672         (*_cost): Add cache information.
1673         (rs6000_override_options): Set cache parameters.
1674
1675 2007-07-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1676
1677         PR bootstrap/3456
1678         * config.gcc (mips-sgi-irix[56]*): Enable pthread support.
1679         * doc/install.texi (mips-sgi-irix6): pthread support works now.
1680
1681 2007-07-16  Paul Brook  <paul@codesourcery.com>
1682
1683         PR target/32753
1684         * config/arm/cirrus.md (cirrus_arm_movsi_insn): Remove dead insn.
1685         (cirrus_thumb2_movsi_insn): Ditto.
1686
1687 2007-07-15  Geoffrey Keating  <geoffk@apple.com>
1688
1689         * config/rs6000/darwin-fallback.c (interpret_libc): Change
1690         CR2_REGNO to R_CR2.
1691
1692 2007-07-15  Andrew Haley  <aph@redhat.com>
1693
1694         * unwind-sjlj.c (_Unwind_GetIPInfo): Check for context->fc != NULL
1695         before looking in the context.
1696
1697 2007-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1698
1699         PR middle-end/32398
1700         PR middle-end/32769
1701         * pa-protos.h (pa_eh_return_handler_rtx): Declare.
1702         * pa.c (pa_extra_live_on_entry, rp_saved): Declare.
1703         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
1704         (pa_output_function_prologue): Use rp_saved and current_function_is_leaf
1705         to generate .CALLINFO statement.
1706         (hppa_expand_prologue): Set rp_saved.
1707         (hppa_expand_epilogue): Use rp_saved.
1708         (pa_extra_live_on_entry, pa_eh_return_handler_rtx): New functions.
1709         * pa.h (EH_RETURN_HANDLER_RTX): Use pa_eh_return_handler_rtx.
1710
1711 2007-07-14  Dirk Mueller  <dmueller@suse.de>
1712
1713         * omega.c (coalesce): Fix memory leak on early exit.
1714         * matrix-reorg.c (check_allocation_function): Likewise.
1715         * tree-vect-transform.c (vect_get_new_vect_var): free result
1716         of concat().
1717         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1718         pass pointer to edge vector
1719         (partition_hot_cold_basic_blocks): Fix memory leak.
1720         * collect2.c (prefix_from_string): Free temporary storage.
1721         * reload1.c (fixup_abnormal_edges): Free sbitmap.
1722
1723 2007-07-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1724
1725         * config/sh/sh.h (DO_GLOBAL_CTORS_BODY): Add void to prototype.
1726         (DO_GLOBAL_DTORS_BODY): Likewise.
1727
1728 2007-07-14  Sandra Loosemore  <sandra@codesourcery.com>
1729             Nigel Stephens  <nigel@mips.com>
1730
1731         * config/mips/mips.c (mips_classify_symbol): Don't return
1732         SYMBOL_SMALL_DATA for constant pool addresses if
1733         TARGET_EMBEDDED_DATA is true.
1734
1735 2007-07-14  Uros Bizjak  <ubizjak@gmail.com>
1736
1737         * config/i386/i386.c (init_mmx_sse_builtins): Define all builtins
1738         except __builtin_ia32_emms, __builtin_ia32_ldmxcsr,
1739         __builtin_ia32_stmxcsr, __builtin_ia32_maskmovq, __builtin_ia32_loadups,
1740         __builtin_ia32_storeups, __builtin_ia32_loadhps, __builtin_ia32_loadlps,
1741         __builtin_ia32_storehps, __builtin_ia32_storelps,
1742         __builtin_ia32_movntps, __builtin_ia32_movntq, __builtin_ia32_sfence,
1743         __builtin_ia32_femms, __builtin_ia32_maskmovdqu, __builtin_ia32_loadupd,
1744         __builtin_ia32_storeupd, __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
1745         __builtin_ia32_movnti, __builtin_ia32_movntpd, __builtin_ia32_movntdq,
1746         __builtin_ia32_clflush, __builtin_ia32_lfence, __builtin_ia32_mfence,
1747         __builtin_ia32_loaddqu, __builtin_ia32_storedqu, __builtin_ia32_monitor,
1748         __builtin_ia32_mwait, __builtin_ia32_lddqu, __builtin_ia32_movntdqa,
1749         __builtin_ia32_movntsd and __builtin_ia32_movntss as const builtins
1750         using def_builtin_const.
1751
1752 2007-07-14  Eric Botcazou  <ebotcazou@adacore.com>
1753
1754         PR tree-optimization/32705
1755         * tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
1756         (simplify_binary_expression): Use SSA_VAL consistently.
1757
1758 2007-07-13  David Edelsohn  <edelsohn@gnu.org>
1759
1760         * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
1761         (SPEFSCR_REGNO): Delete definition.
1762         * config/rs6000/rs6000.c: LINK_REGISTER_REGNUM -> LR_REGNO.
1763         COUNT_REGISTER_REGNUM -> CTR_REGNO.
1764         * config/rs6000/rs6000.h: Do not define *_REGNO.
1765         LINK_REGISTER_REGNUM -> LR_REGNO.
1766         COUNT_REGISTER_REGNUM -> CTR_REGNO.
1767         * config/rs6000/predicates.md: LINK_REGISTER_REGNUM ->  LR_REGNO.
1768         COUNT_REGISTER_REGNUM -> CTR_REGNO.
1769         * config/rs6000/linux-unwind.h: Define R_LR, R_CR2, R_VR0,
1770         R_VRSAVE, R_VSCR. Use them.
1771         * config/rs6000/darwin-fallback.c: Define R_LR, R_CTR, R_CR2,
1772         R_XER, R_VR0, R_VRSAVE, R_VSCR, R_SPEFSCR.  Use them.
1773         * config/rs6000/rs6000.md: Define REGNO constants.  Use them.
1774         * config/rs6000/aix.h: Define R_LR.  Use it.
1775         
1776 2007-07-13  Caroline Tice  <ctice@apple.com>
1777         
1778         * toplev.c (process_options): Turn flag_var_tracking_uninit off when
1779         flag_var_tracking is explicitly turned off (i.e. when variable
1780         tracking is not feasible); otherwise, turn flag_var_tracking on when
1781         flag_var_tracking_uninit is on.
1782         * rtl.def (VAR_LOCATION): Add a new integer subfield to VAR_LOCATION
1783         note definitions, to allow recording of initialization status in the
1784         notes.
1785         * dwarf2out.c (dwarf_stack_op_name): Add case for DW_OP_GNU_uninit.
1786         (add_var_loc_to_decl): Add comparison of NOTE_VAR_LOCATION_STATUS to
1787         determine if two note locations are equal.
1788         (output_loc_list): Don't output list entries whose start & end labels
1789         are the same.
1790         (reg_loc_descriptor): Add parameter for initialization status; pass it
1791         to other loc descriptor functions.
1792         (one_reg_loc_descriptor): Add parameter for initialization status;
1793         check its value and add DW_OP_GNU_uninit to returned loc descr if
1794         appropriate.
1795         (multiple_reg_loc_descriptor): Add parameter for initialization
1796         status;
1797         pass init status argument to other loc descriptor functions; check
1798         value of intialization parameter and add DW_OP_GNU_uninit to returned
1799         loc descr if appropriate.
1800         (based_loc_descr): Add parameter for initialization status; add new
1801         variable for return value; check value of initialization parameter and
1802         add DW_OP_GNU_uninit to returned loc descr if appropriate.
1803         (concatn_mem_loc_descriptor): Add parameter for initialization status;
1804         pass init status argument to other loc descriptor functions; check
1805         value of intialization parameter and add DW_OP_GNU_uninit to returned
1806         loc descr if appropriate.
1807         (mem_loc_descriptor): Likewise.
1808         (concat_loc_descriptor): Likewise.
1809         (concatn_loc_descriptor): Likewise.
1810         (loc_descriptor): Add parameter for initialization status; pass it as
1811         argument to other loc descriptor function calls.
1812         (loc_descriptor_from_tree_1): Add appropriate initialization status
1813         to loc descriptor function calls.
1814         (add_location_or_const_value_attribute): Get initialization status
1815         from VAR_LOCATION note; add initialization status to loc descriptor
1816         function calls.
1817         * dwarf2.h (enum dwarf_location_atom): New op, DW_OP_GNU_uninit.
1818         * print-rtl.c (print_rtx): When printing a VAR_LOCATION note, if
1819         status is uninitialized, add "[uninint]" to output.
1820         * common.opt (fvar-tracking-uninit): New option, similar to
1821         fvar-tracking, to turn on tracking of uninitialized variables; creates
1822         a new global flag, flag_var_tracking_uninit.
1823         * rtl.h (NOTE_VAR_LOCATION_STATUS): New macro for accessing new field.
1824         (enum var_init_status): New type, for var initialization status field.
1825         * var-tracking.c (struct location_chain_def): Two new fields, init,
1826         for initialization status, and set_src for the assignment value expr.
1827         (unshare_variable): New parameter for initialization status;
1828         initialize new init and set_src fields.
1829         (var_reg_set): New parameters for initialization status and value;
1830         pass them to set_variable_part.
1831         (var_mem_set): Likewise.
1832         (get_init_value): New function.
1833         (var_reg_delete_and_set): New initialization status & value
1834         parameters; add call to get_init_value if status is unknown; pass new
1835         parameters to clobber_variable_part and var_reg_set.
1836         (var_mem_delete_and_set): Likewise.
1837         (var_reg_delete): Pass null set_src value to clobber_variable_part.
1838         (var_mem_delete): Likewise.
1839         (variable_union): Pass status to unshare_variable; initialize new init
1840         and set_src fields. If flag_var_tracking_uninit is not set, force
1841         status to initialized.
1842         (add_stores): Store insn, rather than NEXT_INSN(insn), so it can be
1843         used later to get the set_src value.
1844         (find_src_status): New function.
1845         (find_src_set_src): New function.
1846         (compute_bb_dataflow): Pass init status to calls to var_reg_set,
1847         var_mem_set, var_reg_delete_and_set and var_mem_delete_and_set; for
1848         MO_SET, get set_src value and pass it to var_reg_delete_and_set
1849         and var_mem_delete_and_set.
1850         (dump_variable): Print out "[uninit]" if appropriate.
1851         (set_variable_part): Add new initialization and set_src parameters;
1852         pass status to unshare_variable; set node->init and node- >set_src
1853         fields and modify slot in hash table appropriately; save the init and
1854         set_src values if appropriate and assign to the new node.
1855         (clobber_variable_part): New set_src parameter; if two nodes have
1856         same variable and same location but different set_src (assignment)
1857         values, clobber old node.
1858         (delete_variable_part): Pass init status to unshare_variable.
1859         (emit_note_insn_var_location): Add initialized var; assign var's init
1860         status to new 'initialized'; pass new init status field to calls to
1861         gen_rtx_VAR_LOCATION. If flag_var_tracking_uninit is not set, force
1862         status to initialized.
1863         (emit_notes_in_bb): Pass initialization status to calls to
1864         var_reg_set, var_mem_set, var_reg_delete_and_set and
1865         var_mem_delete_and_set; for MO_SET, get set_src value and pass it to
1866         var_reg_delete_and_set and var_mem_delete_and_set; call
1867         emit_notes_for_changes on NEXT_INSN(insn) rather than on insn, to
1868         make up for change in add_stores.
1869         (vt_add_function_parameters): Add status to calls to
1870         set_variable_part.
1871         * config/darwin.c (darwin_override_options): Turn on uninitialized
1872         tracking automatically, if var_tracking is on and the system is
1873         10.5 or higher.
1874         
1875 2007-07-13  Sa Liu  <saliu@de.ibm.com>
1876
1877         * config.gcc: Add options for arch and tune on SPU.
1878         * config/spu/predicates.md: Add constant operands 0 and 1.
1879         * config/spu/spu-builtins.def: Add builtins for double precision 
1880         floating point comparison: si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, 
1881         si_dftsv, spu_cmpeq_13, spu_cmpabseq_1, spu_cmpgt_13, spu_cmpabsgt_1,
1882         spu_testsv.
1883         * config/spu/spu-c.c: Define __SPU_EDP__ when builtins invoked with 
1884         a CELLEDP target.
1885         * config/spu/spu-protos.h: Add new function prototypes. 
1886         * config/spu/spu.c (spu_override_options): Check options -march and
1887         -mtune.
1888         (spu_comp_icode): Add comparison code for DFmode and vector mode.
1889         (spu_emit_branch_or_set): Use the new code for DFmode and vector 
1890         mode comparison.
1891         (spu_const_from_int): New.  Create a vector constant from 4 ints.
1892         (get_vec_cmp_insn): New.  Get insn index of vector compare instruction.
1893         (spu_emit_vector_compare): New.  Emit vector compare.
1894         (spu_emit_vector_cond_expr): New.  Emit vector conditional expression.
1895         * config/spu/spu.h: Add options -march and -mtune.  Define processor
1896         types PROCESSOR_CELL and PROCESSOR_CELLEDP.  Define macro
1897         CANONICALIZE_COMPARISON.
1898         * config/spu/spu.md: Add new insns for double precision compare
1899         and double precision vector compare.  Add vcond and smax/smin patterns
1900         to enable DFmode vector conditional expression.
1901         * config/spu/spu.opt: Add options -march and -mtune.
1902         * config/spu/spu_internals.h: Add builtins for CELLEDP target:
1903         si_dfceq, si_dfcmeq, si_dfcgt, si_dfcmgt, si_dftsv.  Add builtin for
1904         both CELL and CELLEDP targets: spu_testsv.
1905         * config/spu/spu_intrinsics.h: Add flag mnemonics for test special 
1906         values.
1907
1908 2007-07-13  Richard Guenther  <rguenther@suse.de>
1909
1910         PR tree-optimization/32721
1911         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Preserve
1912         TREE_THIS_VOLATILE on the folded reference.
1913         * tree-ssa-operands.c (get_expr_operands): Set has_volatile_ops
1914         if the array reference has TREE_THIS_VOLATILE set.
1915
1916 2007-07-13  H.J. Lu  <hongjiu.lu@intel.com>
1917
1918         PR other/32188
1919         * doc/libgcc.texi: Update DFP intrinsics for DPD and BID.
1920
1921 2007-07-13  Andreas Schwab  <schwab@suse.de>
1922
1923         * gengtype-lex.l: Allow declarations to be indented.
1924
1925 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
1926
1927         * ginclude/tgmath.h: New.
1928         * config.gcc: Use GCC's tgmath.h on non-glibc systems.
1929         * doc/sourcebuild.texi (Headers): Document use_gcc_tgmath.
1930         * configure.ac (STMP_FIXPROTO): Honor use_gcc_tgmath.
1931         * configure: Regenerate.
1932
1933 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1934
1935         * config/sh/linux-unwind.h (sh_fallback_frame_state): Use
1936         correct index when setting register save state for xd
1937         registers.
1938
1939 2007-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1940
1941         * config/sh/sh.c (mark_use): Remove.
1942
1943 2007-07-12  Paul Brook  <paul@codesourcery.com>
1944
1945         * config/arm/arm.c (thumb1_compute_save_reg_mask): Make sure scratch
1946         reg does not overlap return value.
1947
1948 2007-07-12  Daniel Berlin  <dberlin@dberlin.org>
1949
1950         * tree-ssa-pre.c (get_expression_vuses): Move out side-effect.
1951         (set_expression_vuses): Ditto.
1952         (init_pre): Initialize expression_vuses.
1953
1954 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
1955
1956         * config/i386/sse.md (storentdf, storentsf): New.
1957
1958 2007-07-12  Geoffrey Keating  <geoffk@apple.com>
1959
1960         * builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
1961         FUNCTION_DECL.
1962         * tree.c (build_decl_stat): Move code from here...
1963         (make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
1964         (expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
1965         about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
1966         * tree.h (DECL_USER_ALIGN): Fix misplaced comment.
1967         * varasm.c (assemble_start_function): Use DECL_ALIGN instead of
1968         FUNCTION_BOUNDARY.
1969
1970 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
1971             Devang Patel  <dpatel@apple.com>
1972
1973         PR tree-optimization/25413
1974         * targhooks.c (default_builtin_vector_alignment_reachable): New.
1975         * targhooks.h (default_builtin_vector_alignment_reachable): New.
1976         * tree.h (contains_packed_reference): New.
1977         * expr.c (contains_packed_reference): New.
1978         * tree-vect-analyze.c (vector_alignment_reachable_p): New.
1979         (vect_enhance_data_refs_alignment): Call
1980         vector_alignment_reachable_p.
1981         * target.h (vector_alignment_reachable): New builtin.
1982         * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
1983         * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
1984         (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.
1985
1986 2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
1987
1988         * target.h (builtin_vectorization_cost): Add new target builtin.
1989         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
1990         * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
1991         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
1992         * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
1993         uninitialized variables.
1994         * tree-vect-transform.c (cost_for_stmt): New function.
1995         (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
1996         using cost 1 for all scalar stmts. Be less conservative when
1997         estimating the number of prologue/epulogue iterations. Call
1998         targetm.vectorize.builtin_vectorization_cost. Return
1999         min_profitable_iters-1.
2000         (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
2001         initialization cost instead of TARG_VEC_STMT_COST. Use
2002         TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
2003         epilogue code. Fix epilogue cost computation.
2004         * config/spu/spu.c (spu_builtin_vectorization_cost): New.
2005         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
2006         * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
2007         (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
2008         (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
2009         (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.
2010
2011 2007-07-12  Richard Guenther  <rguenther@suse.de>
2012
2013         * gimplify.c (gimplify_conversion): Make sure that the result
2014         from maybe_fold_offset_to_reference is trivially convertible
2015         to the desired type before doing the simplification.
2016         (gimplify_expr): Likewise.
2017         * fold-const.c (fold_binary): Use the correct types for
2018         building the simplified expression.
2019
2020 2007-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
2021
2022         PR rtl-optimization/32729
2023         * cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
2024         that fallthru to exit.
2025
2026 2007-07-12  Kaz Kojima  <kkojima@gcc.gnu.org>
2027
2028         * config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
2029         (symDTPOFF2reg): Likewise.
2030
2031 2007-07-11  Daniel Berlin  <dberlin@dberlin.org>
2032
2033         PR tree-optimization/32663
2034         
2035         * tree.h (VALUE_HANDLE_VUSES): Remove.
2036         (struct tree_value_handle): Remove vuses.
2037
2038         * tree-vn.c (create_value_handle_for_expr): Don't set
2039         VALUE_HANDLE_VUSES. 
2040
2041         * tree-ssa-pre.c (expression_vuses): New.
2042         (alloc_expression_id): Set up expression_vuses.
2043         (get_expression_vuses): New.
2044         (set_expression_vuses): Ditto.
2045         (clear_expression_ids): Modify for expression_vuses.
2046         (phi_translate_1): Ditto.
2047         (phi_translate_set): Ditto.
2048         (value_dies_in_block_x): Ditto
2049         (valid_in_sets): Ditto.
2050         (add_to_sets): Ditto.
2051         (find_existing_value_expr): Ditto.
2052         (create_value_handle_for_expr): Ditto.
2053         (make_values_for_stmt): Ditto.
2054         (vuse_equiv): Remove.
2055
2056 2007-07-11  Alexandre Oliva  <aoliva@redhat.com>
2057
2058         * Makefile.in (mostlyclean): Remove object files.
2059
2060 2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>
2061
2062         * toplev.c (no_new_pseudos): Deleted.
2063         * rtl.h (no_new_pseudos): Deleted.
2064         * tree-pass.h (pass_no_new_pseudos): Deleted. 
2065         * passes.c (pass_no_new_pseudos): Deleted.
2066         * final.c (rest_of_clean_state): Removed no_new_pseudos.
2067         (rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
2068         * struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
2069         reload_completed.
2070         * cfgcleanup.c (try_crossjump_to_edge): Ditto. 
2071         * rtlhooks.c (gen_lowpart_general): Ditto.
2072         * optabs.c (prepare_operand): Ditto.
2073         * mode-switching.c (rest_of_handle_mode_switching): Deleted set of
2074         no_new_pseudos.
2075         * modulo-sched.c (rest_of_handle_sms): Ditto.
2076         * see.c (rest_of_handle_see): Ditto.
2077         * ifcvt.c (if_convert): Ditto.
2078         (gate_handle_if_after_combine): Replaced no_new_pseudos with 
2079         reload_completed.
2080         * init-regs.c (gate_initialize_regs): Deleted set of
2081         no_new_pseudos.
2082         * lower-subreg.c (decompose_multiword_subregs): Ditto. 
2083         * bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
2084         * doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.
2085         
2086 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
2087
2088         PR target/32661
2089         * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
2090         (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
2091         (*vec_extractv2di_1_rex64): New insn pattern.
2092
2093 2007-07-11  David Daney  <ddaney@avtrex.com>
2094
2095         * config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
2096         return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
2097         for SIGNAL_UNWIND_RETURN_COLUMN.
2098         * config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
2099         (DWARF_FRAME_REGNUM): Rewrite.
2100         (DWARF_ALT_FRAME_RETURN_COLUMN) Define.
2101
2102 2007-07-11  Nick Clifton  <nickc@redhat.com>
2103
2104         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous
2105         delta and use gen_int_mode in place of GET_INT instead.
2106
2107 2007-07-11  Uros Bizjak  <ubizjak@gmail.com>
2108
2109         * reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
2110         and letter field.
2111
2112 2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>
2113
2114         * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
2115         (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical 
2116         types or not.
2117         * params.h (VERIFY_CANONICAL_TYPES): Remove.
2118         (USE_CANONICAL_TYPES): New.
2119         * doc/invoke.texi (verify-canonical-types): Remove.
2120         (use-canonical-types): Add.
2121
2122 2007-07-11  Ulrich Weigand  <uweigand@de.ibm.com>
2123
2124         * config/spu/spu.c (spu_optimization_options): Remove setting of
2125         parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
2126         (spu_override_options): Move it here.
2127
2128 2007-07-11  Richard Sandiford  <richard@codesourcery.com>
2129
2130         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
2131         * config/mips/mips.c (mips_cpu_info_table): Mention
2132         MIPS_ISA_LEVEL_SPEC in the comment.
2133
2134 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2135
2136         PR tree-optimization/32713
2137         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.
2138
2139 2007-07-11  Paolo Carlini  <pcarlini@suse.de>
2140
2141         PR middle-end/30482
2142         * c-opts.c (c_common_post_options): Do not change flag_complex_method
2143         conditional to flag_isoc99.
2144         (c_common_init_options): Do it here, unconditionally.
2145
2146 2007-07-11  Eric Botcazou  <ebotcazou@adacore.com>
2147
2148         PR tree-optimization/32589
2149         * doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
2150         * tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
2151         * tree-ssa-propagate.c (valid_gimple_expression_p): New
2152         predicate, extracted from...
2153         (set_rhs): ...here.  Call it for the expression on entry.
2154         * tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
2155         * tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
2156         (simplify_binary_expression): Use valid_gimple_expression_p
2157         to validate the simplification.
2158         * Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.
2159
2160 2007-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
2161
2162         * config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
2163         DWARF2_DEBUG on 32 bit target too.
2164         (DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition. 
2165
2166 2007-07-11  Nick Clifton  <nickc@redhat.com>
2167
2168         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Provide alternative
2169         version for 64-bit hosts.
2170
2171 2007-07-10  David Daney  <ddaney@avtrex.com>
2172
2173         * config/mips/mips.h (ISA_HAS_SYNCI): New target capability
2174         predicate.
2175         (INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
2176         call.
2177         * config/mips/mips.c (mips_expand_synci_loop): New function.
2178         * config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
2179         (UNSPEC_RDHWR): Same.
2180         (UNSPEC_SYNCI): Same.
2181         (UNSPEC_SYNC): Same.
2182         (clear_cache): New expand.
2183         (sync): New insn.
2184         (synci): Same.
2185         (rdhwr): Same.
2186         (clear_hazard): Same.
2187         * config/mips/mips-protos.h (mips_expand_synci_loop): Declare
2188         function.
2189         * testsuite/gcc.target/mips/clear-cache-1.c: New test.
2190         * testsuite/gcc.target/mips/clear-cache-2.c: New test.
2191
2192 2007-07-10  Ian Lance Taylor  <iant@google.com>
2193
2194         * emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
2195         no_new_pseudos.
2196
2197 2007-07-10  David Daney  <ddaney@avtrex.com>
2198
2199         * builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
2200         * builtins.c (expand_builtin___clear_cache): New function.
2201         (expand_builtin): Call expand_builtin___clear_cache for
2202         BUILT_IN_CLEAR_CACHE case.
2203         * doc/extend.texi (__builtin___clear_cache): Document new builtin.
2204         * doc/md.texi (clear_cache): Document new instruction pattern.
2205         * testsuite/gcc.dg/builtins-64.c: New test.
2206
2207 2007-07-11  Hans-Peter Nilsson  <hp@axis.com>
2208
2209         * config/cris/cris.md ("movsi"): Fix typo in last change.
2210
2211 2007-07-09  Geoffrey Keating  <geoffk@apple.com>
2212
2213         PR 32617
2214         * c-common.c (c_alignof_expr): Look at DECL_ALIGN of
2215         FUNCTION_DECLs.
2216         (handle_aligned_attribute): Allow use on FUNCTION_DECLs.
2217         * varasm.c (assemble_start_function): Honor DECL_ALIGN
2218         for FUNCTION_DECLs.  Don't use align_functions_log if
2219         DECL_USER_ALIGN.
2220         * print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
2221         even for FUNCTION_DECLs.
2222         * c-decl.c (merge_decls): Propagate DECL_ALIGN even for
2223         FUNCTION_DECLs.
2224         * tree.h (DECL_ALIGN): Update for new location of 'align'.
2225         (DECL_FUNCTION_CODE): Update for new location and name of
2226         'function_code'.
2227         (DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
2228         (struct tree_decl_common): Move 'align' and 'off_align' out
2229         of union, ensure they're still on a 32-bit boundary.  Remove
2230         other fields in union 'u1'.
2231         (struct tree_function_decl): Add field 'function_code' replacing
2232         'u1.f' in tree_decl_common.
2233         * tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
2234         * doc/extend.texi (Function Attributes): Add 'aligned' attribute.
2235         (Variable Attributes): Cross-reference 'aligned' attribute
2236         to Function Attributes.
2237         * flags.h (force_align_functions_log): Delete.
2238         * toplev.c (force_align_functions_log): Delete.
2239
2240 2007-07-10  Uros Bizjak  <ubizjak@gmail.com>
2241
2242         PR target/32708
2243         * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
2244         (*vec_concatv2di_rex): New insn pattern.
2245
2246 2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2247
2248         PR target/32538
2249         * config/mips/iris6.h (LIBGCC_SPEC): Add libm.
2250
2251 2007-07-10  Ian Lance Taylor  <iant@google.com>
2252
2253         Replace no_new_pseudos in backends.
2254         * rtl.h (can_create_pseudo_p): Define.
2255         * config/darwin.c (machopic_indirect_data_reference): Use
2256         can_create_pseudo_p () instead of no_new_pseudos.
2257         (machopic_indirect_data_reference): Likewise.
2258         (machopic_legitimize_pic_address): Likewise.
2259         * config/alpha/alpha.c (alpha_legitimize_address): Likewise.
2260         (alpha_emit_set_const_1): Likewise.
2261         (alpha_emit_set_const): Likewise.
2262         (alpha_emit_conditional_move): Likewise.
2263         (alpha_split_conditional_move): Likewise.
2264         * config/alpha/alpha.md (various splitters): Likewise.
2265         (movti): Likewise.
2266         * config/arm/arm.c (legitimize_pic_address): Likewise.
2267         (arm_load_pic_register): Likewise.
2268         * config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
2269         (movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
2270         * config/bfin/bfin.c (legitimize_pic_address): Likewise.
2271         * config/cris/cris.c (cris_expand_pic_call_address): Likewise.
2272         * config/cris/cris.md (movsi): Likewise.
2273         * config/frv/frv.md (symGOT2reg_hilo): Likewise.
2274         (symGOTOFF2reg_hilo): Likewise.
2275         (symGPREL2reg, symGPREL2reg_hilo): Likewise.
2276         * config/h8300/h8300.md (insv, extzv): Likewise.
2277         * config/i386/i386.c (ix86_expand_move): Likewise.
2278         (ix86_expand_vector_move): Likewise.
2279         (ix86_prepare_fp_compare_args): Likewise.
2280         (ix86_expand_carry_flag_compare): Likewise.
2281         * config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
2282         (tls_dynamic_gnu2_combine_32): Likewise.
2283         (tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
2284         * config/ia64/ia64.c (ia64_expand_move): Likewise.
2285         (ia64_expand_movxf_movrf): Likewise.
2286         * config/m32c/m32c.c (m32c_prepare_move): Likewise.
2287         (m32c_split_move): Likewise.
2288         (m32c_expand_insv): Likewise.
2289         * config/m68k/m68k.md (movsi): Likewise.
2290         * config/mips/mips.c (mips_force_temporary): Likewise.
2291         (mips_split_symbol): Likewise.
2292         (mips_move_integer): Likewise.
2293         (mips_legitimize_const_move): Likewise.
2294         * config/mn10300/mn10300.md (movsi): Likewise.
2295         * config/pa/pa.c (emit_move_sequence): Likewise.
2296         * config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
2297         (rs6000_got_register): Likewise.
2298         (create_TOC_reference): Likewise.
2299         (rs6000_machopic_legitimize_pic_address): Likewise.
2300         * config/rs6000/rs6000.md (add<mode>3): Likewise.
2301         (various splitters): Likewise.
2302         (iorsi3, xorsi3, iordi3, xordi3): Likewise.
2303         (movsi_got): Likewise.
2304         * config/s390/s390.c (emit_symbolic_move): Likewise.
2305         * config/s390/s390.md (movhi, movqi): Likewise.
2306         (load_multiple, store_multiple): Likewise.
2307         * config/score/score.c (score_force_temporary): Likewise.
2308         * config/sh/sh.c (prepare_move_operands): Likewise.
2309         (prepare_cbranch_operands): Likewise.
2310         (emit_fpu_switch): Likewise.
2311         (fpscr_set_from_mem): Likewise.
2312         * config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
2313         (adddi3, subsi3): Likewise.
2314         (various splitters): Likewise.
2315         (divsi_inv_fp_combine): Likewise.
2316         (symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
2317         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
2318         (sne): Likewise.
2319         * config/sh/predicates.md (xor_operand): Likewise.
2320         * config/sparc/sparc.c (legitimize_tls_address): Likewise.
2321         * config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
2322         (movdi_pic_label_ref): Likewise.
2323         * config/spu/spu.c (spu_split_immediate): Likewise.
2324         * config/alpha/alpha.md (various splitters): Remove test
2325         !no_new_pseudos || reload_completed.
2326         * config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
2327         no_new_pseudos.
2328         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
2329         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
2330         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2331         * config/score/score.c (th_output_mi_thunk): Likewise.
2332         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2333         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2334
2335 2007-07-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2336
2337         PR rtl-optimization/32664
2338         * mode-switching.c (create_pre_exit): Skip barrier insns.
2339
2340 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2341
2342         * tree-scalar-evolution.c (scev_const_prop): Add arguments to
2343         force_gimple_operand_bsi.
2344         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
2345         rewrite_use_compare): Ditto.
2346         * tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
2347         Ditto.
2348         * tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
2349         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2350         * lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
2351         * tree-profile.c (prepare_instrumented_value,
2352         tree_gen_interval_profiler, tree_gen_pow2_profiler,
2353         tree_gen_one_value_profiler, tree_gen_ic_profiler,
2354         tree_gen_ic_func_profiler, tree_gen_average_profiler,
2355         tree_gen_ior_profiler): Ditto.
2356         * tree-ssa-reassoc.c (negate_value): Ditto.
2357         * matrix-reorg.c (transform_access_sites, transform_allocation_sites):
2358         Use force_gimple_operand_bsi.
2359         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2360         * tree-if-conv.c (add_to_dst_predicate_list,
2361         find_phi_replacement_condition): Ditto.
2362         * gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
2363         Call mark_symbols_for_renaming for new statements.
2364         * tree-flow.h (force_gimple_operand_bsi): Declaration changed.
2365
2366 2007-07-10  Zdenek Dvorak  <dvorakz@suse.cz>
2367
2368         * cfghooks.c (remove_edge): New function.
2369         (redirect_edge_and_branch, remove_branch, merge_blocks): Updated
2370         loop exit rescans.
2371         * cfghooks.h (remove_edge): Declare.
2372         * cfg.c (remove_edge): Renamed to remove_edge_raw.
2373         * basic-block.h (remove_edge): Declaration changed to remove_edge_raw.
2374
2375 2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>
2376
2377         * optabs.h: Added declaration for signbit_optab.  
2378         * optabs.c: (init_optabs): Added initialization for signbit_optab.
2379         * genoptinit.c (optabs): Added entry for signbit insns.  
2380         * builtins.c (expand_builtin_signbit): Added code to use a signbit
2381         insn, if available.  
2382         * config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
2383         * config/s390/s390.md (signbit<mode>2): New expander.  
2384
2385 2007-07-09  Richard Guenther  <rguenther@suse.de>
2386
2387         PR middle-end/32698
2388         * fold-const.c (fold_plusminus_mult_expr): Move constant
2389         arguments second to allow decomposing.
2390
2391 2007-07-09  Alexandre Oliva  <aoliva@oliva.athome.lsd.ic.unicamp.br>
2392
2393         Revert:
2394         2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
2395         PR debug/23551
2396         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2397         Disregard DECL_FROM_INLINE.
2398
2399 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2400
2401         PR target/27855
2402         * doc/invoke.texi: Add ftree-reassoc flag.
2403         * common.opt (ftree-reassoc): New flag.
2404         * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
2405         (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.
2406
2407 2007-07-09  Uros Bizjak  <ubizjak@gmail.com>
2408
2409         PR tree-optimization/32681
2410         * tree-if-conv.c (find_phi_replacement_condition): Use the condition
2411         saved in second_edge->aux when first_bb is a loop header.
2412
2413 2007-07-09  Jan HUbicka  <jh@suse.cz>
2414
2415         * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
2416
2417 2007-07-09  Richard Guenther  <rguenther@suse.de>
2418
2419         * c-decl.c (start_function): Do not promote return type.
2420
2421 2007-07-08  Daniel Franke  <franke.daniel@gmail.com>
2422
2423         * function.c (do_warn_unused_parameter): Do not warn if
2424         TREE_NO_WARNING is set.
2425
2426 2007-07-08  Andreas Schwab  <schwab@suse.de>
2427
2428         * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
2429
2430 2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>
2431
2432         Revert this patch:
2433         2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
2434
2435         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
2436         apply to assembly language, too.
2437         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2438
2439 2007-07-07  Daniel Berlin  <dberlin@dberlin.org>
2440
2441         Revert (note the sccvn portions are *not* reverted)
2442         2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
2443
2444         Fix PR tree-optimization/23488
2445
2446         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
2447         handles.
2448         * tree-flow-inline.h (get_value_handle): Ditto.
2449         * tree-ssa-pre.c (decl_vh_map): New.
2450         (decl_node_pool): New.
2451         (can_value_number_operation): Support DECL_P.
2452         (can_PRE_operation): Ditto.
2453         (create_expression_by_pieces): Ditto.
2454         (find_existing_value_expr): Modify to differnetiate between
2455         addressing and top level.
2456         (create_value_handle_for_expr): Handle DECL's.
2457         (poolify_tree): Ditto.
2458         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
2459         (make_values_for_stmt): Handle DECL's properly.
2460         (init_pre): Reorg to not init useless things during FRE.
2461         (fini_pre): Ditto.
2462         * tree-flow.h: Include pointer-set.h.
2463         (decl_vh_map): Declare.
2464         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
2465
2466 2007-07-07 Eric Weddington  <eweddington@cso.atmel.com>
2467
2468         * config/avr/constraints.md (define_memory_constraint "Q"): Fix
2469         the constraint description.
2470         * doc/md.texi: Update documentation of AVR constraints.
2471
2472 2007-07-07  Kazu Hirata  <kazu@codesourcery.com>
2473
2474         * auto-inc-dec.c, config/arm/arm.c,
2475         config/m32r/constraints.md, config/mips/mips.md,
2476         config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
2477         df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
2478         tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
2479         typos.  Follow spelling conventions.
2480         * doc/invoke.texi, doc/rtl.texi: Fix typos.
2481
2482         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
2483         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
2484
2485         * tree-ssa-operands.c (realloc_vop, realloc_vdef,
2486         realloc_vuse): Remove.
2487         * tree-ssa-operands.h: Remove the prototype for realloc_vdef
2488         and realloc_vuse.
2489
2490 2007-07-06  Daniel Berlin  <dberlin@dberlin.org>
2491
2492         Fix PR tree-optimization/23488
2493
2494         * tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
2495         (try_to_simplify): Ditto.
2496         (visit_use): Ditto.
2497         * tree-vn.c (set_value_handle): Use decl_vh_map for decl value
2498         handles.
2499         * tree-flow-inline.h (get_value_handle): Ditto.
2500         * tree-ssa-pre.c (decl_vh_map): New.
2501         (decl_node_pool): New.
2502         (can_value_number_operation): Support DECL_P.
2503         (can_PRE_operation): Ditto.
2504         (create_expression_by_pieces): Ditto.
2505         (find_existing_value_expr): Modify to differnetiate between
2506         addressing and top level.
2507         (create_value_handle_for_expr): Handle DECL's.
2508         (poolify_tree): Ditto.
2509         (make_values_for_phi): Don't insert into PHI_GEN during FRE.
2510         (make_values_for_stmt): Handle DECL's properly.
2511         (init_pre): Reorg to not init useless things during FRE.
2512         (fini_pre): Ditto.
2513         * tree-flow.h: Include pointer-set.h.
2514         (decl_vh_map): Declare.
2515         * Makefile.in (TREE_FLOW_H): Add pointer-set.h
2516                 
2517 2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>
2518
2519         * c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
2520         apply to assembly language, too.
2521         * doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.
2522
2523 2007-07-06  Ian Lance Taylor  <iant@google.com>
2524             Zack Weinberg  <zackw@panix.com>
2525
2526         PR middle-end/32441
2527         * builtins.c (std_expand_builtin_va_start): Don't use make_tree.
2528
2529 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2530
2531         * config/sh/sh.md (*prefetch_i4): Disable for TARGET_VXWORKS_RTP.
2532         (prefetch): Likewise if "pref" would be used.
2533
2534 2007-07-06  Josh Conner  <jconner@apple.com>
2535
2536         PR middle-end/32602
2537         PR middle-end/32603
2538         * calls.c (store_one_arg): Handle arguments which are partially
2539         on the stack when detecting argument overlap.
2540
2541 2007-07-06  Bernd Schmidt  <bernd.schmidt@analog.com>
2542
2543         * reload1.c (choose_reload_regs): Set reload_spill_index for regs
2544         chosen during find_reloads.
2545
2546 2007-07-06  Richard Guenther  <rguenther@suse.de>
2547
2548         * gimplify.c (gimplify_call_expr): Prefer DECL_ARGUMENTS over
2549         TYPE_ARG_TYPES for verification of argument types.  Use
2550         DECL_ARG_TYPE instead of the PARM_DECL type.  Take excess
2551         parameters as variable arguments.
2552
2553 2007-07-06  Andreas Krebbel  <krebbel1@de.ibm.com>
2554
2555         * libgcc2.h (word_type): Type definition removed.
2556         (cmp_return_type, shift_count_type): Type definitions added.
2557         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
2558         replaced with shift_count_type.
2559         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
2560         cmp_return_type.
2561         * libgcc2.c (__udivmoddi4, __moddi3): Type of local variable c
2562         changed from word_type to Wtype.
2563         (__lshrdi3, __ashldi3, __ashrdi3): word_type of second parameter
2564         replaced with shift_count_type.
2565         (__cmpdi2, __ucmpdi2): word_type of return type replaced with
2566         cmp_return_type.
2567         * c-common.c (handle_mode_attribute): Handling for libgcc_cmp_return
2568         and libgcc_shift_count attribute added.
2569         * target-def.h (TARGET_LIBGCC_CMP_RETURN_MODE,
2570         TARGET_LIBGCC_SHIFT_COUNT_MODE): New target hooks defined.
2571         (TARGET_INITIALIZER): New target hooks added.
2572         * targhooks.c (default_libgcc_cmp_return_mode,
2573         default_libgcc_shift_count_mode): Default implementations for the new
2574         target hooks added.
2575         * targhooks.h (default_libgcc_cmp_return_mode,
2576         default_libgcc_shift_count_mode): Function prototypes added.
2577         * target.h (struct gcc_target): Fields for the new target hooks added.
2578         * optabs.c (expand_binop): Use shift_count_mode when expanding shift
2579         as library call.
2580         (prepare_cmp_insn): Use cmp_return_mode when expanding comparison as
2581         library call.
2582
2583         * doc/tm.texi (TARGET_LIBGCC_CMP_RETURN_MODE,
2584         TARGET_LIBGCC_SHIFT_COUNT_MODE): Documentation added.
2585
2586         * config/s390/s390.c (s390_libgcc_cmp_return_mode,
2587         s390_libgcc_shift_count_mode): Functions added.
2588         (TARGET_LIBGCC_CMP_RETURN_MODE, TARGET_LIBGCC_SHIFT_COUNT_MODE):
2589         Target hooks defined.
2590
2591 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2592
2593         * config/mips/mips.c (compute_frame_size): Restore the original
2594         gp_sp_offset for !GENERATE_MIPS16E_SAVE_RESTORE and remove the
2595         fp_size term from the GENERATE_MIPS16E_SAVE_RESTORE calculation.
2596         Document why the difference is needed.
2597
2598 2007-07-06  Richard Guenther  <rguenther@suse.de>
2599
2600         * c-common.c (boolean_increment): Use correctly typed
2601         constant.
2602
2603 2007-07-06  Richard Sandiford  <richard@codesourcery.com>
2604
2605         * config/mips/mips.c (mips16e_save_restore_pattern_p): Check that
2606         the topmost argument register is not also included in the save mask.
2607         (mips16e_collect_argument_save_p): Take a pointer to the argument
2608         register, rather than a pointer to the number of arguments.
2609         (mips16e_collect_argument_saves): Only include argument saves
2610         that aren't in the register mask.
2611
2612 2007-07-06  Uros Bizjak  <ubizjak@gmail.com>
2613
2614         PR rtl-optimization/32450
2615         * function.c (thread_prologue_and_epilogue_insns): Emit blockage insn
2616         to ensure that instructions are not moved into the prologue when
2617         profiling is on.  Remove unused prologue_end variable.
2618         (expand_function_end): Emit blockage insn instead of ASM_INPUT rtx
2619         as a scheduling barrier.
2620
2621 2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
2622
2623         PR debug/23551
2624         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
2625         Disregard DECL_FROM_INLINE.
2626
2627 2007-07-05  Adam Nemet  <anemet@caviumnetworks.com>
2628
2629         * rtlanal.c (num_sign_bit_copies1): Improve cases of ANDing or
2630         IORing with a constant.
2631
2632 2007-07-05  Seongbae Park  <seongbae.park@gmail.com>
2633
2634         PR rtl-optimization/32475
2635         * df-scan.c (df_def_record_1): Add a use of the stack pointer
2636         for every definition of the stack pointer.
2637
2638 2007-07-05  Richard Earnshaw  <rearnsha@arm.com>
2639
2640         * arm.c (vfp3_const_double_index): Copy signed results of
2641         REAL_VALUE_TO_INT into unsigned vars.
2642
2643 2007-07-05  Richard Guenther  <rguenther@suse.de>
2644
2645         PR middle-end/32639
2646         * alias.c (get_alias_set): Tread METHOD_TYPE the same as
2647         FUNCTION_TYPE.
2648         * tree-ssa.c (useless_type_conversion_p): Check canonical
2649         types early.
2650
2651 2007-07-05 Anatoly Sokolov <aesok@post.ru>
2652
2653         * config/avr/avr.md (zero_extendqihi2, zero_extendqisi2, 
2654         zero_extendhisi2): Change to define_insn_and_split. 
2655         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New.
2656
2657 2007-07-05  Paolo Bonzini  <bonzini@gnu.org>
2658
2659         * function.c (match_asm_constraints_1, rest_of_match_asm_constraints,
2660         pass_match_asm_constraints): New.
2661         * passes.c (init_optimization_passes): Add new pass.
2662         * stmt.c (expand_asm_operands): Set cfun->has_asm_statement.
2663         * function.h (struct function): Add has_asm_statement bit.
2664         (current_function_has_asm_statement): New.
2665         * tree-pass.h (pass_match_asm_constraints): New.
2666
2667 2007-07-05  Richard Sandiford  <rsandifo@nildram.co.uk>
2668
2669         * config/mips/mips.c (mips_file_start): Avoid declaration
2670         after code.
2671
2672 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2673
2674         * optabs.c (expand_binop_directly): Fix signed/unsigned comparison.
2675
2676 2007-07-05  Uros Bizjak  <ubizjak@gmail.com>
2677
2678         * rtl.def (NOTE): Change print format string to print
2679         operand 5 as a note insn name.
2680
2681 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2682             David Ung  <davidu@mips.com>
2683
2684         * config/mips/mips.c (mips_cpu_info): Add 4ksc and 4ksd processors.
2685         * doc/invoke.texi: (MIPS Options): Document them.
2686
2687 2007-07-05  Sandra Loosemore  <sandra@codesourcery.com>
2688             David Ung  <davidu@mips.com>
2689
2690         Add support for SmartMIPS ASE.
2691
2692         * optabs.c (expand_binop_directly): New, broken out from...
2693         (expand_binop): Here.  Make it try rotating in the other
2694         direction even when the second operand isn't constant.
2695         * config/mips/mips.md (*lwxs): New.
2696         * config/mips/mips.opt (msmartmips): New.
2697         * config/mips/mips.c (mips_lwxs_address_p): New.
2698         (mips_rtx_costs): Make it recognize scaled indexed addressing.
2699         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
2700         __mips_smartmips when compiling for TARGET_SMARTMIPS.
2701         (ISA_HAS_ROR): Define for TARGET_SMARTMIPS.
2702         (ISA_HAS_LWXS): New.
2703         (ASM_SPEC): Add -msmartmips/-mno-smartmips.
2704         * doc/invoke.texi (MIPS Options): Document -msmartmips/-mno-smartmips.
2705         * testsuite/gcc.target/mips/smartmips-lwxs.c: New test case.
2706         * testsuite/gcc.target/mips/smartmips-ror-1.c: New test case.
2707         * testsuite/gcc.target/mips/smartmips-ror-2.c: New test case.
2708         * testsuite/gcc.target/mips/smartmips-ror-3.c: New test case.
2709         * testsuite/gcc.target/mips/smartmips-ror-4.c: New test case.
2710
2711 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
2712
2713         * tree-vectorizer.c (new_loop_vec_info): Initialize
2714         LOOP_VINFO_COST_MODEL_MIN_ITERS.
2715         * tree-vectorizer.h (_loop_vec_info): Added new filed
2716         min_profitable_iters.
2717         (LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
2718         (TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
2719         * tree-vect-analyze.c (vect_analyze_operations): Set
2720         LOOP_VINFO_COST_MODEL_MIN_ITERS.
2721         * tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
2722         VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
2723         Fix calculation of peel_iters_prologue. Move consideration of epilogue
2724         and prologue cost to after they are computed.
2725         (vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
2726         TARG_VEC_STMT_COST.
2727         (vect_model_simple_cost): Takes additional argument dt. Consider cost
2728         of creating vectors from scalars according to dt.
2729         (vect_model_store_cost): Likewise.
2730         (vectorizable_call): Use dt array instead of scalar dt. Call
2731         vect_model_simple_cost with additional argument dt.
2732         (vectorizable_assignment): Likewise.
2733         (vectorizable_operation): Likewise.
2734         (vectorizable_type_demotion): Likewise.
2735         (vectorizable_type_promotion): Likewise.
2736         (vectorizable_store): Use dt array instead of scalar dt. Call
2737         vect_model_store_cost with additional argument dt.
2738         (vect_do_peeling_for_loop_bound): Don't call
2739         vect_estimate_min_profitable_iters. Instead, lookup
2740         LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
2741         "may not be profitable".
2742
2743 2007-07-05  Dorit Nuzman  <dorit@il.ibm.com>
2744
2745         PR testsuite/32014
2746         * config/rs6000/altivec.md (UNSPEC_VUPKHS_V4SF, UNSPEC_VUPKLS_V4SF):
2747         (UNSPEC_VUPKHU_V4SF, UNSPEC_VUPKLU_V4SF): New.
2748         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi): New patterns.
2749         (vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): New patterns. 
2750
2751 2007-07-05  Zdenek Dvorak  <dvorakz@suse.cz>
2752
2753         * config/i386/i386.c (ix86_address_cost): Do not consider more complex
2754         addressing modes cheaper.
2755
2756 2007-07-05  Alexandre Oliva  <aoliva@redhat.com>
2757
2758         * dwarf2out.c (dw_ranges_by_label_ref): New typedef.
2759         (dw_ranges_struct): Rename block_num to num.  Adjust.
2760         (dw_ranges_by_label_struct): New.
2761         (ranges_by_label, ranges_by_label_allocated,
2762         ranges_by_label_in_use): New variables.
2763         (add_ranges_num): Factored most of the code out of...
2764         (add_ranges): ... this one.  Rewrite in terms of the former.
2765         (add_ranges_by_labels): New.
2766         (output_ranges): Output by-label ranges.
2767         (dwarf2out_finish): Output range for multiple-section
2768         compile_unit.  Output standard DW_AT_low_pc in addition to
2769         unexpected DW_AT_entry_pc.
2770
2771 2007-07-04  Daniel Berlin  <dberlin@dberlin.org>
2772
2773         PR tree-optimization/32604
2774         PR tree-optimization/32606
2775
2776         * tree-ssa-pre.c (bb_bitmap_sets): Removed antic_safe_loads.
2777         (compute_antic_safe): Removed.
2778         (ANTIC_SAFE_LOADS): Ditto.
2779         (compute_antic_aux): Don't print ANTIC_SAFE_LOADS.
2780         (execute_pre): Don't call compute_antic_safe.
2781         (vuse_equiv): New function.
2782         (make_values_for_stmt): Use it
2783         * tree-ssa-sccvn.c (set_ssa_val_to): Remove assert, since it is
2784         not always true.
2785
2786 2007-07-04 Anatoly Sokolov <aesok@post.ru>
2787
2788         PR target/31331
2789         * config/avr/avr.c (avr_naked_function_p): Handle receiving a type
2790         rather than a decl. 
2791         (avr_attribute_table): Make "naked" attribute apply to function types
2792         rather than to decls.
2793         (avr_handle_fntype_attribute): New function.
2794
2795 2007-07-04  Joseph Myers  <joseph@codesourcery.com>
2796
2797         * target-def.h (TARGET_INITIALIZER): Remove trailing whitespace
2798         after \.
2799
2800 2007-07-04  David Ung  <davidu@mips.com>
2801             Joseph Myers  <joseph@codesourcery.com>
2802
2803         * config/mips/mips.md (type): Add logical, signext and move.
2804         (one_cmpl<mode>2, *and<mode>3, *and<mode>3_mips16, *ior<mode>3,
2805         *ior<mode>3_mips16, two unnamed insns after *ior<mode>3_mips16,
2806         *nor<mode>3, "Combiner patterns to optimize truncate/zero_extend
2807         combinations", *zero_extend<SHORT:mode><GPR:mode>2,
2808         *zero_extendqihi2, *extend<SHORT:mode><GPR:mode>2_mips16e,
2809         *extend<SHORT:mode><GPR:mode>2_se<SHORT:size>, *movdi_64bit,
2810         *movdi_64bit_mips16, *movsi_internal, *movsi_mips16, movcc,
2811         *movhi_internal, *movhi_mips16, *movqi_internal, *movqi_mips16,
2812         *movsf_hardfloat, *movsf_softfloat, *movsf_mips16,
2813         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit,
2814         movv2sf_hardfloat_64bit): Use the new types.
2815         (*movdi_32bit, *movdi_gp32_fp64, *movdi_32bit_mips16,
2816         *movdf_softfloat, *movdf_mips16): Use "multi".
2817         (extendqihi2): Replace with a define_expand.
2818         (*extendqihi2_mips16e, *extendqihi2, *extendqihi2_seb): New.
2819         Based on extend<SHORT:mode><GPR:mode>2 patterns.
2820         * config/mips/74k.md (r74k_int_logical): New reservation and
2821         bypasses.
2822         (r74k_int_arith): Remove "slt".
2823         * config/mips/24k.md, config/mips/4130.md, config/mips/4k.md,
2824         config/mips/5400.md, config/mips/5500.md, config/mips/5k.md,
2825         config/mips/7000.md, config/mips/9000.md, config/mips/generic.md,
2826         config/mips/sb1.md, config/mips/sr71k.md: Add new types to
2827         reservations for "arith".
2828
2829 2007-07-04  Richard Guenther  <rguenther@suse.de>
2830
2831         * tree-ssa.c (useless_type_conversion_p): Add handling for
2832         scalar float and vector types.  Only call the types_compatible_p
2833         langhook for aggregate types as last resort.  Follow the
2834         rules.
2835
2836 2007-07-04  Richard Guenther  <rguenther@suse.de>
2837
2838         * tree-inline.c (estimate_num_insns_1): Treat CONVERT_EXPR
2839         the same as NOP_EXPR.
2840
2841 2007-07-04  Nick Clifton  <nickc@redhat.com>
2842
2843         * target.h (struct gcc_target): Add target_help field.
2844         * target-def.h (TARGET_HELP): New.
2845         (TARGET_INITIALIZER): Use TARGET_HELP.
2846         * opts.c (command_handle_option): Invoke target_help function, if
2847         defined, when the user has specified --target-help on the command
2848         line.
2849         * doc/invoke.texi: Mention that --target-help might print
2850         additional information.
2851         * doc/tm.texi: Document TARGET_HELP hook.
2852
2853         * arm.c (TARGET_HELP): Override default definition.
2854         (arm_target_help): New - display a wrapped list of cores and
2855         architectures supported.
2856
2857 2007-07-04  Rask Ingemann Lambertsen  <rask@sygehus.dk>
2858
2859         * config/gcc/v850/v850.c (expand_prologue): Make sure
2860         GEN_INT() argument is sign extended rather than zero extended.
2861         (expand_epilogue): Likewise.
2862         (output_move_double): Delete.
2863         * config/gcc/v850/v850-protos.h (output_move_double): Delete.
2864         * config/gcc/v850/v850.md (movdi): Delete.
2865         (*movdi_internal): Delete.
2866         (movdf): Delete.
2867         (*movdf_internal): Delete.
2868
2869 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
2870
2871         * config/sh/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Reject -mrelax
2872         unless compiling RTP PIC.
2873
2874 2007-07-04  Richard Guenther  <rguenther@suse.de>
2875
2876         PR tree-optimization/32482
2877         * tree-ssa-ifcombine.c (recognize_single_bit_test): Use the
2878         original ssa name if we didn't find a shift expression.
2879         Fix shift constant for bit zero test.
2880
2881 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
2882
2883         * config/sh/lib1funcs.asm (ic_invalidate): Align constant pool.
2884
2885 2007-07-04  Richard Sandiford  <richard@codesourcery.com>
2886
2887         * config.gcc (arm-wrs-vxworks): Don't include svr4.h.
2888         * config/vxworks.h (PTRDIFF_TYPE, SIZE_TYPE, TARGET_POSIX_IO): Define.
2889         * config/arm/vxworks.h (ASM_SPEC): Delete.
2890         (SUBTARGET_EXTRA_ASM_SPEC): Define.
2891
2892 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
2893
2894         * tree-data-ref.h (data_dependence_relation): New flag reversed_p.
2895         (DDR_REVERSED_P): New.
2896         * tree-data-ref.c (initialize_data_dependence_relation,
2897         build_classic_dist_vector): Set DDR_REVERSED_P.
2898
2899 2007-07-04  Sebastian Pop  <sebpop@gmail.com>
2900
2901         PR middle-end/32457
2902         * tree-data-ref.c (analyze_siv_subscript_cst_affine,
2903         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
2904         init_omega_for_ddr_1): Use non conservative number of iterations
2905         estimations.
2906         (analyze_subscript_affine_affine): Use HOST_WIDE_INT instead of int.
2907         (analyze_siv_subscript): Remove FIXME and reinitialization of 
2908         last_conflicts to chrec_dont_know.
2909         * testsuite/gfortran.dg/vect/pr32457.f90: New.
2910
2911 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
2912
2913         * tree.c (maybe_canonicalize_argtypes): Improve description.
2914
2915 2007-07-04  Douglas Gregor  <doug.gregor@gmail.com>
2916
2917         * tree.c (maybe_canonicalize_argtypes): New.
2918         (build_function_type): Set canonical type.
2919         (build_method_type_directly): Ditto.
2920         (reconstruct_complex_type): Rebuild the METHOD_TYPE node
2921         properly.
2922
2923 2007-07-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2924
2925         * tree-ssa-loop-ivopts.c (strip_offset_1): Treat POINTER_PLUS_EXPR
2926         like PLUS_EXPR.
2927         (rewrite_use_nonlinear_expr): Likewise.
2928
2929 2007-07-03  Seongbae Park  <seongbae.park@gmail.com>
2930
2931         * rtl.def (UNSPEC, USE, CLOBBER): More comments.
2932
2933 2007-07-04  Ben Elliston  <bje@au.ibm.com>
2934
2935         * dwarf2out.c: Move DWARF2 abbreviation glossary closer to the top
2936         of this file.
2937
2938         * c-objc-common.c (c_types_compatible_p): Fix indentation.
2939
2940         * doc/tm.texi (Run-time Target): Capitalise "CPU".
2941         (Exception Handling): Likewise.
2942
2943 2007-07-03  Jan Hubicka  <jh@suse.cz>
2944
2945         * ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
2946
2947 2007-07-03  Eric Christopher  <echristo@apple.com>
2948
2949         * doc/cppopts.texi: Add conflicting option note to -dM.
2950         * doc/invoke.texi: Add note about possible conflicts with
2951         -E for -dCHARS and note that -dM will not produce
2952         any results if there is no machine dependent reorg.
2953         
2954 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
2955
2956         * tree.h (DECL_ALIGN): Back out previous change.
2957
2958 2007-07-03  Joseph Myers  <joseph@codesourcery.com>
2959
2960         * configure.ac: Test for .dtprelword support on MIPS.
2961         * configure, config.in: Regenerate.
2962         * config/mips/mips.c (mips_output_dwarf_dtprel): New.
2963         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
2964
2965 2007-07-03  Julian Brown  <julian@codesourcery.com>
2966
2967         * config.gcc (with_fpu): Allow --with-fpu=vfp3.
2968         * config/arm/aout.h (REGISTER_NAMES): Add D16-D31.
2969         * config/arm/aof.h (REGISTER_NAMES): Add D16-D31.
2970         * config/arm/arm.c (FL_VFPV3): New flag for VFPv3 processor
2971         capability.
2972         (all_fpus): Add FPUTYPE_VFP3.
2973         (fp_model_for_fpu): Add VFPv3 field.
2974         (arm_rtx_costs_1): Give cost to VFPv3 constants.
2975         (vfp3_const_double_index): New function. Return integer index of
2976         VFPv3 constant suitable for fconst[sd] insns, or -1 if constant
2977         isn't suitable.
2978         (vfp3_const_double_rtx): New function. True if VFPv3 is enabled
2979         and argument represents a valid RTX for a VFPv3 constant.
2980         (vfp_output_fldmd): Split fldmd with > 16 registers in the list into
2981         two instructions.
2982         (vfp_emit_fstmd): Similar, for fstmd.
2983         (arm_print_operand): Implement new code 'G' for VFPv3 floating-point
2984         constants, represented as integer indices.
2985         (arm_hard_regno_mode_ok): Use VFP_REGNO_OK_FOR_SINGLE,
2986         VFP_REGNO_OK_FOR_DOUBLE macros.
2987         (arm_regno_class): Handle VFPv3 d0-d7, low, high register split.
2988         (arm_file_start): Set float-abi attribute for VFPv3, and output
2989         correct ".fpu" assembler directive.
2990         (arm_dbx_register_numbering): Add FIXME.
2991         * config/arm/arm.h (TARGET_VFP3): New macro. Target supports VFPv3.
2992         (fputype): Add FPUTYPE_VFP3.
2993         (FIXED_REGISTERS): Add 32 registers for D16-D31.
2994         (CALL_USED_REGISTERS): Likewise.
2995         (CONDITIONAL_REGISTER_USAGE): Add note about conditional definition
2996         of LAST_VFP_REGNUM. Make D16-D31 caller-saved, if present.
2997         (LAST_VFP_REGNUM): Extend available VFP registers for VFPv3.
2998         (D7_VFP_REGNUM): New.
2999         (LAST_LO_VFP_REGNUM, FIRST_HI_VFP_REGNUM, LAST_HI_VFP_REGNUM)
3000         (VFP_REGNO_OK_FOR_SINGLE, VFP_REGNO_OK_FOR_SINGLE)
3001         (VFP_REGNO_OK_FOR_DOUBLE): Define new macros.
3002         (FIRST_PSEUDO_REGISTER): Shift up to 128 to accommodate VFPv3.
3003         (REG_ALLOC_ORDER): Adjust for VFPv3.
3004         (reg_class): Add VFP_D0_D7_REGS, VFP_LO_REGS, VFP_HI_REGS.
3005         (REG_CLASS_NAMES): Add entries corresponding to VFP_D0_D7_REGS,
3006         VFP_LO_REGS, VFP_HI_REGS.
3007         (REG_CLASS_CONTENTS): Likewise. Extend contents for VFP_REGS.
3008         (IS_VFP_CLASS): Define macro.
3009         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Use
3010         IS_VFP_CLASS.
3011         (REGISTER_MOVE_COST): Likewise.
3012         * config/arm/arm-protos.h (vfp3_const_double_rtx): Add prototype.
3013         * config/arm/vfp.md (VFPCC_REGNUM): Redefine as 127.
3014         (*arm_movsi_vfp, *thumb2_movsi_vfp, *movsfcc_vfp)
3015         (*thumb2_movsfcc_vfp, *abssf2_vfp, *negsf2_vfp, *addsf3_vfp)
3016         (*subsf3_vfp, *divsf_vfp, *mulsf_vfp, *mulsf3negsf_vfp)
3017         (*mulsf3addsf_vfp, *mulsf3subsf_vfp, *mulsf3negsfaddsf_vfp)
3018         (*extendsfdf2_vfp, *truncdfsf2_vfp, *truncsisf2_vfp)
3019         (*truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2)
3020         (*floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2)
3021         (floatunssidf2, *sqrtsf2_vfp, *cmpsf_split_vfp)
3022         (*cmpsf_trap_split_vfp, *cmpsf_vfp, *cmpsf_trap_vfp): Use 't'
3023         where appropriate for single-word registers.
3024         (*movsf_vfp, *thumb2_movsf_vfp, *movdf_vfp, *thumb2_movdf_vfp):
3025         As above. Fix type attributes.
3026         * config/arm/constraints.md (register_contraint "t"): Define.
3027         (register_constraint "w"): Change to D0-D15, or D0-D31 for
3028         VFPv3/NEON.
3029         (register_constraint "x"): Define.
3030         (constraint "Dv"): Define.
3031
3032 2007-07-03  Geoffrey Keating  <geoffk@apple.com>
3033
3034         * tree.h (DECL_ALIGN): Prevent use on a FUNCTION_DECL.
3035
3036 2007-07-03  Tom Tromey  <tromey@redhat.com>
3037
3038         * c-parser.c (objc_pq_context): Removed.
3039         (objc_need_raw_identifier): Likewise.
3040         (c_parser) <objc_pq_context>: New field.
3041         <objc_need_raw_identifier>: Likewise.
3042         (OBJC_NEED_RAW_IDENTIFIER): Removed.
3043         (c_lex_one_token): Update.
3044         (c_parser_objc_protocol_definition): Update.
3045         (c_parser_objc_method_definition): Update.
3046         (c_parser_objc_methodproto): Update.
3047         (c_parser_declspecs): Update.
3048
3049 2007-07-03  David Ung  <davidu@mips.com>
3050
3051         * config/mips/mips.c (mips_issue_rate): Return 4 for 74K processors.
3052
3053 2007-07-03  David Ung  <davidu@mips.com>
3054             Richard Sandiford  <richard@codesourcery.com>
3055
3056         * doc/invoke.texi: Document -march=74kf3_2.
3057         * config/mips/mips.h (PROCESSOR_74KF3_2): New processor_type.
3058         (TUNE_74K): Check for it.
3059         * config/mips/mips.c (mips_cpu_info): Add 74kf3_2.
3060         (mips_rtx_cost_data): Add an entry for PROCESSOR_74KF3_2.
3061         * config/mips/mips.md (cpu): Add 74kf3_2.
3062         * config/mips/74k.md (r74k_int_logical, r74k_int_arith, r74k_int_nop)
3063         (r74k_int_cmove, r74k_int_mult, r74k_int_mul3, r74k_int_mfhilo)
3064         (r74k_int_mthilo, r74k_int_div, r74k_int_call, r74k_int_jump)
3065         (r74k_int_load, r74k_int_store, r74k_unknown, r74k_multi): Add
3066         74kf3_2 to the CPU list.
3067         (r74kf3_2_fadd, r74kf3_2_fmove, r74kf3_2_fload, r74kf3_2_fstore)
3068         (r74kf3_2_fmul_sf, r74kf3_2_fmul_df, r74kf3_2_fdiv_sf)
3069         (r74kf3_2_fdiv_df, r74kf3_2_frsqrt_sf, r74kf3_2_frsqrt_df)
3070         (r74kf3_2_fcmp, r74kf3_2_fcvt, r74kf3_2_fxfer_to_c1)
3071         (r74kf3_2_fxfer_from_c1): New insn reservations.
3072
3073 2007-07-03  Richard Sandiford  <richard@codesourcery.com>
3074             David Ung  <davidu@mips.com>
3075
3076         * doc/invoke.texi: Replace -march=24kf with -march=24kf2_1 and
3077         -march=24kx with -march=24kf1_1.  Likewise 24ke[fx], 34k[fx]
3078         and 74k[fx].  Document aliases for the new options.
3079         * config/mips/mips.h (PROCESSOR_24KF): Rename to...
3080         (PROCESSOR_24KF2_1): ...this.
3081         (PROCESSOR_24KX): Rename to...
3082         (PROCESSOR_24KF1_1): ...this.
3083         (PROCESSOR_74KF): Rename to...
3084         (PROCESSOR_74KF2_1): ...this.
3085         (PROCESSOR_74KX): Rename to...
3086         (PROCESSOR_74KF1_1): ...this.
3087         (TUNE_74K): Update PROCESSOR_* names.
3088         * config/mips/mips.c (mips_cpu_info): Add 24kf2_1 as a synonym
3089         for 24kf.  Add 24kf1_1 and 24kfx as synonyms for 24kx.  Likewise
3090         the 24ke*, 34k* and 74k* processors.  Update PROCESSOR_* names.
3091         (mips_rtx_cost_data): Update processor names in comments.
3092         (mips_issue_rate): Update PROCESSOR_* names.
3093         * config/mips/mips.md (cpu): Rename 24kf to 24kf2_1, 24kx to
3094         24kf1_1, 74kf to 74kf2_1 and 74kx to 74kf1_1.
3095         * config/mips/24k.md: Rename FPU-related r24k_* insn reservations
3096         to r24kf2_1_*.  Rename r24kx_* insn reservations to r24kf1_1_*.
3097         Update cpu attribute names.
3098         (r24k_fpu_iss): Rename this reservation to...
3099         (r24kf2_1_fpu_iss): ...this and update all uses.
3100         (r24kx_fpu_iss): Rename this reservation to...
3101         (r24kf1_1_fpu_iss): ...this and update all uses.
3102         * config/mips/74k.md: Rename FPU-related r74kf_* insn reservations
3103         to r74kf2_1_*.  Rename r74kx_* insn reservations to r74kf1_1_*.
3104         Update cpu attribute names.
3105
3106 2007-07-01  Kaz Kojima  <kkojima@gcc.gnu.org>
3107
3108         * config/m32r/constraints.md: New file.
3109         * config/m32r/m32r.c: Include tm-constrs.h.
3110         (small_data_operand): Use satisfies_constraint_* instead of macro.
3111         (addr24_operand, gen_compare): Likewise.
3112         * config/m32r/m32r.h (REG_CLASS_FROM_LETTER): Remove.
3113         (INT8_P, UPPER16_P, UINT32_P, UINT5_P, INVERTED_SIGNED_8BIT,
3114         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
3115         EXTRA_CONSTRAINT): Likewise.
3116         * config/m32r/m32r.md: Include constraints.md.
3117         (*movsi_insn): Use satisfies_constraint_* instead of macro.
3118         (andsi3, iorsi3, xorsi3, seq_insn+1, sne): Likewise.
3119         * config/m32r/predicates.md (conditional_move_operand): Likewise.
3120         (two_insn_const_operand, int8_operand, uint16_operand,
3121         reg_or_int16_operand, reg_or_uint16_operand,
3122         reg_or_cmp_int16_operand, cmp_int16_operand,
3123         seth_add3_operand): Likewise.
3124
3125 2007-07-03  Eric Christopher  <echristo@gmail.com>
3126
3127         * libgcc2.h: Conditionally declare __bswapsi2 and
3128         __bswapdi2.
3129         
3130 2007-07-03  H.J. Lu  <hongjiu.lu@intel.com>
3131
3132         * ddg.c (check_sccs): Define only if ENABLE_CHECKING is
3133         defined.
3134
3135 2007-07-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3136
3137         PR target/28307
3138         * gthr-posix.h [SUPPORTS_WEAK && GTHREAD_USE_WEAK]
3139         (__gthrw_pragma): Provide default definition.
3140         (__gthrw2): Use it.
3141         * gthr-posix.c (__gthrw_pragma): Define.
3142
3143 2007-07-03  Daniel Berlin  <dberlin@dberlin.org>
3144
3145         * tree-ssa-sccvn.c (set_ssa_val_to): Check for operand_equal_p
3146         before declaring inequality.
3147
3148 2007-07-03  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3149
3150         * combine.c (recog_for_combine): Log the success or failure of
3151           matching new insn patterns against the machine description in
3152           detailed dumps.
3153
3154 2007-07-03  Revital Eres  <eres@il.ibm.com>
3155
3156         * ddg.c (print_sccs): New function.
3157         (check_sccs): New function.
3158         (create_ddg_all_sccs): Use it.
3159         * ddg.h (print_sccs): Declare.
3160         * modulo-sched.c (sms_order_nodes): Call print_sccs.
3161
3162 2007-07-03  Uros Bizjak  <ubizjak@gmail.com>
3163
3164         * targhooks.h (default_mode_for_suffix): New function declaration.
3165         * targhooks.c (default_mode_for_suffix): New default target hook.
3166         * target.h (struct c): New structure in the targetm struct.
3167         (mode_for_suffix): New target hook as part of struct c.
3168         target-def.h (TARGET_C_MODE_FOR_SUFFIX): Define as
3169         default_mode_for_suffix.
3170         (TARGET_C): New define.
3171         * c-lex.c: Include "target.h".
3172         (interpret_float): Use targetm.c.mode_for_suffix to determine
3173         the mode for a given non-standard suffix.
3174         Makefile.in (c-lex.o): Depend on $(TARGET_H).
3175
3176         * config/i386/i386.c (ix86_c_mode_for_suffix): New static function.
3177         (TARGET_C_MODE_FOR_SUFFIX): Define to ix86_c_mode_for_suffix.
3178
3179         * doc/extend.texi (Floating Types): New node.  Document __float80 and
3180         __float128 types.  Document 'w', 'W', 'q' and 'Q' suffixes.
3181
3182 2007-07-03  Kaz Kojima  <kkojima@gcc.gnu.org>
3183
3184         PR target/32506
3185         * config/sh/sh.md (udivsi3_i1_media): Use target_reg_operand
3186         predicate instead of target_operand.
3187         (divsi3_i1_media, divsi3_media_2): Likewise.
3188
3189 2007-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3190
3191         * tree.h (alias_sets_might_conflict_p): Rename into
3192         alias_sets_must_conflict_p.
3193         * alias.c (alias_sets_might_conflict_p): Likewise.
3194         (alias_sets_conflict_p): Use it.
3195         (objects_must_conflict_p): Likewise.
3196         * c-common.c (strict_aliasing_warning): Adjust.
3197
3198 2007-07-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3199
3200         * rtlhooks.c (gen_lowpart_if_possible): Check for
3201         invalid subreg before calling gen_lowpart_SUBREG.
3202
3203 2007-07-02  Geoffrey Keating  <geoffk@apple.com>
3204
3205         * config/darwin9.h: Add copyright notice.
3206         (LINK_COMMAND_SPEC): Add comment.
3207         (DARWIN_LIBSYSTEM_HAS_UNWIND): Define.
3208         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Conditionalise on
3209         DARWIN_LIBSYSTEM_HAS_UNWIND.
3210
3211 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3212
3213         PR libgomp/32468
3214         * omp-low.c (check_combined_parallel): New function.
3215         (lower_omp_parallel): Call it via walk_stmts, set
3216         OMP_PARALLEL_COMBINED if appropriate.
3217         (determine_parallel_type): If OMP_FOR resp. OMP_SECTIONS
3218         isn't the only statement in WS_ENTRY_BB or OMP_RETURN
3219         the only one in PAR_EXIT_BB and not OMP_PARALLEL_COMBINED,
3220         don't consider it as combined parallel.
3221
3222 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
3223
3224         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
3225         (gcc_tooldir): Likewise.
3226         * configure: Regenerate.
3227         * Makefile.in (libsubdir_to_prefix): New variable, based on the
3228         old configure.ac gcc_tooldir setting.
3229         (prefix_to_exec_prefix): New variable.
3230         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
3231         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
3232
3233 2007-07-02  Daniel Berlin  <dberlin@dberlin.org>
3234
3235         Fix PR tree-optimization/32583
3236         Fix PR tree-optimization/32584
3237         * tree-ssa-pre.c (phi_translate): Always pass seen bitmap.
3238         (phi_translate_set): Use phi_translate directly now.
3239         (make_values_for_stmt): Don't value number RHS if we already know
3240         it is constant.
3241
3242 2007-07-02  Steve Ellcey  <sje@cup.hp.com>
3243             Jim Wilson <wilson@specifix.com>
3244
3245         PR target/31684
3246         * haifa-sched.c (add_to_speculative_block): Change copy_rtx to
3247         copy_insn.
3248
3249 2007-07-02  Sandra Loosemore  <sandra@codesourcery.com>
3250             Richard Sandiford  <richard@codesourcery.com>
3251             Nigel Stephens  <nigel@mips.com>
3252
3253         * config/mips/mips-protos.h (mips16e_save_restore_info): New struct.
3254         (mips16e_output_save_restore): Declare.
3255         (mips16e_save_restore_pattern_p): Likewise.
3256         * config/mips/mips.h (GENERATE_MIPS16E_SAVE_RESTORE): New macro.
3257         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Return 0x7f8
3258         for GENERATE_MIPS16E_SAVE_RESTORE.  Return 0x400 for TARGET_MIPS16
3259         && !GENERATE_MIPS16E_SAVE_RESTORE && !TARGET_64BIT.
3260         (BITSET_P): New global macro, extracted from...
3261         (mips_for_each_saved_reg): ...here.
3262         (mips16e_save_restore_info): New struct.
3263         (mips16e_s2_s8_regs, mips16e_a0_a3_regs): New variables.
3264         (mips16e_save_restore_regs): New variable.
3265         (mips_split_plus, mips16e_find_first_register): New functions.
3266         (mips16e_mask_registers): New function.
3267         (compute_frame_size): Expand the commentary before the function.
3268         Enforce the MIPS16e save and restore register range restrictions.
3269         Pad the general register save area at the low end.
3270         (mips16e_save_restore_reg, mips16e_build_save_restore)
3271         (mips16e_save_restore_pattern_p, mips16e_add_register_range)
3272         (mips16e_output_save_restore, mips16e_collect_propagate_value)
3273         (mips16e_collect_argument_save, mips16e_collect_argument_saves):
3274         New functions.
3275         (mips_expand_prologue, mips_expand_epilogue): Handle
3276         GENERATE_MIPS16E_SAVE_RESTORE.
3277         * config/mips/mips.md (*mips16e_save_restore): New pattern.
3278
3279 2007-07-02  Uros Bizjak  <ubizjak@gmail.com>
3280
3281         PR tree-optimization/31966
3282         PR tree-optimization/32533
3283         * tree-if-conv.c (add_to_dst_predicate_list): Use "edge", not
3284         "basic_block" description as its third argument.  Update function
3285         calls to get destination bb from "edge" argument.  Save "cond" into
3286         aux field of the edge.  Update prototype for changed arguments.
3287         (if_convertible_loop_p): Clear aux field of incoming edges if bb
3288         contains phi node.
3289         (find_phi_replacement_condition): Operate on incoming edges, not
3290         on predecessor blocks.  If there is a condition saved in the
3291         incoming edge aux field, AND it with incoming bb predicate.
3292         Return source bb of the first edge.
3293         (clean_predicate_lists): Clean aux field of outgoing node edges.
3294         (tree_if_conversion): Do not initialize cond variable. Move
3295         variable declaration into the loop.
3296         (replace_phi_with_cond_gimple_modify_stmt): Remove unneded
3297         initializations of new_stmt, arg0 and arg1 variables.
3298
3299 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3300
3301         * tree-nrv.c (dest_safe_for_nrv_p): Grok any handled_component_p,
3302         SSA_NAMEs, RESULT_DECLs and PARM_DECLs.
3303
3304 2007-07-02  Richard Guenther  <rguenther@suse.de>
3305
3306         * tree-ssa.c (useless_type_conversion_p): Document
3307         future intent as defining the middle-end type system.
3308         Re-structure to call langhook last, group by type class,
3309         mark questionable parts.
3310
3311 2007-07-02  Richard Guenther  <rguenther@suse.de>
3312
3313         * tree-flow.h (types_compatible_p): Declare.
3314         * tree-ssa.c (types_compatible_p): New function.
3315         * ipa-type-escape.c (discover_unique_type): Use
3316         types_compatible_p instead of lang_hooks.types_compatible_p.
3317         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
3318         * tree-vn.c (expressions_equal_p): Likewise.
3319         * tree.c (fields_compatible_p): Likewise.
3320         * tree-ssa-dom.c (avail_expr_eq): Likewise.
3321         (cprop_operand): Use useless_type_conversion_p instead of
3322         lang_hooks.types_compatible_p.
3323         * tree-inline.c (setup_one_parameter): Likewise.
3324         (declare_return_variable): Likewise.
3325         * tree-nrv.c (tree_nrv): Likewise.
3326         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
3327         (maybe_fold_offset_to_component_ref): Likewise.
3328         (maybe_fold_offset_to_reference): Likewise.
3329         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3330         (merge_alias_info): Likewise.
3331         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3332         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
3333         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
3334         * tree-tailcall.c (find_tail_calls): Likewise.
3335         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
3336         * gimplify.c (canonicalize_addr_expr): Likewise.
3337         (fold_indirect_ref_rhs): Likewise.
3338         (gimplify_addr_expr): Likewise.  Swap parameters to cpt_same_type.
3339         (cpt_same_type): Likewise.
3340         (check_pointer_types_r): Swap parameters to cpt_same_type
3341         where appropriate.
3342         * fold-const.c (fold_convert): Revert fix for PR15988.
3343         * tree-inline.c (setup_one_parameter): Instead fix it here by
3344         using fold_build1 instead of fold_convert and checking for
3345         error_mark_node.  Convert only if the conversion is necessary.
3346
3347 2007-07-02  Joseph Myers  <joseph@codesourcery.com>
3348
3349         * configure.ac: Check for .gnu_attribute on Power.
3350         * configure: Regenerate.
3351         * config/rs6000/rs6000.c (rs6000_file_start): If supported, output
3352         attribute for floating-point ABI.
3353
3354 2007-07-02  Ira Rosen  <irar@il.ibm.com>
3355
3356         PR tree-optimization/32230
3357         PR tree-optimization/32477
3358         * tree-vect-analyze.c (vect_analyze_data_refs): Fail if base 
3359         address is a constant.
3360
3361 2007-07-02  Richard Sandiford  <richard@codesourcery.com>
3362
3363         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*)
3364         (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*)
3365         (mipsisa64-*-elf*, mipsisa64el-*-elf*): Combine top-level
3366         stanzas.  Use the first part of the triplet to set MIPS_ISA_DEFAULT.
3367         Remove redundant setting of MASK_FLOAT64 and MASK_64BIT for the
3368         64-bit targets.  Add support for *-elfoabi*.
3369         * config/mips/t-isa3264 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Use
3370         different settings if $(tm_defines) does not select the EABI.
3371         (MULTILIB_EXCLUSIONS): Define in those circumstances.
3372         * config/mips/mips.h (MIPS_ISA_LEVEL_OPTION_SPEC): New macro.
3373         (MIPS_ARCH_OPTION_SPEC): Likewise.
3374         (MIPS_ISA_LEVEL_SPEC): Likewise.
3375         (OPTION_DEFAULT_SPECS): Use MIPS_ARCH_OPTION_SPEC.
3376         * config/mips/elfoabi.h: New file.
3377
3378 2007-07-02  Richard Guenther  <rguenther@suse.de>
3379
3380         * tree-flow.h (tree_ssa_useless_type_conversion_1): Rename to ...
3381         (useless_type_conversion_p): ... this.
3382         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Rename to ...
3383         (useless_type_conversion_p): ... this.
3384         * builtins.c (fold_builtin_memory_op): Rename
3385         tree_ssa_useless_type_conversion_1 to useless_type_conversion_p.
3386         * tree-cfg.c (verify_expr): Likewise.
3387         * tree-ssa-address.c (tree_ssa_useless_type_conversion_1): Likewise.
3388         * tree-ssa-ccp.c (ccp_fold): Likewise.
3389         * tree-ssa-copy.c (may_propagate_copy): Likewise.
3390         * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
3391         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
3392         * tree-ssa-loop-niter.c (refine_bounds_using_guard): Likewise.
3393         * tree-ssa-pre.c (eliminate): Likewise.
3394         * tree-ssa.c (delete_tree_ssa): Likewise.
3395         (tree_ssa_useless_type_conversion): Likewise.
3396         * tree.c (build2_stat): Likewise.
3397
3398 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
3399
3400         Fix PR tree-optimization/32571
3401         * tree-ssa-sccvn.c (visit_use): Shortcut copies to avoid
3402         simplifying them.
3403
3404 2007-07-01  Daniel Berlin  <dberlin@dberlin.org>
3405
3406         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle constants
3407         and other expected operations explicitly, change default to
3408         gcc_unreachable. 
3409
3410 2007-07-01  Daniel Jacobowitz  <dan@codesourcery.com>
3411
3412         * config/arm/arm.c (arm_cannot_copy_insn_p): Do not expect a
3413         PARALLEL.
3414         * config/arm/arm.md (pic_add_dot_plus_four, pic_add_dot_plus_eight)
3415         (tls_load_dot_plus_eight): Move the label number into the unspec.
3416         * config/arm/thumb2.md (pic_load_dot_plus_four): Likewise.
3417
3418 2007-07-01  Andreas Schwab  <schwab@suse.de>
3419
3420         * dwarf2out.c (initial_return_save): Define only if used.
3421
3422 2007-07-01  Kenneth Zadeck <zadeck@naturalbridge.com>
3423
3424         Unreverting Richard's Revert of:
3425
3426         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
3427
3428         * dce.c (deletable_insn_p_1): New function, split out from...
3429         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
3430         specially, not those inside PARALLELs.  Remove BODY argument
3431         and adjust recursive call accordingly.
3432         (prescan_insns_for_dce): Update call to delete_insn_p.
3433
3434 2007-07-01  Vladimir Yanovsky  <yanov@il.ibm.com>
3435             Revital Eres  <eres@il.ibm.com>
3436
3437         * ddg.c (create_ddg_all_sccs): Fix missed
3438         initialization of scc_nodes.
3439
3440 2007-07-01  Uros Bizjak  <ubizjak@gmail.com>
3441
3442         PR middle-end/32559
3443         * fold-const.c (fold-binary) [PLUS_EXPR]: Convert ~X + X to 1 or
3444         X + ~X to 1 only for INTEGRAL_TYPE_P type.
3445
3446 2007-06-30  Joseph Myers  <joseph@codesourcery.com>
3447
3448         * configure.ac: Check for .gnu_attribute on MIPS.
3449         * configure, config.in: Regenerate.
3450         * config/mips/mips.c (mips_file_start): If supported, output
3451         attribute for floating-point ABI.
3452
3453 2007-06-30  Uros Bizjak  <ubizjak@gmail.com>
3454
3455         PR target/32433
3456         * config/i386/i386.md (ffssi2): Expand as ffs_cmove for TARGET_CMOVE.
3457         (ffs_cmove): New expander to expand using ctz pattern.
3458         (*ffs_cmove): Remove pattern.
3459         (*ffs_no_cmove): Enable only for !TARGET_CMOVE.
3460         (ffsdi2): Expand using ctz pattern.
3461         (*ffs_rex64): Remove pattern.
3462
3463 2007-06-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3464
3465         PR rtl-optimization/32296
3466         * pa.md (return): Delete pattern.
3467         (return_internal): Remove "(const_int 1)" from pattern.
3468         (epilogue): Use return_internal pattern for trivial returns.
3469         * pa-protos.h (hppa_can_use_return_insn_p): Delete declaration.
3470         * pa.c (hppa_can_use_return_insn_p): Delete function.  Include "df.h".
3471
3472 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
3473
3474         * tree-ssa-pre.c (is_exception_related): New function
3475         (can_value_number_operation): Use it.
3476
3477 2007-06-30  Daniel Berlin  <dberlin@dberlin.org>
3478         
3479         Fix PR tree-optimization/32540
3480         Fix PR tree-optimization/31651
3481
3482         * tree-ssa-sccvn.c: New file.
3483
3484         * tree-ssa-sccvn.h: Ditto.
3485         
3486         * tree-vn.c: Include tree-ssa-sccvn.h
3487         (val_expr_paid_d): Removed.
3488         (value_table): Ditto.
3489         (vn_compute): Ditto.
3490         (val_expr_pair_hash): Ditto.
3491         (val_expr_pair_expr_eq): Ditto.
3492         (copy_vuses_from_stmt): Ditto.
3493         (vn_delete): Ditto.
3494         (vn_init): Ditto.
3495         (shared_vuses_from_stmt): Ditto.
3496         (print_creation_to_file): Moved up.
3497         (sort_vuses): Ditto.
3498         (sort_vuses_heap): Ditto.
3499         (set_value_handle): Make non-static.
3500         (make_value_handle): Ditto.
3501         (vn_add): Rewritten to use sccvn lookups.
3502         (vn_add_with_vuses): Ditto.
3503         (vn_lookup): Ditto (and second argument removed).
3504         (vn_lookup_with_vuses): Ditto.
3505         (vn_lookup_or_add): Ditto (and second argument removed);
3506         (vn_lookup_or_add_with_vuses): Ditto.
3507         (vn_lookup_with_stmt): New.
3508         (vn_lookup_or_add_with_stmt): Ditto.
3509         (create_value_handle_for_expr): Ditto.
3510
3511         * tree-ssa-pre.c: Include tree-ssa-sccvn.h.
3512         (seen_during_translate): New function.
3513         (phi_trans_lookup): Use iterative_hash_expr, not vn_compute.
3514         (phi_trans_add): Ditto.
3515         (constant_expr_p): FIELD_DECL is always constant.
3516         (phi_translate_1): Renamed from phi_translate, add seen bitmap.
3517         Use constant_expr_p.
3518         Avoid infinite recursion on mutually valued expressions.
3519         Change callers of vn_lookup_or_add.
3520         (phi_translate): New function.
3521         (compute_antic_safe): Allow phi nodes.
3522         (create_component_ref_by_pieces): Update for FIELD_DECL change.
3523         (find_or_generate_expression): Rewrite slightly.
3524         (create_expression_by_pieces): Updated for vn_lookup_or_add
3525         change.
3526         Update VN_INFO for new names.
3527         (insert_into_preds_of_block): Update for new names.
3528         (add_to_exp_gen): New function.
3529         (add_to_sets): Use vn_lookup_or_add_with_stmt.
3530         (find_existing_value_expr): Rewrite to changed vn_lookup.
3531         (create_value_expr_from): Ditto, and use add_to_exp_gen.
3532         (try_look_through_load): Removed.
3533         (try_combine_conversion): Ditto.
3534         (get_sccvn_value): New function.
3535         (make_values_for_phi): Ditto.
3536         (make_values_for_stmt): Ditto.
3537         (compute_avail): Rewritten for vn_lookup_or_add changes and to use
3538         SCCVN.
3539         (init_pre): Update for SCCVN changes.
3540         (fini_pre): Ditto.
3541         (execute_pre): Ditto.
3542
3543         * tree-flow.h (make_value_handle): Declare.
3544         (set_value_handle): Ditto.
3545         (sort_vuses_heap): Ditto.
3546         (vn_lookup_or_add_with_stmt): Ditto.
3547         (vn_lookup_with_stmt): Ditto.
3548         (vn_compute): Remove.
3549         (vn_init): Ditto.
3550         (vn_delete): Ditto.
3551         (vn_lookup): Update arguments.
3552
3553         * Makefile.in (tree-ssa-pre.o): Add tree-ssa-sccvn.h
3554         (tree-vn.o): Ditto.
3555         (tree-ssa-sccvn.o): New.
3556         (OBJS-common): Add tree-ssa-sccvn.o
3557         
3558 2007-06-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3559
3560         PR c/4076
3561         * c-typeck.c (build_external_ref): Don't mark as used if called
3562         from itself.
3563         * calls.c (rtx_for_function_call): Likewise.
3564         
3565 2007-06-30  Richard Sandiford  <richard@codesourcery.com>
3566
3567         Revert:
3568
3569         2007-06-27  Richard Sandiford  <richard@codesourcery.com>
3570
3571         * dce.c (deletable_insn_p_1): New function, split out from...
3572         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
3573         specially, not those inside PARALLELs.  Remove BODY argument
3574         and adjust recursive call accordingly.
3575         (prescan_insns_for_dce): Update call to delete_insn_p.
3576
3577 2007-06-30  Rask Ingemann Lambertsen <rask@sygehus.dk>
3578
3579         * combine.c (combine_validate_cost): New parameter NEWOTHERPAT.
3580         (try_combine): Move potential calls to undo_all() so they happen
3581         before we commit to using the combined insns.
3582
3583 2006-06-30  Jan Hubicka  <jh@suse.cz>
3584
3585         * loop-unroll.c (unroll_loop_runtime_iterations): Unshare newly emit
3586         code.
3587
3588 2006-06-30  Thomas Neumann  <tneumann@users.sourceforge.net>
3589
3590         * ipa.c (cgraph_postorder): Cast according to the coding conventions.
3591         (cgraph_remove_unreachable_nodes): Likewise.
3592         * ipa-cp.c (ipcp_propagate_stage): Use BOTTOM instead of integer 0.
3593         * ipa-inline.c (update_caller_keys): Cast according to the coding
3594         conventions.
3595         (cgraph_decide_recursive_inlining): Likewise.
3596         (cgraph_decide_inlining_of_small_function): Likewise.
3597         (try_inline): Likewise.
3598         (cgraph_decide_inlining_incrementally): Likewise.
3599         * ipa-pure-const.c (get_function_state): Likewise.
3600         (scan_function): Likewise.
3601         (analyze_function): Likewise.
3602         (static_execute): Likewise.
3603         * gcc/ipa-reference.c (scan_for_static_refs): Likewise.
3604         (merge_callee_local_info): Likewise.
3605         (analyze_function): Use type safe memory macros.
3606         (static_execute): Likewise. Cast according to the coding conventions.
3607         * ipa-type-escape.c (scan_for_regs): Cast according to the coding
3608         conventions.
3609         * ipa-utils.c (searchc): Likewise. Avoid using C++ keywords as variable
3610         names.
3611         (ipa_utils_reduced_inorder): Likewise. Use type safe memory macros.
3612         * ipa-utils.h (struct ipa_dfa_info): Avoid using C++ keywords as
3613         variable names.
3614
3615 2007-06-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3616
3617         PR middle-end/30024
3618         * emit-rtl.c (init_emit_once): Intilize const_tiny_rtx[0]
3619         for complex modes (both int and real).
3620
3621 2007-06-29  Jan Hubicka  <jh@suse.cz>
3622
3623         * cse.c: Rever accidentally comitted TODO_verify_rtl_sharing change.
3624
3625 2007-06-29  Jan Hubicka  <jh@suse.cz>
3626
3627         PR middle-end/32372
3628         * cse.c (cse_insn): Avoid invalid sharing in between register note and
3629         the insn pattern.
3630
3631 2007-06-29  Anatoly Sokolov <aesok@post.ru>
3632
3633         PR target/32335
3634         * config/avr/avr.c: Include dataflow header file.
3635         (expand_prologue): Adjust for prologue insn change.
3636         * config/avr/avr.md (call_prologue_saves): Only modify REG_SP once
3637         inside a insn.
3638
3639 2007-06-29  Richard Guenther  <rguenther@suse.de>
3640
3641         PR middle-end/32493
3642         * gimplify.c (gimplify_call_expr): Ignore variable argument parts
3643         during type verification.
3644
3645 2007-06-29  Jan Hubicka  <jh@suse.cz>
3646
3647         * recog.c (validate_change_rtx_1): Unshare TO argument.
3648
3649 2007-06-29  Uros Bizjak  <ubizjak@gmail.com>
3650
3651         PR tree-optimization/24659
3652         * tree-vect-transform.c (vectorizable_call): Handle
3653         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
3654
3655         * config/i386/sse.md (vec_pack_sfix_v2df): New expander.
3656         * config/i386/i386.c (enum ix86_builtins)
3657         [IX86_BUILTIN_VEC_PACK_SFIX]: New constant.
3658         (struct bdesc_2arg) [__builtin_ia32_vec_pack_sfix]: New builtin
3659         description.
3660         (ix86_init_mmx_sse_builtins): Define all builtins with 2 arguments as
3661         const using def_builtin_const.
3662         (ix86_expand_binop_builtin): Remove bogus assert() that insn wants
3663         input operands in the same modes as the result.
3664         (ix86_builtin_vectorized_function): Handle BUILT_IN_LRINT.
3665
3666 2007-06-29  Richard Sandiford  <rsandifo@nildram.co.uk>
3667
3668         * df-problems.c (df_set_unused_notes_for_mw): Fix formatting.
3669         (df_set_dead_notes_for_mw): Likewise.
3670
3671 2007-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3672
3673         * c-common.c (pointer_int_sum): Do the negation in sizetype.
3674
3675 2007-06-28  DJ Delorie  <dj@redhat.com>
3676
3677         * config/m32c/m32c.h (OVERRIDE_OPTIONS): Omit unneeded semicolon.
3678
3679 2007-06-28  Geoffrey Keating  <geoffk@apple.com>
3680
3681         * doc/invoke.texi (C++ Dialect Options): Document
3682         fvisibility-ms-compat.
3683         * c.opt (fvisibility-ms-compat): New.
3684
3685 2007-06-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3686
3687         PR tree-opt/32417
3688         * tree-affine.c (aff_combination_add_elt): Handle
3689         pointer addition specially.
3690
3691 2007-06-28  Jakub Jelinek  <jakub@redhat.com>
3692
3693         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Ensure
3694         decl is non-external for AIX ABI.
3695
3696 2007-06-28  David Edelsohn  <edelsohn@gnu.org>
3697
3698         * config/rs6000/predicates.md (current_file_function_operand):
3699         Ensure the symbol is non-external for AIX ABI.
3700
3701 2007-06-28  Nick Clifton  <nickc@redhat.com>
3702
3703         * common.opt (fipa-matrix-reorg): Add Optimization attribute.
3704         (fdce, fdse, fpredictive-commoning): Likewise.
3705
3706 2007-06-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3707
3708         PR other/31400
3709         * gcc.c (process_command): Recognize the new -static-libgfortran
3710         option.
3711
3712 2007-06-27  Rask Ingemann Lambertsen  <rask@sygehus.dk>
3713
3714         PR target/32418
3715         * config/m32c/m32c.c (m32c_eh_return_stackadj_rtx): Dataflow fix:
3716         Use a call clobbered hard reg instead of a pseudo reg.
3717
3718 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3719
3720         * config/sh/sh.md (load_gbr): Use correct operand constraint.
3721
3722 2007-06-27  Kaz Kojima  <kkojima@gcc.gnu.org>
3723
3724         PR target/32479
3725         * config/sh/sh.md (udivsi3): Don't wrap the sequence with
3726         REG_LIBCALL and REG_RETVAL notes.
3727         (divsi3, mulsi3): Likewise.
3728         (mulhisi3): Likewise.  Use emit_libcall_block.
3729         (umulhisi3, smulsi3_highpart, umulsi3_highpart_i): Likewise.
3730
3731 2007-06-27  Seongbae Park  <seongbae.park@gmail.com>
3732
3733         PR rtl-optimization/32481
3734         * combine.c (adjust_for_new_dest): Rescan the changed insn.
3735
3736 2007-06-27  Richard Sandiford  <richard@codesourcery.com>
3737
3738         * dce.c (deletable_insn_p_1): New function, split out from...
3739         (deletable_insn_p): ...here.  Only treat bare USEs and CLOBBERs
3740         specially, not those inside PARALLELs.  Remove BODY argument
3741         and adjust recursive call accordingly.
3742         (prescan_insns_for_dce): Update call to delete_insn_p.
3743
3744 2007-06-27  Richard Guenther  <rguenther@suse.de>
3745
3746         PR middle-end/32492
3747         * tree.h (fold_convertible_p): Declare.
3748         * fold-const.c (fold_convertible_p): New function.
3749         * gimplify.c (gimplify_call_expr): Use fold_convertible_p
3750         instead of lang_hooks.types_compatible_p.
3751
3752 2007-06-26  Jan Hubicka  <jh@suse.cz>
3753
3754         * fwprop.c (try_fwprop_subst): Use validate_unshare_change.
3755         * postreload.c (reload_cse_simplify_set): Instead of copying the rtx
3756         early use validate_unshare_change.
3757         (reload_combine): Likewise.
3758         * recog.c (change_t): New field unshare.
3759         (validate_change_1): Rename from validate_change; add argument unshare.
3760         (validate_change): Turn into wrapper of validate_change_1; update
3761         prototype for bools.
3762         (validate_unshare_change): New.
3763         (confirm_change_group): Unshare changes if asked for; avoid unnecesary
3764         calls of df_insn_rescan.
3765         * recog.h (validate_change): Replace ints by bools.
3766         (validate_unshare_change): Declare.
3767
3768 2007-06-26  Kenneth Zadeck <zadeck@naturalbridge.com>
3769
3770         * tree.def (VEC_WIDEN_MULT_LO_EXPR): Corrected string name.
3771         
3772 2007-06-26  Steve Ellcey  <sje@cup.hp.com>
3773
3774         * builtins.c (expand_builtin_next_arg): Change Pmode to ptr_mode.
3775
3776 2007-06-25  Jan Hubicka  <jh@suse.cz>
3777
3778         * ipa-inline.c (cgraph_mark_inline): Assert that we never inline
3779         uninlinable call.
3780         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining,
3781         cgraph_decide_inlining_incrementally): Move uninlinability checks to
3782         places other call site specific checks are performed.
3783
3784 2007-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3785
3786         PR tree-opt/32421
3787         * tree-vect-transform.c (vectorizable_operation): Convert
3788         POINTER_PLUS_EXPR over to PLUS_EXPR.
3789
3790 2007-06-25  Chao-ying Fu  <fu@mips.com>
3791
3792         * doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
3793         UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
3794         Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
3795         Document GET_MODE_IBIT, and GET_MODE_FBIT.
3796
3797         * machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
3798         MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
3799         (SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
3800         SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
3801         SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
3802         ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
3803         ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
3804         SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
3805         ALL_FIXED_POINT_MODE_P): New define.
3806         (CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
3807         MODE_UACCUM.
3808         (GET_MODE_IBIT, GET_MODE_FBIT): New define.
3809
3810         * mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
3811         MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
3812         MODE_VECTOR_UACCUM): New mode classes.
3813
3814         * machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
3815         UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
3816         Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
3817         USA, UDA, and UTA.
3818
3819         * genmodes.c (struct mode_data): Add ibit and fbit fields.
3820         (blank_mode): Initialize ibit and fbit.
3821         (adj_ibit, adj_fbit): New to adjust ibit and fbit.
3822         (vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
3823         MODE_UACCUM.
3824         (new_adjust): Change required_class to required_class_from and
3825         required_class_to for testing within a range.
3826         (complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
3827         MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
3828         MODE_VECTOR_UACCUM.
3829         (FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
3830         (make_fixed_point_mode): New.
3831         (_ADD_ADJUST): Change C to C1 and C2.
3832         (ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
3833         use a range for machine classes.
3834         (ADJUST_IBIT, ADJUST_FBIT): New.
3835         (emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
3836         CONST_MODE_FBIT.
3837         (emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
3838         MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
3839         Emit adjustment for ibit and fbit.
3840         (emit_mode_ibit, emit_mode_fbit): New.
3841         (emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.
3842
3843 2007-06-25  Nathan Froyd  <froydnj@codesourcery.com>
3844
3845         * config/rs6000/spe.md (*frob_ti_tf_2): Specify an input_operand
3846         as the source of the set.
3847
3848 2007-06-25  Roman Zippel <zippel@linux-m68k.org>
3849
3850         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P,
3851         FP_REGNO_P): Use IN_RANGE.
3852         (REGNO_OK_FOR_DATA_P, REGNO_OK_FOR_FP_P): Remove.
3853         (REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): New.
3854         (DATA_REG_P): Use DATA_REGNO_P.
3855         (FP_REG_P): Use FP_REGNO_P.
3856         (ADDRESS_REG_P): Use ADDRESS_REGNO_P.
3857         * config/m68k/m68k.c (m68k_legitimate_base_reg_p): Use
3858         REGNO_OK_FOR_INDEX_NONSTRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P.
3859
3860 2007-06-24  Jan Hubicka  <jh@suse.cz>
3861
3862         PR middle-end/30563
3863         * cgraphunit.c (cgraph_analyze_function): Fix ordering problem.
3864
3865 2007-06-24  Sebastian Pop  <sebpop@gmail.com>
3866
3867         PR middle-end/32461
3868         * fold-const.c (fold_binary): Strip nops of operand 0
3869         of BIT_NOT_EXPR before calling operand_equal_p.
3870         * testsuite/gcc.dg/tree-ssa/pr32461-1.c: New.
3871         * testsuite/gcc.dg/tree-ssa/pr32461-2.c: New.
3872
3873 2007-06-23  Mark Mitchell  <mark@codesourcery.com>
3874
3875         * doc/extend.texi: Document that dllimport and dllexport imply
3876         default visibility.
3877         * tree.c (handle_dll_attribute): Set DECL_VISIBILITY on the
3878         imported or exported declaration, including type declarations.
3879         * c-common.c (handle_visibility_attribute): Check for conflicts
3880         with dllimport/dllexport.
3881         (c_determine_visibility): Handle dllimport/dllexport as an
3882         explicit visibility atttribute.
3883
3884 2007-06-23  Richard Guenther  <rguenther@suse.de>
3885
3886         PR tree-optimization/16876
3887         PR middle-end/29478
3888         * tree.h (CALL_CANNOT_INLINE_P): New macro to access static_flag
3889         for CALL_EXPRs.
3890         * tree-inline.c (initialize_inlined_parameters): Do not call
3891         lang_hooks.tree_inlining.convert_parm_for_inlining.
3892         * cgraphbuild.c (initialize_inline_failed): Set inline failed
3893         reason for mismatched types.
3894         * gimplify.c (gimplify_call_expr): Verify the call expression
3895         arguments match the called function type signature.  Otherwise
3896         mark the call expression to be not considered for inlining
3897         using CALL_CANNOT_INLINE_P flag.
3898         * ipa-inline.c (cgraph_mark_inline): Honor CALL_CANNOT_INLINE_P on the
3899         edges call expression.
3900         (cgraph_decide_inlining_of_small_function): Likewise.
3901         (cgraph_decide_inlining): Likewise.
3902         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
3903         Remove define.
3904         * c-tree.h (c_convert_parm_for_inlining): Remove declaration.
3905         * c-typeck.c (c_convert_parm_for_inlining): Remove.
3906         * langhooks-def.h (lhd_tree_inlining_convert_parm_for_inlining):
3907         Remove declaration.
3908         (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove define.
3909         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining):
3910         Remove.
3911         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove
3912         convert_parm_for_inlining member.
3913
3914 2007-06-23  Richard Earnshaw  <rearnsha@arm.com>
3915
3916         PR target/31152
3917         * arm.md (negscc): Match the correct operand for optimized LT0 test.
3918         Remove optimization for GT.
3919
3920 2007-06-23  Kenneth Zadeck <zadeck@naturalbridge.com>
3921
3922         PR middle-end/32437
3923         * dce.c (deletable_insn_p): Add extra parameter and recurse if insn
3924         is a PARALLEL.
3925         (prescan_insns_for_dce): Add extra parameter.
3926         
3927 2007-06-23  Jan Hubicka  <jh@suse.cz>
3928
3929         PR middle-end/31541
3930         * gimplify.c (mark_addressable): New function.
3931         (gimplify_modify_expr_rhs, gimplify_addr_expr, gimplify_expr): Use it.
3932
3933 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
3934
3935         PR middle-end/32374
3936         * expr.c (store_constructor): Do not clobber non-zeroed memory. 
3937
3938 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
3939
3940         PR target/32413
3941         * config/i386/i386.c (ix86_register_move_cost): Rise the cost of
3942         moves between MMX/SSE registers to at least 8 units to prevent
3943         ICE caused by non-tieable SI/HI/QImodes in SSE registers. 
3944
3945 2007-06-22  Uros Bizjak  <ubizjak@gmail.com>
3946
3947         * config/i386/i386.c (override_options): Correct x86_sahf
3948         setting condition.
3949
3950 2007-06-21  David Daney  <ddaney@avtrex.com>
3951
3952         PR target/32406
3953         * config/mips/mips.md (define_constants): Rename UNSPEC_EH_RECEIVER
3954         to UNSPEC_NONLOCAL_GOTO_RECEIVER globally.
3955         (exception_receiver): Renamed to ...
3956         (nonlocal_goto_receiver): ... this.
3957
3958 2007-06-22  Roman Zippel <zippel@linux-m68k.org>
3959
3960         * df-scan.c (df_read_modify_subreg_p): Use REGMODE_NATURAL_SIZE.
3961         (df_def_record_1): Set (DF_REF_READ_WRITE | DF_REF_PARTIAL) for
3962         partial register accesses.
3963
3964 2007-06-21  Adam Nemet  <anemet@caviumnetworks.com>
3965
3966         * fold-const.c (debug_fold_checksum): Move it under
3967         ENABLE_FOLD_CHECKING.
3968
3969 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
3970
3971         PR middle-end/20623
3972         * tree.h (debug_fold_checksum): Declared.
3973         * fold-const.c (build_fold_addr_expr_with_type_1): New.
3974         (build_fold_addr_expr_with_type, build_fold_addr_expr): Use 
3975         build_fold_addr_expr_with_type_1.
3976         (fold_addr_expr, debug_fold_checksum): New.
3977         (fold_checksum_tree): Don't fold TREE_CHAIN of an SSA_NAME.
3978         (fold_unary, fold_comparison, split_address_to_core_and_offset):
3979         Use fold_addr_expr.
3980         
3981 2007-06-21  Sebastian Pop  <sebpop@gmail.com>
3982
3983         PR tree-optimization/19590
3984         * tree-vrp.c (adjust_range_with_scev): Set the range when the result
3985         of scev is a constant.
3986         * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
3987
3988 2007-06-21  Kenneth Zadeck <zadeck@naturalbridge.com>
3989
3990         * df-problems.c (df_note_bb_compute): Made computation of live
3991         info consistent with df_lr.
3992
3993 2007-06-21  Richard Guenther  <rguenther@suse.de>
3994
3995         PR tree-optimization/32453
3996         * tree-vrp.c (extract_range_from_assert): Build POINTER_PLUS_EXPR
3997         for pointer anti-range.
3998
3999 2007-06-21  H.J. Lu  <hongjiu.lu@intel.com>
4000
4001         * config/i386/i386.c (processor_target_table): Increase maximum
4002         skip from 7 byte to 10 byte for Pentium Pro, Core 2 Duo and
4003         default 64bit.
4004
4005         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Ensure 8
4006         byte alignment if > 8 byte alignment is preferred.
4007         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
4008
4009 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
4010
4011         PR tree-optimization/31866
4012         * tree-ssa-coalesce.c (create_outofssa_var_map): Do nothing
4013         if ASM_EXPR's input is not a SSA_NAME.
4014
4015         PR middle-end/32362
4016         * omp-low.c (lookup_decl_in_outer_ctx): Don't ICE if t is NULL,
4017         but decl is a global var, instead return decl.
4018         * gimplify.c (gimplify_adjust_omp_clauses_1): Add shared clauses
4019         even for is_global_var decls, if they are private in some outer
4020         context.
4021
4022 2007-06-21  Richard Guenther  <rguenther@suse.de>
4023
4024         PR tree-optimization/32451
4025         * tree-ssa-threadupdate.c (thread_single_edge): Fixup edge flags.
4026
4027 2007-06-21  Christian Bruel  <christian.bruel@st.com>
4028
4029         * config/sh/sh-protos.h (sh_loads_bankedreg_p): Declare.
4030         * config/sh/sh.c (sh_loads_bankedreg_p): New function.
4031         (push_regs): Changed saving order or banked registers.
4032         (sh_expand_epilogue): Likewise.
4033         * config/sh/sh.h (BANKED_REGISTER_P): New macro.
4034         (FIRST_BANKED_REG): Likewise.
4035         (LAST_BANKED_REG): Likewise.
4036         * config/sh/sh.md (banked) New attribute.
4037         (in_delay_slot): Check banked attribute.
4038         
4039 2007-06-20  Sebastian Pop  <sebpop@gmail.com>
4040
4041         PR tree-optimization/32075
4042         * tree-data-ref.c (subscript_dependence_tester_1, 
4043         analyze_miv_subscript, analyze_overlapping_iterations,
4044         add_distance_for_zero_overlaps, build_classic_dist_vector,
4045         subscript_dependence_tester_1, analyze_overlapping_iterations,
4046         subscript_dependence_tester, access_functions_are_affine_or_constant_p,
4047         compute_affine_dependence, compute_all_dependences): Pass loop_nest 
4048         to evolution_function_is_affine_multivariate_p.
4049
4050 2007-06-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
4051
4052         * df-scan.c (df_get_call_refs): Be prepared for MEMs inside CLOBBERs.
4053
4054 2007-06-20  Rask Ingemann Lambertsen  <rask@sygehus.dk>
4055
4056         PR target/32335
4057         * config/m32c/m32c.c (m32c_emit_epilogue): Use new HImode epilogue
4058         for TARGET_A16.
4059         * config/m32c/prologue.md (epilogue_exitd_16): New.
4060         (epilogue_reit_16): New.
4061         (epilogue_exitd): Rename to epilogue_exitd_24.
4062         (epilogue_reit): Rename to epilogue_reit_24.
4063
4064 2007-06-20  Seongbae Park  <seongbae.park@gmail.com>
4065             Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
4066
4067         * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg):
4068         New counters.
4069         * haifa-sched.c (queue_to_ready): Don't requeue next insn
4070         if dbg_cnt (sched_insn) reaches the limit.
4071         (choose_ready): New parameter INSN_PTR and new return value.
4072         (schedule_block): Handle dbg_cnt (sched_insn). Handle
4073         the new return value from choose_ready.
4074         * global.c (global_aloc): New dbgcnt global_alloc_at_reg.
4075         (rest_of_handle_global_alloc): New global_alloc_at_func.
4076
4077 2007-06-20  Adam Nemet  <anemet@caviumnetworks.com>
4078
4079         PR tree-optimization/25737
4080         * tree.h (struct tree_struct_field_tag): Add new field alias_set.
4081         (SFT_NONADDRESSABLE_P, SFT_ALIAS_SET): New macros.
4082         * tree-flow.h (struct fieldoff): Add new field alias_set.
4083         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add new
4084         argument addressable_type.  Set alias_set of fieldoff.
4085         * tree-ssa-alias.c (create_sft): Add new argument alias_set.
4086         (create_overlap_variables_for): Pass alias_set from fieldoff to
4087         create_sft.
4088         * alias.c (get_alias_set): Use alias_set from SFT if set.
4089
4090 2007-06-20  Hui-May Chang  <hm.chang@apple.com>
4091
4092         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Print the size
4093         of a variable as an unsigned HOST_WIDE_INT integer.
4094
4095 2007-06-20  Zdenek Dvorak  <dvorakz@suse.cz>
4096
4097         PR rtl-optimization/32405
4098         * loop-iv.c (iv_get_reaching_def): Fail for partial defs.
4099
4100 2007-06-20  Jakub Jelinek  <jakub@redhat.com>
4101
4102         * Makefile.in (omega.o): Depend on $(DIAGNOSTIC_H).
4103
4104         PR middle-end/31959
4105         * builtins.c: Include diagnostic.h.
4106         (expand_builtin_expect): Make gcc_assert more permissive.
4107         * Makefile.in (builtins.o): Depend on $(DIAGNOSTIC_H).
4108
4109         PR inline-asm/32109
4110         * gimplify.c (gimplify_asm_expr): Issue error if type is addressable
4111         and !allows_mem.
4112
4113         PR middle-end/32285
4114         * calls.c (precompute_arguments): Also precompute CALL_EXPR arguments
4115         if ACCUMULATE_OUTGOING_ARGS.
4116
4117 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
4118
4119         * config/m68hc11/m68hc11.c: Include dataflow header file.
4120         (m68hc11_reorg): Port to dataflow.
4121
4122 2007-06-19  Kenneth Zadeck <zadeck@naturalbridge.com>
4123
4124         * df.h (DF_FIRST_OPTIONAL_PROBLEM): Removed.
4125         (struct df_problem.free_blocks_on_set_blocks): New field.
4126         (struct dataflow.optional_p): New field.
4127         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
4128         (df_live_set_all_dirty): New function.
4129         * df-scan.c (df_scan_alloc): Initialize optional_p.
4130         (problem_SCAN): Initialize free_blocks_on_set_blocks.
4131         * df-core.c (df_set_blocks): Removed use of
4132         DF_FIRST_OPTIONAL_PROBLEM.  Now uses
4133         df_problem.free_blocks_on_set_blocks to determine which blocks are
4134         recycled.
4135         (df_remove_problem): Removed use of DF_FIRST_OPTIONAL_PROBLEM.
4136         (df_finish_pass): Removed use of DF_FIRST_OPTIONAL_PROBLEM.  Now
4137         uses dataflow.optional_p to determine if problem should be
4138         deleted.
4139         (rest_of_handle_df_initialize): Only start live problem if 
4140         -02 or above.
4141         (df_bb_regno_last_use_find, df_insn_regno_def_p): Removed.
4142         * df-problems.c (df_ru_alloc, df_rd_alloc, df_lr_alloc,
4143         df_live_alloc, df_urec_alloc, df_note_alloc): set optional_p.
4144         (problem_RU, problem_RD, problem_LR, problem_UREC, problem_CHAIN,
4145         problem_NOTE):  Initialize free_blocks_on_set_blocks.
4146         (df_lr_bb_local_compute): Recompute luids if df_live problem is
4147         not active.
4148         (df_live_set_all_dirty, df_note_alloc): New function.
4149         * regrename.c (merge_overlapping_regs): Change DF_LIVE_* to
4150         df_get_live_*.
4151         * sched_ebb.c (compute_jump_reg_dependencies): Ditto.
4152         * postreload.c (reload_combine): Ditto.
4153         * cse.c (cse_extended_basic_block): Ditto.
4154         * regmove.c (mark_flags_life_zones): Ditto.
4155         * rtlfactoring.c (split_blocks_after_seqs, split_pattern_seq,
4156         erase_matching_seqs): Ditto.
4157         * bt-load.c (compute_defs_uses_and_gen): Ditto.
4158         * integrate (allocate_initial_values): Ditto.
4159         * combine.c (reg_dead_at_p): Ditto.
4160         * resource.c (mark_target_live_regs): Ditto.
4161         * sched-rgn.c (check_live_1, update_live_1): Ditto.
4162         * config/sh/sh.c (find_r0_life_regions): Ditto.
4163         * global.c (rest_of_handle_global_alloc): Only add back df_live
4164         for -O > 1.
4165         * local-alloc.c (rest_of_handle_local_alloc): Only remove
4166         df_live for -O > 1.
4167         * ifcvt.c (dead_or_predicable): Change DF_LIVE_* to
4168         df_get_live_*.
4169         (if_convert): Make sure df_live is there at -O == 1.
4170         (pass_if_after_combine): Cleanup flags.
4171         * init-regs.c (initialize_uninitialized_regs): Make sure df_live
4172         is there at -O == 1.
4173         
4174 2007-06-19  Seongbae Park  <seongbae.park@gmail.com>
4175
4176         * config/arm/arm.c (arm_get_frame_offsets): Set
4177         offsets->locals_base to avoid negative stack size.
4178         (thumb1_expand_prologue): Assert on negative stack size.
4179
4180 2007-06-19  Sebastian Pop  <sebpop@gmail.com>
4181
4182         PR tree-optimization/32367
4183         * tree-chrec.h (build_polynomial_chrec): Verify that the left hand side 
4184         of the chrec has no evolution in that loop.
4185         * testsuite/gcc.dg/tree-ssa/pr32367.c: New.
4186
4187 2007-06-19  Bob Wilson  <bob.wilson@acm.org>
4188
4189         * config/xtensa/xtensa.c: Include "df.h".
4190         (xtensa_builtin_saveregs): Use adjust_address instead of
4191         change_address.
4192         (xtensa_va_start): Invoke make_tree with sizetype for
4193         expand_builtin_saveregs and then convert the result to a pointer.
4194         Use POINTER_PLUS_EXPR.  Use size_int instead of build_int_cst.
4195         (xtensa_gimplify_va_arg_expr): Use size_int instead of build_int_cst.
4196         Subtract argument size from index value as integers and then use
4197         POINTER_PLUS_EXPR to add the result to the array address.
4198         
4199 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
4200
4201         PR target/32335
4202         * config/m32c/m32c.c: Include dataflow header file.
4203         (m32c_emit_prologue): Adjust for prologue insn change.
4204         * config/m32c/prologue.md (prologue_enter_16): Only modify SP_REGNO
4205         once inside a PARALLEL. Assume frame size passed in operand 0
4206         includes space to save the fb register.
4207         (prologue_enter_24): Likewise.
4208         (epilogue_exitd): Only modify SP_REGNO once inside a PARALLEL.
4209
4210 2007-06-19  David Daney  <ddaney@avtrex.com
4211
4212         PR target/32313
4213         * config/mips/mips.md (cprestore): Mark $gp as used.
4214
4215 2007-06-19  Rask Ingemann Lambertsen  <rask@sygehus.dk>
4216
4217         PR target/32369
4218         * config/frv/frv.c (frv_ifcvt_modify_tests): Dataflow merge fix.
4219         (frv_ifcvt_modify_insn): Likewise.
4220
4221 2007-06-19  Richard Guenther  <rguenther@suse.de>
4222
4223         * tree-ssa-structalias.c (handle_ptr_arith): Make sure to
4224         only handle positive offsets that fit in a HOST_WIDE_INT.
4225
4226 2007-06-19  Uros Bizjak  <ubizjak@gmail.com>
4227
4228         * config/i386/i386.c (ix86_emit_swsqrtsf): Filter out infinity
4229         result of rsqrt insn for zero input argument to avoid NaN.
4230
4231 2007-06-19  Richard Guenther  <rguenther@suse.de>
4232
4233         PR middle-end/31950
4234         * tree-ssa-alias-warnings.c (ffan_walker): Punt on MTAGs.
4235
4236 2007-06-19  Jakub Jelinek  <jakub@redhat.com>
4237
4238         PR tree-optimization/32353
4239         * tree-ssa-structalias.c (set_uids_in_ptset): Also handle RESULT_DECL.
4240
4241 2007-06-19  Nick Clifton  <nickc@redhat.com>
4242
4243         * config/m32r/linux.h (LIB_SPEC): Always imply -lpthread for -pthread.
4244
4245 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
4246
4247         PR target/32389
4248         * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_VIRTUAL.
4249         * config/i386/i386.c (assign_386_stack_local): Assert that
4250         SLOT_VIRTUAL is valid only before virtual regs are instantiated.
4251         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR, IX86_BUILTIN_STMXCSR]:
4252         Use SLOT_VIRTUAL stack slot instead of SLOT_TEMP.
4253         * config/i386/i386.md (truncdfsf2, truncxf<mode>2): Ditto.
4254
4255 2007-06-18  Steve Ellcey  <sje@cup.hp.com>
4256
4257         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): New.
4258
4259 2007-06-18  Seongbae Park  <seongbae.park@gmail.com>
4260
4261         PR rtl-optimization/32321
4262         * gcse.c (replace_store_insn): Update the note before
4263         calling emit_insn_after.
4264
4265 2007-06-18  Kenneth Zadeck <zadeck@naturalbridge.com>
4266
4267         PR middle-end/32355
4268         * gcse (rest_of_handle_gcse): Add call to df_finish_pass after
4269         cse_main.
4270         * df-problems.c (df_note_bb_compute): Fix dumping info.
4271         
4272 2007-06-18  Kazu Hirata  <kazu@codesourcery.com>
4273
4274         * config/m68k/m68k.c (m68k_expand_epilogue): Emit a return
4275         insn with emit_jump_insn.
4276
4277 2007-06-18  Uros Bizjak  <ubizjak@gmail.com>
4278
4279         PR tree-optimization/32383
4280         * targhooks.c (default_builtin_reciprocal): Add new bool argument.
4281         * targhooks.h (default_builtin_reciprocal): Update prototype.
4282         * target.h (struct gcc_target): Update builtin_reciprocal.
4283         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Update description.
4284         * tree-ssa-math-opts (execute_cse_reciprocals): Skip statements
4285         where arg1 is not SSA_NAME.  Pass true to targetm.builtin_reciprocal
4286         when fndecl is in BUILT_IN_MD class.
4287         (execute_convert_to_rsqrt): Ditto.
4288
4289         * config/i386/i386.c (ix86_builtin_reciprocal): Update for new bool
4290         argument.  Convert IX86_BUILTIN_SQRTPS code only when md_fn is true.
4291         Convert BUILT_IN_SQRTF code only  when md_fn is false.
4292
4293 2007-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4294
4295         * bt-load.c (move_btr_def): Fix the order of arguments
4296         to validate_replace_rtx.
4297
4298 2007-06-18  Nathan Sidwell  <nathan@codesourcery.com>
4299
4300         * config/m68k/m68k-devices.def: Add 54450..54455.
4301
4302 2007-06-17  Uros Bizjak  <ubizjak@gmail.com>
4303
4304         PR rtl-optimization/32366
4305         * simplify-rtx.c (simplify_unary_operation_1) [FLOAT_TRUNCATE,
4306         FLOAT_EXTEND]: Prevent non-scalar modes from entering
4307         significand_size.
4308
4309 2007-06-17  Kenneth Zadeck <zadeck@naturalbridge.com>
4310
4311         PR middle-end/32349
4312         * modulo-sched (generate_reg_moves): Added rescan parameter and if
4313         this is true, rescan insn being modified.
4314         (sms_schedule): Added rescan parameter.
4315         (rest_of_handle_sms): Moved freeing of dominance info to before
4316         getting out of cfg_layout.
4317         
4318 2007-06-17  Nathan Sidwell  <nathan@codesourcery.com>
4319
4320         * config/m68k/m68k.h (ISA_HAS_FF1, ISA_HAS_MVS_MVZ): New.
4321         * config/m68k/m68k.md: Use ISA_HAS_FF1 and ISA_HAS_MVS_MVZ as
4322         appropriate.
4323
4324         * config/m68k/m68k.c (all_isas): Remove FL_CF_FPU and
4325         FL_CF_EMAC from the entry for isac.
4326
4327         * config/m68k/predicates.md (const_call_operand): Adjust comment.
4328         (const_sibcall_operand): New.
4329         (sibcall_operand): Use it.
4330         * config/m68k/m68k.c (FL_FOR_isa_c): Not ISA_B compatible.
4331         (m68k_isas): ISAC does not imply FPU or EMAC.
4332         (override_options): Add ISA_C logic for symbolic jump & call.
4333
4334 2007-06-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
4335
4336         * config/sparc/sparc.c (sparc_vis_init_builtins): Retrieve the
4337         return mode from the builtin itself.
4338         (sparc_fold_builtin): Fix cast of zero constant.
4339
4340 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
4341
4342         * targhooks.c (default_builtin_reciprocal): New default target hook.
4343         * targhooks.h (default_builtin_reciprocal): Add prototype.
4344         * hooks.c (hook_tree_tree_bool_null): Remove hook.
4345         * hooks.h (hook_tree_tree_bool_null): Remove prototype.
4346         * target-def.h (TARGET_BUILTIN_RECIPROCAL): Define as
4347         default_builtin_reciprocal.
4348
4349 2007-06-16  Uros Bizjak  <ubizjak@gmail.com>
4350
4351         PR middle-end/31723
4352         * hooks.c (hook_tree_tree_bool_null): New hook.
4353         * hooks.h (hook_tree_tree_bool_null): Add prototype.
4354         * tree-pass.h (pass_convert_to_rsqrt): Declare.
4355         * passes.c (init_optimization_passes): Add pass_convert_to_rsqrt.
4356         * tree-ssa-math-opts.c (execute_cse_reciprocals): Scan for a/func(b)
4357         and convert it to reciprocal a*rfunc(b).
4358         (execute_convert_to_rsqrt): New function.
4359         (gate_convert_to_rsqrt): New function.
4360         (pass_convert_to_rsqrt): New pass definition.
4361         * target.h (struct gcc_target): Add builtin_reciprocal.
4362         * target-def.h (TARGET_BUILTIN_RECIPROCAL): New define.
4363         (TARGET_INITIALIZER): Initialize builtin_reciprocal with
4364         TARGET_BUILTIN_RECIPROCAL.
4365         * doc/tm.texi (TARGET_BUILTIN_RECIPROCAL): Document.
4366
4367         * config/i386/i386.h (TARGET_RECIP): New define.
4368         * config/i386/i386.md (divsf3): Expand by calling ix86_emit_swdivsf
4369         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4370         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4371         and not optimizing for size.
4372         (*rcpsf2_sse): New insn pattern.
4373         (*rsqrtsf2_sse): Ditto.
4374         (rsqrtsf2): New expander.  Expand by calling ix86_emit_swsqrtsf
4375         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4376         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4377         and not optimizing for size.
4378         (sqrt<mode>2): Expand SFmode operands by calling ix86_emit_swsqrtsf
4379         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4380         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4381         and not optimizing for size.
4382         * config/i386/sse.md (divv4sf): Expand by calling ix86_emit_swdivsf
4383         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4384         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4385         and not optimizing for size.
4386         (*sse_rsqrtv4sf2): Do not export.
4387         (sqrtv4sf2): Ditto.
4388         (sse_rsqrtv4sf2): New expander.  Expand by calling ix86_emit_swsqrtsf
4389         for TARGET_SSE_MATH and TARGET_RECIP when flag_finite_math_only and
4390         flag_unsafe_math_optimizations are set, flag_trapping_math is unset
4391         and not optimizing for size.
4392         (sqrtv4sf2): Ditto.
4393         * config/i386/i386.opt (mrecip): New option.
4394         * config/i386/i386-protos.h (ix86_emit_swdivsf): Declare.
4395         (ix86_emit_swsqrtsf): Ditto.
4396         * config/i386/i386.c (IX86_BUILTIN_RSQRTF): New constant.
4397         (ix86_init_mmx_sse_builtins): __builtin_ia32_rsqrtf: New
4398         builtin definition.
4399         (ix86_expand_builtin): Expand IX86_BUILTIN_RSQRTF using
4400         ix86_expand_unop1_builtin.
4401         (ix86_emit_swdivsf): New function.
4402         (ix86_emit_swsqrtsf): Ditto.
4403         (ix86_builtin_reciprocal): New function.
4404         (TARGET_BUILTIN_RECIPROCAL): Use it.
4405         (ix86_vectorize_builtin_conversion): Rename from
4406         ix86_builtin_conversion.
4407         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Use renamed function.
4408         * doc/invoke.texi (Machine Dependent Options): Add -mrecip to
4409         "i386 and x86_64 Options" section.
4410         (Intel 386 and AMD x86_64 Options): Document -mrecip.
4411
4412 2007-06-15  Andrew Pinski <andrew_pinski@playstation.sony.com>
4413             Zdenek Dvorak <dvorakz@suse.cz>
4414             Richard Guenther  <rguenther@suse.de>
4415             Kaz Kojima  <kkojima@gcc.gnu.org>
4416
4417         * tree-vrp.c (compare_values_warnv): Convert val2 to
4418         the type of val1.
4419         (extract_range_from_assert): Create
4420         POINTER_PLUS_EXPR for pointer types.
4421         (extract_range_from_binary_expr): Handle
4422         only POINTER_PLUS_EXPR, MIN_EXPR, and MAX_EXPR
4423         for pointer types.
4424         * doc/c-tree.texi (POINTER_PLUS_EXPR): Document.
4425         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle
4426         POINTER_PLUS_EXPR as PLUS_EXPR.
4427         (number_of_iterations_lt_to_ne):
4428         For pointer types, use sizetype when
4429         creating MINUS_EXPR/PLUS_EXPRs.
4430         (assert_loop_rolls_lt): For pointer types, use sizetype when
4431         creating MINUS_EXPR/PLUS_EXPRs.
4432         (number_of_iterations_le): Likewise.
4433         (expand_simple_operations): POINTER_PLUS_EXPR are simple also.
4434         (derive_constant_upper_bound): Handle POINTER_PLUS_EXPR just
4435         like PLUS_EXPR and MINUS_EXPR.
4436         * tree-pretty-print.c (dump_generic_node): Handle
4437         POINTER_PLUS_EXPR.
4438         (op_prio): Likewise.
4439         (op_symbol_1): Likewise.
4440         * optabs.c (optab_for_tree_code): Likewise.
4441         * tree-ssa-loop-manip.c (create_iv): Handle pointer base
4442         specially.
4443         * tree-tailcall.c (process_assignment): Mention
4444         POINTER_PLUS_EXPR in a TODO comment.
4445         * tree.c (build2_stat): Assert when trying to use PLUS_EXPR or 
4446         MINUS_EXPR with a pointer. Also assert for POINTER_PLUS_EXPR
4447         not used with a pointer and an integer type.
4448         * tree-scalar-evolution.c (add_to_evolution_1): Convert the
4449         increment using chrec_convert_rhs instead of chrec_convert.
4450         (follow_ssa_edge_in_rhs): Handle POINTER_PLUS_EXPR like
4451         PLUS_EXPR except for the right hand side's type will be
4452         sizetype.
4453         (interpret_rhs_modify_stmt): Handle POINTER_PLUS_EXPR.
4454         (fold_used_pointer_cast): Kill.
4455         (pointer_offset_p): Kill.
4456         (fold_used_pointer): Kill.
4457         (pointer_used_p): Kill.
4458         (analyze_scalar_evolution_1 <case GIMPLE_MODIFY_STMT>): Don't
4459         call fold_used_pointer.
4460         (instantiate_parameters_1): Convert the increment
4461         using chrec_convert_rhs instead of chrec_convert.
4462         Handle POINTER_PLUS_EXPR as PLUS_EXPR.
4463         * builtins.c (get_pointer_alignment): Handle POINTER_PLUS_EXPR
4464         instead of PLUS_EXPR.
4465         (expand_builtin_strcat): Create a POINTER_PLUS_EXPR instead of
4466         PLUS_EXPR for pointers.
4467         (std_gimplify_va_arg_expr): Likewise.
4468         (fold_builtin_memory_op): Likewise.
4469         (fold_builtin_strstr): Likewise.
4470         (fold_builtin_strchr): Likewise.
4471         (fold_builtin_strrchr): Likewise.
4472         (fold_builtin_strpbrk): Likewise.
4473         (expand_builtin_memory_chk): Likewise.
4474         (fold_builtin_memory_chk): Likewise.
4475         (std_expand_builtin_va_start): Use
4476         sizetype for the call to make_tree and then convert
4477         to the pointer type.
4478         (fold_builtin_memchr): Use POINTER_PLUS_EXPR
4479         instead of PLUS_EXPR for adding to a pointer.
4480         (std_gimplify_va_arg_expr): Use fold_build2 for
4481         the creating of POINTER_PLUS_EXPR.  For the BIT_AND_EXPR, cast
4482         the operands to sizetype first and then cast the BIT_AND_EXPR
4483         back to the pointer type.
4484         * fold-const.c (build_range_check): Handle pointer types
4485         specially.
4486         (extract_array_ref): Look for POINTER_PLUS_EXPR instead
4487         of PLUS_EXPR's. Make sure the offset is converted to
4488         sizetype.
4489         (try_move_mult_to_index): Strip the NOPs from the offset.
4490         Remove code argument and replace all uses with PLUS_EXPR.
4491         (fold_to_nonsharp_ineq_using_bound): Handle pointer types
4492         specially. Don't use a pointer type for MINUS_EXPR.
4493         (fold_unary): Handle for (T1)(X op Y),
4494         only p+ as that is the only as that can be handled for
4495         binary operators now.
4496         (fold_binary <case POINTER_PLUS_EXPR>): Add folding of
4497         POINTER_PLUS_EXPR.
4498         <case PLUS_EXPR>: Add folding of PTR+INT into
4499         PTR p+ INT.
4500         Don't call try_move_mult_to_index.
4501         <case MINUS_EXPR>: Fold (PTR0 p+ A) - (PTR1 p+ B)
4502         into (PTR0 - PTR1) + (A - B). Fold (PTR0 p+ A) - PTR1 into
4503         (PTR0 - PTR1) + A iff (PTR0 - PTR1) simplifies.
4504         Don't call try_move_mult_to_index.
4505         (tree_expr_nonnegative_warnv_p): Handle POINTER_PLUS_EXPR.
4506         (tree_expr_nonzero_p): Likewise.
4507         (fold_indirect_ref_1): Look at POINTER_PLUS_EXPR instead
4508         of PLUS_EXPR for the complex expression folding.
4509         * tree-chrec.c (chrec_fold_plus_poly_poly): If the
4510         first chrec is a pointer type, then the second should
4511         be sizetype and not the first's type.
4512         For POINTER_PLUS_EXPR, use a different right hand side type.
4513         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
4514         (chrec_fold_plus_1): For POINTER_PLUS_EXPR, use a
4515         different right hand side type.
4516         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
4517         (chrec_fold_plus): For pointer types, use POINTER_PLUS_EXPR
4518         instead of PLUS_EXPR.
4519         When either operand is zero, convert the other operand.
4520         (chrec_apply): Use chrec_convert_rhs
4521         on the argument x instead of chrec_convert.
4522         (reset_evolution_in_loop): For pointer types, the new_evol
4523         should be sizetype.
4524         (convert_affine_scev): For POINTER_PLUS_EXPR, use a
4525         different right hand side type.
4526         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
4527         (chrec_convert_rhs): New function.
4528         (chrec_convert_aggressive): For POINTER_PLUS_EXPR, use a
4529         different right hand side type.
4530         Handle POINTER_PLUS_EXPR like PLUS_EXPR.
4531         * tree-chrec.h (chrec_convert_rhs): New prototype.
4532         (build_polynomial_chrec): For pointer types, the right hand
4533         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Look for
4534         POINTER_PLUS_EXPR instead of PLUS_EXPR's.
4535         Remove subtraction case as it is always addition now.
4536         Make sure the offset is converted to sizetype.
4537         (fold_stmt_r): Don't handle PLUS_EXPR/MINUS_EXPR specially.
4538         Handle POINTER_PLUS_EXPR like PLUS_EXPR was handled before.
4539         * tree-ssa-loop-ivopts.c (determine_base_object): Abort for 
4540         PLUS_EXPR in pointer type.
4541         Handle POINTER_PLUS_EXPR.
4542         (tree_to_aff_combination): Likewise.
4543         (force_expr_to_var_cost): Likewise.
4544         (force_expr_to_var_cost): Likewise. Create a POINTER_PLUS_EXPR
4545         instead of PLUS_EXPR for pointers.
4546         * c-format.c (check_format_arg): Handle POINTER_PLUS_EXPR
4547         instead of PLUS_EXPR of pointer types.
4548         * tree-stdarg.c (va_list_counter_bump): Handle POINTER_PLUS_EXPR
4549         as PLUS_EXPR.
4550         (check_va_list_escapes): Likewise.
4551         (check_all_va_list_escapes): Likewise.
4552         * dwarf2out.c (loc_descriptor_from_tree_1):
4553         Handle POINT_PLUS_EXPR as a PLUS_EXPR.
4554         * expr.c (expand_expr_real_1): Handle POINTER_PLUS_EXPR.
4555         (string_constant): Likewise.
4556         * tree-ssa-address.c (tree_mem_ref_addr): When adding
4557         the offset to the base, use POINTER_PLUS_EXPR.
4558         (add_to_parts): Convert the index to sizetype.
4559         (create_mem_ref): Create A POINTER_PLUS_EXPR for the one case.
4560         * matrix-reorg.c (collect_data_for_malloc_call): Stmt
4561         will now only be either INDIRECT_REF and POINTER_PLUS_EXPR.
4562         Offset only holds something for PLUS_EXPR.
4563         (ssa_accessed_in_tree): Handle POINTER_PLUS_EXPR just as
4564         a PLUS_EXPR.
4565         (analyze_transpose): POINTER_PLUS_EXPR will only show up now
4566         and not PLUS_EXPR.
4567         (analyze_accesses_for_modify_stmt): Likewise.
4568         Remove comment about the type being integral type as it is
4569         wrong now.
4570         (can_calculate_expr_before_stmt): Handle POINTER_PLUS_EXPR as
4571         PLUS_EXPR.
4572         (transform_access_sites): POINTER_PLUS_EXPR will only show up now
4573         and not PLUS_EXPR.
4574         Correct the type which the artimentic is done in (is now
4575         sizetype).
4576         Reindent one loop.
4577         * tree-data-ref.c (split_constant_offset): Handle
4578         POINTER_PLUS_EXPR
4579         * tree-affine.c (tree_to_aff_combination): Likewise.
4580         * c-typeck.c (build_unary_op): For pointers create the increment
4581         as a sizetype. Create a POINTER_PLUS_EXPR instead of PLUS_EXPR
4582         for pointers.
4583         * gimplify.c (gimplify_self_mod_expr): Create a
4584         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
4585         (gimplify_omp_atomic_fetch_op): Handle POINTER_PLUS_EXPR.
4586         * tree.def (POINTER_PLUS_EXPR): New tree code.
4587         * tree-predcom.c (ref_at_iteration): If we have a pointer
4588         type do the multiplication in sizetype.
4589         * tree-mudflap.c (mf_xform_derefs_1): Create a
4590         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
4591         * tree-ssa-forwprop.c 
4592         (forward_propagate_addr_into_variable_array_index):
4593         Don't expect there to be a cast for the index as that
4594         does not exist anymore.
4595         (forward_propagate_addr_expr_1): Check for POINTER_PLUS_EXPR
4596         instead of PLUS_EXPR.
4597         Don't check for the first operand of the POINTER_PLUS_EXPR
4598         was the index as it cannot be.
4599         Call forward_propagate_addr_into_variable_array_index with
4600         the SSA_NAME instead of the statement.
4601         * varasm.c (const_hash_1): Handle POINTER_PLUS_EXPR.
4602         (compare_constant): Likewise.
4603         (copy_constant): Likewise.
4604         (compute_reloc_for_constant): Likewise.
4605         (output_addressed_constants): Likewise.
4606         (initializer_constant_valid_p): Likewise.
4607         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
4608         Convert the MIN/MAX of the inner type to the outer
4609         type before comparing them.
4610         * tree-ssa-loop-prefetch.c (idx_analyze_ref):  Handle
4611         POINTER_PLUS_EXPR instead of PLUS_EXPR.
4612         (issue_prefetch_ref): Create a POINTER_PLUS_EXPR instead
4613         of PLUS_EXPR for pointers.
4614         * tree-inline.c (estimate_num_insns_1): Handle
4615         POINTER_PLUS_EXPR.
4616         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): 
4617         Create a POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
4618         (bump_vector_ptr): Create a POINTER_PLUS_EXPR
4619         instead of PLUS_EXPR for the pointer increment statement.
4620         (vect_update_ivs_after_vectorizer): For pointer types, create
4621         POINTER_PLUS_EXPR instead of PLUS_EXPR and also create
4622         MULT_EXPR in sizetype.
4623         (vect_gen_niters_for_prolog_loop): Add a cast when creating
4624         byte_misalign.
4625         * tree-object-size.c (plus_expr_object_size): Handle
4626         POINTER_PLUS_EXPR instead of PLUS_EXPR.  Removing all the extra
4627         code which is trying to figure out which side is a pointer and 
4628         is the index.
4629         (check_for_plus_in_loops_1): Likewise.
4630         (check_for_plus_in_loops): Likewise.
4631         * c-common.c (pointer_int_sum): Create a
4632         POINTER_PLUS_EXPR instead of PLUS_EXPR for pointers.
4633         * tree-ssa-structalias.c (handle_ptr_arith): Handle
4634         only POINTER_PLUS_EXPR.  Removing all the extra
4635         code which is trying to figure out which side is a pointer and 
4636         is the index.
4637         * tree-cfg.c (verify_expr): Add extra checking for pointers and
4638         PLUS_EXPR and MINUS_EXPR.
4639         Also add checking to make sure the operands of POINTER_PLUS_EXPR
4640         are correct.
4641         * config/frv/frv.c (frv_expand_builtin_va_start): Use sizetype
4642         with make_tree, instead of a pointer type.
4643         * config/s390/s390.c (s390_va_start): Use POINTER_PLUS_EXPR
4644         for pointers instead of PLUS_EXPR.
4645         (s390_gimplify_va_arg): Likewise.
4646         * config/spu/spu.c (spu_va_start): Create POINTER_PLUS_EXPR
4647         instead of PLUS_EXPR when doing addition on pointer
4648         types.  Use sizetype for the second operand.
4649         (spu_gimplify_va_arg_expr): Likewise.
4650         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use 
4651         POINTER_PLUS_EXPR instead of PLUS_EXPR when the operand was
4652         a pointer.  Don't create a BIT_AND_EXPR for pointer types.
4653         * config/i386/i386.c (ix86_va_start): Use POINTER_PLUS_EXPR
4654         for the pointer addition and also use size_int/sizetype
4655         for the offset.
4656         (ix86_gimplify_va_arg): Likewise.
4657         Perform BIT_AND_EXPR on sizetype arguments.
4658         * config/sh/sh.c (sh_va_start): Call make_tree with sizetype
4659         and convert its result to a pointer type.  Use POINTER_PLUS_EXPR
4660         for the pointer additions and also use size_int for the offsets.
4661         (sh_gimplify_va_arg_expr): Use POINTER_PLUS_EXPR for the pointer
4662         additions and also use size_int for the offsets.  Perform
4663         BIT_AND_EXPR on sizetype arguments.
4664         * config/ia64/ia64.c (ia64_gimplify_va_arg): Use
4665         POINTER_PLUS_EXPR for pointers and create the
4666         BIT_AND_EXPR in sizetype.
4667         * config/rs6000/rs6000.c (rs6000_va_start): Use POINTER_PLUS_EXPR
4668         instead of PLUS_EXPR for pointer addition.
4669         (rs6000_va_start): Likewise.
4670         Also use sizetype for the offset.
4671         * config/pa/pa.c (reloc_needed): Handle POINTER_PLUS_EXPR
4672         as PLUS_EXPR/MINUS_EXPR.
4673         (hppa_gimplify_va_arg_expr): Don't create MINUS_EXPR or
4674         PLUS_EXPR for pointers, instead use POINTER_PLUS_EXPR.
4675         Don't use BIT_AND_EXPR on a pointer type, convert the
4676         expression to sizetype first.
4677         * config/mips/mips.c (mips_va_start): Use POINTER_PLUS_EXPR
4678         for pointers.
4679         (mips_gimplify_va_arg_expr): Likewise.
4680         Don't create BIT_AND_EXPR in a pointer type.
4681
4682 2007-06-15  Eric Christopher  <echristo@apple.com>
4683
4684         * config.gcc (i?86-*-darwin*): Add t-crtfm and t-crtpc.
4685         (x86_64-*-darwin*): Ditto.
4686         * config/i386/darwin.h (CRTEND_SPEC): New. Add support
4687         for above.
4688
4689 2007-06-15  Matthew Wilcox <matthew@wil.cx>
4690
4691         * doc/extend.texi: Document behavior of __attribute__((aligned))
4692         on typedefs.
4693
4694 2007-06-15  Mark Mitchell  <mark@codesourcery.com>
4695
4696         * rtlanal.c (note_stores): Improve documentation.
4697
4698 2007-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
4699
4700         * config/bfin/elf.h (ASM_GENERATE_INTERNAL_LABEL,
4701         LOCAL_LABEL_PREFIX): Delete.
4702         * config/bfin/bfin.c (TARGET_ASM_INTERNAL_LABEL): Delete.
4703         (bfin_internal_label): Delete.
4704
4705 2007-06-15  Uros Bizjak  <ubizjak@gmail.com>
4706
4707         * libgcc2.c (CEXT): When compiling L_multc3 and L_divtc3,
4708         define to "l" if LIBGCC_LONG_DOUBLE_SIZE == 128,
4709         otherwise define to LIBGCC2_TF_CEXT.
4710         * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): New define.
4711         (LIBGCC_TF_CEXT): Ditto.
4712         (TF_SIZE): Ditto.
4713
4714 2007-06-14  Seongbae Park  <seongbae.park@gmail.com>
4715
4716         PR rtl-optimization/32339
4717         * df-scan.c (df_uses_record): Don't modify flags but just add to
4718         it for df_ref_record.
4719
4720 2007-06-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4721
4722         * tree-mudflap.c: Fix whitespace issues.
4723
4724 2007-06-15  Kazu Hirata  <kazu@codesourcery.com>
4725
4726         * config/m68k/m68k.c (ASM_DOT, ASM_DOTW, ASM_DOTL): Remove.
4727
4728 2007-06-14  Eric Christopher  <echristo@apple.com>
4729
4730         * config/i386/sse.md (movdi_to_sse): Rewrite body.
4731         (movv4sf): Use gcc_unreachable instead of abort.
4732
4733 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
4734
4735         PR target/32268
4736         * config/i386/sfp-machine.h (CMPtype): New define.
4737         (mach stubs): Use CMPtype instead of int as a return type.
4738
4739 2007-06-14  Uros Bizjak  <ubizjak@gmail.com>
4740
4741         * config/soft-fp/eqdf2.c, config/soft-fp/eqsf2.c,
4742         config/soft-fp/eqtf2.c, config/soft-fp/gedf2.c,
4743         config/soft-fp/gesf2.c, config/soft-fp/getf2.c,
4744         config/soft-fp/ledf2.c, config/soft-fp/lesf2.c,
4745         config/soft-fp/letf2.c, config/soft-fp/unorddf2.c,
4746         config/soft-fp/unordsf2.c, config/soft-fp/unordtf2.c,
4747         config/soft-fp/soft-fp.h: Update from glibc CVS.
4748
4749 2007-06-14  Bernd Schmidt  <bernd.schmidt@analog.com>
4750
4751         * config/bfin/uclinux.h (MFWRAP_SPEC): New.
4752
4753 2007-06-14  Rask Ingemann Lambertsen  <rask@sygehus.dk>
4754
4755         PR target/32341
4756         * config/v850/v850.c: Include dataflow header file.
4757         (substitute_ep_register): Fix typo.
4758
4759 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
4760
4761         * configure.ac: Fix earlier checkin.
4762         * configure: Regenerated.
4763
4764 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
4765
4766         * acinclude.m4 (gcc_AC_CHECK_PROG_VER): Remove.
4767         * aclocal.m4: Regenerate.
4768         * configure.ac: Use ACX_PROG_CC_WARNING_OPTS,
4769         ACX_PROG_CC_WARNINGS_ARE_ERRORS,
4770         ACX_PROG_CC_WARNING_ALMOST_PEDANTIC, ACX_CHECK_PROG_VER.
4771         * configure: Regenerate.
4772         * Makefile.in (LOOSE_WARN): Subst loose_warn.
4773
4774         * Makefile.in (quickstrap): Build libgcc too.
4775
4776 2007-06-14  Paolo Bonzini  <bonzini@gnu.org>
4777
4778         * configure.ac: Add --enable-checking=df.  Explicitly mention that
4779         the variables are initialized as for "release".
4780         * df-core.c: Use it.
4781         * configure: Regenerate.
4782         * config.in: Regenerate.
4783
4784 2007-06-14  Bob Wilson  <bob.wilson@acm.org>
4785
4786         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use
4787         validate_replace_rtx instead of replace_rtx.
4788         (xtensa_expand_prologue): Call df_insn_rescan after replace_rtx.
4789
4790 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
4791
4792         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Define.
4793         (DWARF2_UNWIND_INFO): Override default if configured with
4794         SJLJ EH disabled.
4795         * config/i386/cygwin.h (STARTFILE_SPEC): Add crtbegin.o.
4796         (ENDFILE_SPEC): Add crtend.o.
4797         * config/i386/mingw32.h (STARTFILE_SEC): Add crtbegin.o.
4798         (ENDFILE_SPEC): Add crtend.o.
4799         (TARGET_USE_JCR_SECTION): Define.
4800         (MD_UNWIND_SUPPORT): Define for 32-bit target.
4801
4802         * config/i386/cygming-crtbegin.c: New file.
4803         * config/i386/cygming-crtend.c: New file.
4804
4805 2007-06-14  Pascal Obry Pascal Obry  <obry@adacore.com>
4806
4807         * config/i386/w32-unwind.h: New file.
4808
4809 2007-06-13  Eric Christopher  <echristo@apple.com>
4810
4811         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Don't let
4812         the user set a value below STACK_BOUNDARY.
4813
4814 2007-06-13  Thiemo Seufer  <ths@networkno.de>
4815
4816         * config/mips/linux.h, config/mips/linux64.h (LIB_SPEC): Always
4817         imply -lpthread for -pthread.
4818
4819 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
4820
4821         * basic-block.h: Remove the prototype for
4822         free_basic_block_vars.
4823         * cfglayout.h: Remove the prototype for
4824         insn_locators_initialize.
4825         * tree.h: Remove the prototype for emit_line_note.
4826
4827         * tree-ssa-pre.c (mergephitemp): Remove.
4828         (init_pre): Don't use mergephitemp.
4829
4830 2007-06-13  Eric Christopher  <echristo@apple.com>
4831
4832         * config/i386/i386.c (override_options): If we've specified
4833         an arch then don't use TARGET_SUBTARGET_ISA_DEFAULTs.
4834
4835 2007-06-13  Bob Wilson  <bob.wilson@acm.org>
4836
4837         * df-scan.c (df_get_entry_block_def_set): Check if STATIC_CHAIN_REGNUM
4838         is defined.
4839
4840 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4841
4842         * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Use gen_frame_mem.
4843         * config/bfin/bfin.md (UNSPEC_VOLATILE_STORE_EH_HANDLER): New constant.
4844         (eh_store_handler): New pattern.
4845         (eh_return): Emit it instead of a plain move.
4846
4847 2007-06-13  Uros Bizjak  <ubizjak@gmail.com>
4848
4849         * config/i386/i386.c (ix86_init_mmx_sse_builtins)
4850         [__builtin_infq, __builtin_fabsq]: Define usign def_builtin.
4851         [__builtin_ia32_rsqrtps, __builtin_ia32_rsqrtss]: Define using
4852         def_builtin_const.
4853
4854 2007-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4855
4856         * config/bfin/bfin.c (gen_one_bundle): Delete unused local variables.
4857         (find_next_insn_start, find_load): New functions.
4858         (bfin_reorg): Use them to deal with the fact that parallel insns are
4859         no longer represented as a SEQUENCE.
4860
4861 2007-06-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
4862
4863         * config/sparc/sparc.c (sparc_override_options): Initialize
4864         fpu mask correctly.
4865
4866 2007-06-13  Dave Korn  <dave.korn@artimi.com>
4867
4868         * config/i386/i386.c (ix86_eax_live_at_start_p): Use
4869         df_get_live_out.
4870
4871 2007-06-13  Kazu Hirata  <kazu@codesourcery.com>
4872
4873         * auto-inc-dec.c, c-incpath.c, config/c4x/libgcc.S,
4874         config/sh/divcost-analysis, dbgcnt.def, df-core.c,
4875         df-problems.c, df-scan.c, df.h, dominance.c, dse.c, regstat.c,
4876         tree-data-ref.c, tree-ssa-loop-im.c, tree-ssa-loop-prefetch.c,
4877         tree-vect-transform.c: Fix comment typos.  Follow spelling
4878         conventions.
4879
4880 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
4881
4882        * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer
4883        to the exit block use set.
4884        (df_insn_delete, df_insn_rescan): Fixed spelling of "deferring". 
4885        * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode.
4886        * config/sparc/sparc.c (sparc_check_64): Check df != NULL.
4887
4888 2007-06-12  Seongbae Park  <seongbae.park@gmail.com>
4889
4890         * opts.c (common_handle_option): Handle new option -fdbg-cnt-list.
4891         * dbgcnt.c (dbg_cnt_set_limit_by_name): Return value
4892         to indicate an error.
4893         (dbg_cnt_process_single_pair, dbg_cnt_list_all_counters):
4894         New functions.
4895         (dbg_cnt_process_opt): Print an error on a bad argument.
4896         * dbgcnt.h (dbg_cnt_list_all_counters): New function declaration.
4897         * common.opt (-fdbg-cnt-list): New.
4898         * doc/invoke.texi (-fdbg-cnt-list,-fdbg-cnt=): New.
4899
4900 2007-06-12  Eric Botcazou  <ebotcazou@adacore.com>
4901
4902         * tree-ssa-alias.c (finalize_ref_all_pointers): Clear pt_anything
4903         flag on ref-all pointers.
4904
4905 2007-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4906
4907         PR middle-end/31579
4908         * expr.c (expand_expr_addr_expr_1): Call expand_expr
4909         for the offset with the modifier as EXPAND_INITIALIZER
4910         if the modifier is EXPAND_INITIALIZER.
4911         (expand_expr_real_1 <case INTEGER_CST>): Don't force to
4912         a register if we had an overflow.
4913
4914 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4915
4916         * real.c (real_isfinite): New.
4917         (real_sqrt): Use it.
4918         * real.h (real_isfinite): New.
4919         * builtins.c: Use it.
4920
4921 2007-06-12  Ian Lance Taylor  <iant@google.com>
4922             Daniel Berlin  <dberlin@dberlin.org>
4923
4924         PR libstdc++/29286
4925         * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR.
4926         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define.
4927         (CHANGE_DYNAMIC_TYPE_LOCATION): Define.
4928         (DECL_NO_TBAA_P): Define.
4929         (struct tree_decl_common): Add no_tbaa_flag field.
4930         * tree-ssa-structalias.c (struct variable_info): Add
4931         no_tbaa_pruning field.
4932         (new_var_info): Initialize no_tbaa_pruning field.
4933         (unify_nodes): Copy no_tbaa_pruning field.
4934         (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR.
4935         (dump_solution_for_var): Print no_tbaa_pruning flag.
4936         (set_uids_in_ptset): Add no_tbaa_pruning parameter.  Change all
4937         callers.
4938         (compute_tbaa_pruning): New static function.
4939         (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes.
4940         Call compute_tbaa_pruning.
4941         * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers.
4942         * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR.
4943         * gimple-low.c (lower_stmt): Likewise.
4944         * tree-gimple.c (is_gimple_stmt): Likewise.
4945         * tree-ssa-operands.c (get_expr_operands): Likewise.
4946         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4947         * tree-inline.c (estimate_num_insns_1): Likewise.
4948         (copy_result_decl_to_var): Likewise.
4949         * expr.c (expand_expr_real_1): Likewise.
4950         * tree-pretty-print.c (dump_generic_node): Likewise.
4951         * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag.
4952         * omp-low.c (omp_copy_decl_2): Likewise.
4953         * print-tree.c (print_node): Print DECL_NO_TBAA_P flag.
4954         * doc/c-tree.texi (Expression trees): Document
4955         CHANGE_DYNAMIC_TYPE_EXPR.
4956
4957 2007-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4958
4959         * fold-const.c (fold_binary): Guard (X-X) -> 0 transformation
4960         with !HONOR_NANS and !HONOR_INFINITIES.
4961         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4962
4963 2007-06-12  Tristan Gingold  <gingold@adacore.com>
4964
4965         * gcov.c: Comments updated.
4966         (source_info): Add file_time field.
4967         (source_index): New variable.
4968         (mutiple_files): New variable.
4969         (generate_results): New function extracted from process_file.
4970         (process_file): Save and restore chain of functions, generate
4971         results and free structures only if not merging results.
4972         (release_structures): File names are now freed in create_file_names
4973         (create_file_names): Free previous file names.
4974         (find_source): File date is now read here and modifications in
4975         source files is checked here.
4976         (read_graph_file): Only reverse order of functions for the current
4977         object file.
4978         (make_gcov_file_name): Do not generate long names if input_name is
4979         NULL.
4980         (output_lines): If merging results do not display graph, data and
4981         runs informations.
4982         Checking source file modification is done in find_source.
4983
4984         * doc/gcov.texi: Append an s to sourcefile.
4985
4986 2007-06-12  Bernd Schmidt  <bernd.schmidt@analog.com>
4987
4988         * config/bfin/bfin.md (UNSPEC_NOP): New constant.
4989         (forced_nop): New pattern.
4990         * config/bfin/bfin.c: Include "df.h".
4991         (add_to_reg): Use df_regs_ever_live_p instead of regs_ever_live.
4992         (bfin_discover_loop): Use df_get_live_in instead of
4993         global_live_at_start.
4994         (bfin_reorder_loops): Pass 0 to cfg_layout_initialize.  Call
4995         df_analyze when done.
4996         (gen_one_bundle): Don't generate SEQUENCE insns, just put modes on
4997         the insns.  Use QImode for the final insn in a bundle.  Call
4998         df_insn_rescan on generated NOPs; use gen_forced_nop instead of
4999         gen_nop.
5000         (reorder_var_tracking_notes): New function.
5001         (bfin_reorg): Pass no argument to split_all_insns.  Don't call
5002         update_life_info.  Call df_analyze after scheduling and bundle
5003         generation.  Call reorder_var_tracking_notes if generating these
5004         notes.  Call df_finish_pass at the end.
5005
5006 2007-06-12  Dirk Mueller  <dmueller@suse.de>
5007
5008         * optabs.c (debug_optab_libfuncs): fix gcc_assert to
5009         a comparison, not an assignment.
5010
5011 2007-06-12  Olivier Hainque  <hainque@adacore.com>
5012
5013         * tree-nested.c (convert_local_reference): Handle VIEW_CONVERT_EXPR.
5014         Request walking the subtrees only, leaving the current is_lhs/val_only
5015         untouched.
5016         (convert_non_local_reference): Likewise.
5017
5018 2007-06-12  Nathan Sidwell  <nathan@codesourcery.com>
5019
5020         * config/m68k/m68k-devices.def (52221, 52223, 5253): New.
5021
5022 2007-06-12  Richard Guenther  <rguenther@suse.de>
5023
5024         PR tree-optimization/15353
5025         PR tree-optimization/31657
5026         * passes.c (init_optimization_passes): Add pass_tree_ifcombine.
5027         * timevar.def: Add TV_TREE_IFCOMBINE.
5028         * tree-pass.h (pass_tree_ifcombine): Declare.
5029         * tree-ssa-ifcombine.c: New file.
5030         * tree-ssa-phiopt.c (blocks_in_phiopt_order): Export.
5031         * tree-flow.h (blocks_in_phiopt_order): Declare.
5032         * Makefile.in (OBJS-common): Add tree-ssa-ifcombine.o.
5033         (tree-ssa-ifcombine.o): New dependencies.
5034
5035 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
5036
5037         PR rtl-optimization/32293
5038         * combine.c (simplify_if_then_else): Truncate return from
5039         nonzero_bits() to correct mode.
5040
5041 2007-06-12  Uros Bizjak  <ubizjak@gmail.com>
5042
5043         * fold-const (fold_binary) [RDIV_EXPR]: Also optimize a/cbrt(b/c)
5044         into a*cbrt(c/b) if flag_unsafe_math_optimizations is set.
5045
5046 2007-06-11  Diego Novillo  <dnovillo@google.com>
5047
5048         * Makefile.in (reload1.o-warn): Remove.
5049
5050 2007-06-11  Seongbae Park <seongbae.park@gmail.com>
5051
5052         * combine.c (subst): Use reg_overlap_mentioned_p
5053         instead of comparing register numbers directly.
5054
5055 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
5056
5057         * reload1.c (mark_home_live_1): Use the mode parameter.
5058
5059 2007-06-11  Kenneth Zadeck <zadeck@naturalbridge.com>
5060
5061         * df-scan.c (df_insn_delete, df_insn_rescan, df_insn_rescan_all,
5062         df_process_deferred_rescans, df_notes_rescan): Fixed spelling of
5063         word "deferred".
5064         * df-core.c: Ditto.
5065
5066 2007-06-11  Daniel Berlin  <dberlin@dberlin.org>
5067
5068         * Merge dataflow-branch into mainline (see ChangeLog.dataflow)
5069
5070 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
5071
5072         * config/i386/i386.md ("*movtf_internal): Penalize moves to and
5073         from integer registers.
5074         (FP mode splitters): Handle TFmode.
5075
5076 2007-06-11  Eric Botcazou  <ebotcazou@adacore.com>
5077
5078         * tree-ssa-structalias.c (find_what_p_points_to): Return false
5079         for ref-all pointers that point-to anything.
5080
5081 2007-06-11  Joseph Myers  <joseph@codesourcery.com>
5082
5083         * config/arm/arm.c (arm_output_dwarf_dtprel,
5084         TARGET_ASM_OUTPUT_DWARF_DTPREL): New.
5085
5086 2007-06-11  Bernd Schmidt  <bernd.schmidt@analog.com>
5087
5088         * config/bfin/bfin.md (movdi_insn, movsi_insn, movv2hi_insn,
5089         movhi_insn, movqi_insn, movsf_insn, movdf_insn): Don't allow constant
5090         to memory moves.
5091
5092 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
5093
5094         * gcc/tree.c (signed_or_unsigned_type_for): New.
5095         (unsigned_type_for): Use signed_or_unsigned_type_for.
5096         (signed_type_for): Use signed_or_unsigned_type_for.
5097         * gcc/tree.h (signed_or_unsigned_type_for): New.
5098         (get_signed_or_unsigned_type): Remove.
5099         * gcc/fold-const.c (fold_negate_expr): Use signed_type_for instead of
5100         lang_hooks.types.signed_type
5101         (size_diffop): Likewise.
5102         (all_ones_mask_p): Likewise.
5103         (build_range_check): Likewise.
5104         (fold_cond_expr_with_comparison): Likewise.
5105         (fold_cond_expr_with_comparison): Likewise.
5106         (unextend): Likewise.
5107         (extract_muldiv_1): Likewise.
5108         (fold_single_bit_test_into_sign_test): Likewise.
5109         (fold_binary): Likewise.
5110         (fold_ternary): Likewise.
5111         (operand_equal_for_comparison_p): Use signed_or_unsigned_type_for
5112         instead of get_signed_or_unsigned_type.
5113         * gcc/c-objc-common.h (LANG_HOOKS_SIGNED_TYPE): Remove.
5114         (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
5115         * gcc/expr.c (signed_or_unsigned_type_for): Use
5116         signed_or_unsigned_type_for instead of get_signed_or_unsigned_type.
5117         * gcc/langhooks.c (get_signed_or_unsigned_type): Remove.
5118         (lhd_signed_or_unsigned_type): Remove.
5119         * gcc/langhooks.h (lang_hooks_for_types): Remove signed_type and
5120         signed_or_unsigned_type.
5121         (lhd_signed_or_unsigned_type): Remove.
5122         * gcc/expmed.c (make_tree): Use signed_type_for instead of
5123         lang_hooks.types.signed_type.
5124         * gcc/c-common.c (same_scalar_type_ignoring_signedness): Use
5125         c_common_signed_type instead of lang_hooks.types.signed_type.
5126         (c_common_unsigned_type): New.
5127         (c_common_signed_type): Just call c_common_signed_or_unsigned_type.
5128         (shorten_compare): Use c_common_unsigned_type instead of
5129         c_common_signed_or_unsigned_type.
5130         (c_common_nodes_and_builtins): Use c_common_unsigned_type instead of
5131         unsigned_type_for.
5132         * gcc/convert.c (convert_to_integer): Use signed_type_for instead of
5133         lang_hooks.types.signed_type.
5134         * gcc/langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
5135         (LANG_HOOK_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_SIGNED_TYPE and
5136         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE.
5137         * gcc/c-format.c (check_format_types): Use c_common_unsigned_type
5138         instead of unsigned_type_for.
5139         * gcc/c-decl.c (groakdeclarator): Likewise.
5140         * gcc/c-typeck.c (convert_for_assignment): Likewise.
5141         * gcc/c-common.h (c_common_unsigned_type): New.
5142
5143 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
5144
5145         PR target/32280
5146         * config/i386/sse.md ("sse2_ashlti", "sse2_lshrti3"): Move ...
5147         * config/i386/i386.md ("sse2_ashlti", "sse2_lshrti3"): ... to here.
5148
5149 2007-06-11  Uros Bizjak  <ubizjak@gmail.com>
5150
5151         PR middle-end/32279
5152         * fold-const (fold_binary) [RDIV_EXPR]: Optimize a/sqrt(b/c)
5153         into a*sqrt(c/b) if flag_unsafe_math_optimizations is set.
5154
5155 2007-06-10  Jan Sjodin  <jan.sjodin@amd.com>
5156             Sebastian Pop  <sebpop@gmail.com>
5157
5158         * lambda-code.c (remove_iv): New.
5159         (lambda_loopnest_to_gcc_loopnest): Use remove_iv.
5160
5161 2007-06-10  Zdenek Dvorak  <dvorakz@suse.cz>
5162
5163         * tree-data-ref.c (dr_analyze_alias): Handle case smt is NULL.
5164         * tree-predcom.c (mark_virtual_ops_for_renaming): Exported.
5165         * tree-ssa-loop-prefetch.c: Include optabs.h.
5166         (FENCE_FOLLOWING_MOVNT): New macro.
5167         (struct mem_ref): Add independent_p and storent_p fields.
5168         (record_ref): Initalize the new fields.
5169         (gather_memory_references_ref): Return true if the reference
5170         could be analysed.
5171         (gather_memory_references): Check whether all memory accesses
5172         in loop were recorded.
5173         (should_issue_prefetch_p): Return false for nontemporal stores.
5174         (nontemporal_store_p, mark_nontemporal_store, emit_mfence_after_loop,
5175         may_use_storent_in_loop_p, mark_nontemporal_stores): New functions.
5176         (determine_loop_nest_reuse): Detect independent memory references.
5177         (loop_prefetch_arrays): Call mark_nontemporal_stores.
5178         * tree-flow.h (mark_virtual_ops_for_renaming): Declare.
5179         * Makefile.in (tree-ssa-loop-prefetch.o): Add OPTABS_H dependency.
5180         * config/i386/i386.h (x86_mfence): Declare.
5181         (FENCE_FOLLOWING_MOVNT): Return x86_mfence.
5182         * config/i386/i386.c (x86_mfence): New variable.
5183         (ix86_init_mmx_sse_builtins): Initialize x86_mfence.
5184
5185         * tree-pretty-print.c (dump_generic_node): Mark nontemporal stores.
5186         * optabs.c (init_optabs): Initialize storent_optab.
5187         * optabs.h (enum optab_index): Add OTI_storent.
5188         (storent_optab): Declare.
5189         * genopinit.c (optabs): Add initialization for storent_optab.
5190         * tree.h (MOVE_NONTEMPORAL): New macro.
5191         * expr.c (expand_assignment, store_expr, store_constructor_field,
5192         store_constructor, store_field, expand_expr_real_1): Propagate
5193         nontemporality of the expanded store.
5194         (emit_storent_insn): New function.
5195         * expr.h (expand_assignment, store_expr): Declaration changed.
5196         * function.c (assign_parm_setup_reg): Pass false as nontemporality
5197         to expand_assignment.
5198         * stmt.c (expand_asm_expr): Ditto.
5199         * calls.c (initialize_argument_information): Pass false as
5200         nontemporality to store_expr.
5201         * config/i386/sse.md (storentv4sf, storentv2df, storentv2di,
5202         storentsi): New.
5203
5204 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
5205
5206         * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd
5207         parameter, use it.
5208         (find_what_p_points_to): Pass new parameter to set_uids_in_ptset.
5209
5210 2007-06-09  Daniel Berlin  <dberlin@dberlin.org>
5211
5212         * tree-data-ref.c (dr_may_alias_p): Check that decl_a != decl_b,
5213         and allow DECL_P here.
5214
5215 2007-06-09  Zdenek Dvorak  <dvorakz@suse.cz>
5216
5217         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs,
5218         follow_ssa_edge_in_condition_phi, follow_ssa_edge): Keep more precise
5219         track of the size of the expression.
5220         * cfghooks.c (merge_blocks): Remove block from loops structure only
5221         after call of the merge_blocks hook.
5222
5223 2007-06-09  Tom Tromey  <tromey@redhat.com>
5224
5225         * c-decl.c (grokdeclarator): Added 'deprecated_state' argument.
5226         (deprecated_state): Removed.
5227         (start_decl): Update.
5228         (enum deprecated_states): Moved earlier.
5229         (groktypename): Update.
5230         (push_parm_decl): Likewise.
5231         (grokfield): Likewise.
5232         (start_function): Likewise.
5233
5234 2007-06-09  Ian Lance Taylor  <iant@google.com>
5235
5236         PR tree-optimization/32169
5237         * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and
5238         CONVERT_EXPR, check whether min and max both converted to an
5239         overflow infinity representation.
5240
5241 2007-06-08  Eric Botcazou  <ebotcazou@adacore.com>
5242
5243         * reload1.c (fixup_abnormal_edges): Clear bb field for insns
5244         not inserted on the edge.
5245
5246 2007-06-08  Bob Wilson  <bob.wilson@acm.org>
5247
5248         * config/xtensa/lib1funcs.asm (__udivsi3): Use hardware divide
5249         instructions if they are supported.
5250         (__divsi3, __umodsi3, __modsi3): Likewise.
5251         (__ashldi3, __ashrdi3, __lshrdi3): New.
5252         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add DImode shift functions.
5253
5254 2007-06-08  Harsha Jagasia <harsha.jagasia@amd.com>
5255             Tony Linthicum <tony.linthicum@amd.com>
5256
5257         * doc/invoke.texi: Add fvect-cost-model flag.
5258         * common.opt (fvect-cost-model): New flag.
5259         * tree-vectorizer.c (new_stmt_vec_info): Initialize inside and outside
5260         cost fields in stmt_vec_info struct for STMT.
5261         * tree-vectorizer.h (stmt_vec_info): Define inside and outside cost
5262         fields in stmt_vec_info struct and access functions for the same.
5263         (TARG_COND_BRANCH_COST): Define cost of conditional branch.
5264         (TARG_VEC_STMT_COST): Define cost of any vector operation, excluding
5265         load, store and vector to scalar operation.
5266         (TARG_VEC_TO_SCALAR_COST): Define cost of vector to scalar operation.
5267         (TARG_VEC_LOAD_COST): Define cost of aligned vector load.
5268         (TARG_VEC_UNALIGNED_LOAD_COST): Define cost of misasligned vector load.
5269         (TARG_VEC_STORE_COST): Define cost of vector store.
5270         (vect_estimate_min_profitable_iters): Define new function.
5271         * tree-vect-analyze.c (vect_analyze_operations): Add a compile-time
5272         check to evaluate if loop iterations are less than minimum profitable
5273         iterations determined by cost model or minimum vect loop bound defined
5274         by user, whichever is more conservative.
5275         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Add a
5276         run-time check to evaluate if loop iterations are less than minimum
5277         profitable iterations determined by cost model or minimum vect loop
5278         bound defined by user, whichever is more conservative.
5279         (vect_estimate_min_profitable_iterations): New function to estimate
5280         mimimimum iterartions required for vector version of loop to be
5281         profitable over scalar version.
5282         (vect_model_reduction_cost): New function.
5283         (vect_model_induction_cost): New function.
5284         (vect_model_simple_cost): New function.
5285         (vect_cost_strided_group_size): New function.
5286         (vect_model_store_cost): New function.
5287         (vect_model_load_cost): New function.
5288         (vectorizable_reduction): Call vect_model_reduction_cost during
5289         analysis phase.
5290         (vectorizable_induction): Call vect_model_induction_cost during
5291         analysis phase.
5292         (vectorizable_load): Call vect_model_load_cost during analysis phase.
5293         (vectorizable_store): Call vect_model_store_cost during analysis phase.
5294         (vectorizable_call, vectorizable_assignment, vectorizable_operation,
5295         vectorizable_promotion, vectorizable_demotion): Call
5296         vect_model_simple_cost during analysis phase.
5297
5298 2007-06-08  Simon Baldwin  <simonb@google.com>
5299
5300         * reg-stack.c (get_true_reg): Readability change.  Moved default case
5301         label into direct switch statement scope.
5302
5303 2007-06-08  Simon Baldwin  <simonb@google.com>
5304
5305         * tree-flow-inline.h (var_ann): Replaced erroneous '=' assignment
5306         in gcc_assert() with '==' comparison.
5307
5308 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
5309
5310         * config/i386/i386.c (override_options): Merge TARGET_SSE4_2 and
5311         TARGET_ABM handling of x86_popcnt variable.
5312
5313 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
5314
5315         * doc/extend.texi (X86 Built-in Functions): Document __builtin_fabsq,
5316         __builtin_copysignq and __builtin_infq built-in functions.
5317
5318 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
5319
5320         * doc/extend.texi (X86 Built-in Functions): Add missing `@item's in
5321         SSE4.2 section.  Correct built-in function names in SSE4A section.
5322
5323 2007-06-08  Uros Bizjak  <ubizjak@gmail.com>
5324
5325         PR tree-optimization/32243
5326         * tree-vect-transform.c (vectorizable_type_promotion): Move check
5327         for ncopies after ratio check between nunits_out and nunits_in.
5328         (vectorizable_type_demotion): Remove single-use variable "scalar_type".
5329
5330 2007-06-08  Dorit Nuzman  <dorit@il.ibm.com>
5331
5332         PR tree-optimization/32224
5333         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fail
5334         vectorization upon a non GIMPLE_MODIFY_STMT.
5335
5336 2007-06-08  Christian Bruel  <christian.bruel@st.com>
5337
5338         PR target/29953
5339         * config/sh/sh.md (doloop_end): New pattern and splitter.
5340         * loop-iv.c (simple_rhs_p): Check for hardware registers.
5341
5342 2007-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
5343
5344         PR middle-end/32209
5345         * dominance.c (debug_dominance_tree, debug_dominance_tree_1): New
5346         functions.
5347         (verify_dominators): Do not change dominance tree.
5348
5349 2007-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5350
5351         * config/sh/constraints.md: New file.
5352         * config/sh/sh.c: Include tm-constrs.h.
5353         (reg_class_from_letter): Remove.
5354         (prepare_cbranch_operands): Use satisfies_constraint_*
5355         function instead of macro.
5356         (andcosts, broken_move, sh_secondary_reload): Likewise.
5357         * config/sh/predicates.md (trapping_target_operand): Likewise.
5358         (and_operand, arith_operand, arith_reg_or_0_operand,
5359         cmp_operand, logical_operand, target_operand,
5360         ua_address_operand, ua_offset, xor_operand): Likewise.
5361         * config/sh/sh.md: Include constraints.md.
5362         (*movsicc_t_false): Use satisfies_constraint_* function
5363         instead of macro.
5364         (*movsicc_t_true, ashlsi3_std, ashlhi3_k, lshrsi3_m,
5365         lshrsi3_k, movsi_const_16bit+2, *movhi_media+1,
5366         movdi_const_16bit+1, beq, bne, *ptb): Likewise.
5367         * config/sh/sh.h (reg_class_from_letter): Remove prototype.
5368         (OVERRIDE_OPTIONS): Don't modify reg_class_from_letter.
5369         (REG_CLASS_FROM_CONSTRAINT): Remove.
5370         (CONSTRAINT_LEN, CONST_OK_FOR_I20, CONST_OK_FOR_I,
5371         CONST_OK_FOR_J, CONST_OK_FOR_K16, CONST_OK_FOR_K,
5372         CONST_OK_FOR_P27, CONST_OK_FOR_P, CONST_OK_FOR_M,
5373         CONST_OK_FOR_N, CONST_OK_FOR_CONSTRAINT_P,
5374         CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
5375         (SECONDARY_INOUT_RELOAD_CLASS): Use satisfies_constraint_*
5376         function instead of macro.
5377         (SECONDARY_INPUT_RELOAD_CLASS): Likewise.
5378         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_A,
5379         EXTRA_CONSTRAINT_Bsc, EXTRA_CONSTRAINT_B,
5380         EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Remove.
5381         (IS_PC_RELATIVE_LOAD_ADDR_P): New macro.
5382         (IS_LITERAL_OR_SYMBOLIC_S16_P): Likewise.
5383         (IS_LITERAL_OR_SYMBOLIC_U16_P): Likewise.
5384         (IS_NON_EXPLICIT_CONSTANT_P): Likewise.
5385         (EXTRA_CONSTRAINT_Csy, EXTRA_CONSTRAINT_Z, EXTRA_CONSTRAINT_W,
5386         EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C,
5387         EXTRA_MEMORY_CONSTRAINT, EXTRA_CONSTRAINT_Sr0,
5388         EXTRA_CONSTRAINT_Sua, EXTRA_CONSTRAINT_S,
5389         EXTRA_CONSTRAINT_STR): Likewise.
5390         (GO_IF_LEGITIMATE_INDEX): Fix indentation.
5391
5392 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
5393
5394         * config/i386/darwin.h (STACK_BOUNDARY): Define.
5395
5396 2007-06-07  Simon Martin  <simartin@users.sourceforge.net>
5397
5398         PR c++/30759
5399         * c-common.h (flag_cpp0x): Replaced by...
5400         (cxx_dialect): ... this new variable specifying the C++ dialect that
5401         is used.
5402         * c-common.c (flag_cpp0x): Removed.
5403         (cxx_dialect): Defined.
5404         * c-cppbuiltin.c (c_cpp_builtins): flag_cpp0x rewritten in terms of
5405         cxx_dialect.
5406         * c-opts.c (c_common_post_options): Likewise.
5407         (set_std_cxx98): Set cxx_dialect to cxx98.
5408         (set_std_cxx0x): Set cxx_dialect to cxx0x.
5409
5410 2007-06-07  Geoffrey Keating  <geoffk@apple.com>
5411             Hui-May Chang <hm.chang@apple.com>
5412
5413         * doc/invoke.texi (Darwin Options): Update documentation for
5414         -mmacosx-version-min.
5415         * config.gcc (*-*-darwin*): Set extra_gcc_objs.
5416         * config/darwin-driver.c: New file.
5417         * config/darwin.h (GCC_DRIVER_HOST_INITIALIZATION): New.
5418         * config/t-darwin (darwin-driver.o): New rule.
5419
5420         * config/darwin-c.c (version_as_macro): Ignore low digit.
5421
5422 2007-06-07  Uros Bizjak  <ubizjak@gmail.com>
5423
5424         * config/i386/i386.md (standard sse constant splitter): Handle TFmode.
5425         (negtf2, abstf2, *absnegtf2_sse): New insn patterns.
5426         (CSGNMODE): New mode macro.
5427         (CSGNVMODE): New mode attribute.
5428         (copysign<mode>3): Rename from copysingsf3 and copysigndf3.  Macroize
5429         expander using CSGNMODE mode macro.  Handle TFmode.
5430         (copysign<mode>3_const): Rename from copysignsf3_const and
5431         copysigndf3_const.  Macroize pattern using CSGNMODE mode macro.
5432         Handle TFmode.
5433         (copysign<mode>3_var): Rename from copysignsf3_var and
5434         copysigndf3_var.  Macroize pattern using CSGNMODE mode macro.
5435         Handle TFmode.
5436         (copysign<mode>3_var splitter): Macroize pattern using CSGNMODE
5437         mode macro.  Handle TFmode.
5438         * config/i386/sse.md (andtf3, *andtf3, *nandtf3): New insn patterns.
5439         (iortf3, *iortf3): Ditto.
5440         (xortf3, *xortf3): Ditto.
5441         * config/i386/i386.c (ix86_build_signbit_mask): Create scalar
5442         TFmode and TImode masks.
5443         (ix86_expand_copysign): Expand TFmode copysign insn.
5444         (IX86_BUILTIN_INFQ): New.
5445         (IX86_BUILTIN_FABSQ): Ditto.
5446         (IX86_BUILTIN_COPYSIGNQ): Ditto.
5447         (ix86_init_mmx_sse_builtins) [__builtin_infq]: New builtin definition.
5448         [__builtin_fabsq]: Ditto.
5449         [__builtin_copysignq]: Ditto.
5450         (ix86_expand_builtin) [IX86_BUILTIN_INFQ]: Expand builtin.
5451         [IX86_BUILTIN_FABSQ]: Expand builtin using ix86_expand_unop_builtin().
5452         [IX86_BUILTIN_COPYSIGNQ]: Expand builtin using
5453         ix86_expand_binop_builtin().
5454
5455 2007-06-07  Bob Wilson  <bob.wilson@acm.org>
5456
5457         * config/xtensa/lib1funcs.asm: Clean up whitespace.
5458
5459 2007-06-07  Steve Ellcey  <sje@cup.hp.com>
5460
5461         PR target/31850
5462         * rtl.h (push_to_sequence2): New.
5463         * emit-rtl.c (push_to_sequence2): New.
5464         * function.c (assign_parm_data_all): Add new fields.
5465         (assign_parm_setup_block): Call push_to_sequence2 instead of
5466         push_to_sequence.
5467         (assign_parm_setup_reg): Ditto.
5468         (assign_parm_setup_stack): Ditto.
5469         (assign_parms_unsplit_complex): Ditto.
5470         (assign_parms): Change field name.
5471
5472 2007-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
5473
5474         PR tree-optimization/32220
5475         * tree-predcom.c (eliminate_temp_copies): Handle the case that loop
5476         phi node is reached before defining statement.
5477
5478 2007-06-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5479
5480         PR tree-opt/32231
5481         * tree-vect-transform.c (vectorizable_call): Call update_stmt
5482         after changing the right hand side of the assignment.
5483
5484 2007-06-06  Eric Christopher  <echristo@apple.com>
5485
5486         * config.gcc (i?86-*-darwin*): Remove arch parameter.
5487         (x86_64-*-darwin*): Ditto.
5488         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Define.
5489         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
5490
5491 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
5492
5493         * tree-ssa-alias-warnings.c (maybe_add_match): Cast according to the
5494         coding conventions.
5495         (add_key): Likewise.
5496         * tree-ssa.c (init_tree_ssa): Use type safe memory macros.
5497         * tree-ssa-ccp.c (ccp_fold_builtin): Avoid using C++ keywords as
5498         variable names.
5499         * tree-ssa-coalesce.c (find_coalesce_pair): Use type safe memory
5500         macros.
5501         (add_cost_one_coalesce): Likewise.
5502         * tree-ssa-copy.c (merge_alias_info): Avoid using C++ keywords as
5503         variable names. Rename orig to orig_name for consistency.
5504         * tree-ssa-dom.c (dom_thread_across_edge): Cast according to the
5505         coding conventions.
5506         (cprop_into_successor_phis): Avoid using C++ keywords as variable
5507         names.
5508         (record_equivalences_from_stmt): Likewise.
5509         * tree-ssa-dse.c (dse_initialize_block_local_data): Cast according to
5510         the coding conventions.
5511         (memory_ssa_name_same): Likewise.
5512         (dse_optimize_stmt): Likewise.
5513         (dse_record_phis): Likewise.
5514         (dse_finalize_block): Likewise.
5515         * tree-ssa-loop-im.c (outermost_invariant_loop_expr): Avoid using C++
5516         keywords as variable names.
5517         (may_move_till): Cast according to the coding conventions.
5518         (force_move_till_expr): Avoid using C++ keywords as variable names.
5519         (force_move_till): Cast according to the coding conventions.
5520         (memref_hash): Likewise.
5521         (memref_eq): Likewise.
5522         (gather_mem_refs_stmt): Likewise.
5523         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Avoid
5524         using C++ keywords as variable names.
5525         (idx_find_step): Cast according to the coding conventions.
5526         (idx_record_use): Likewise.
5527         (find_depends): Likewise.
5528         (prepare_decl_rtl): Likewise.
5529         (mbc_entry_hash): Likewise.
5530         (mbc_entry_eq): Likewise.
5531         * tree-ssa-loop-niter.c (SWAP): Use the correct the type for tmp.
5532         (simplify_replace_tree): Avoid using C++ keywords as variable names.
5533         (idx_infer_loop_bounds): Cast according to the coding conventions.
5534         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
5535         * tree-ssa-math-opts.c (occ_new ): Likwise.
5536         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Use type safe memory
5537         macros.
5538         * tree-ssa-operands.c (add_def_op): Avoid using C++ keywords as
5539         variable names.
5540         (add_use_op): Likewise.
5541         (add_vop): Likewise.
5542         (add_vuse_op): Likewise.
5543         (add_vdef_op): Likewise.
5544         (get_expr_operands): Likewise.
5545         (push_stmt_changes): Use type safe memory macros.
5546         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Avoid using C++
5547         keywords as variable names.
5548         (conditional_replacement): Likewise.
5549         (minmax_replacement): Likewise.
5550         (abs_replacement): Likewise.
5551         * tree-ssa-pre.c (create_expression_by_pieces): Cast according to the
5552         coding conventions.
5553         (insert_fake_stores): Avoid using C++ keywords as variable names.
5554         * tree-ssa-reassoc.c (add_to_ops_vec): Cast according to the coding
5555         conventions.
5556         * tree-ssa-structalias.c (heapvar_lookup): Likewise.
5557         (heapvar_insert): Use type safe memory macros.
5558         (new_var_info): Cast according to the coding conventions.
5559         (new_constraint): Likewise.
5560         (remove_preds_and_fake_succs): Use type safe memory macros.
5561         * tree-ssa-threadupdate.c (thread_block): Cast according to the coding
5562         conventions.
5563         (thread_single_edge): Likewise.
5564         (thread_through_loop_header): Likewise.
5565
5566 2007-06-06  Eric Christopher  <echristo@apple.com>
5567
5568         * config/i386/i386.c (override_options): Move handling
5569         of TARGET_SUBTARGET* earlier.
5570
5571 2007-06-06  Paolo Bonzini  <bonzini@gnu.org>
5572
5573         * genmodes.c (tagged_printf, emit_insn_modes_h): Don't
5574         use %n on printf.
5575
5576 2007-06-06  Zdenek Dvorak  <dvorakz@suse.cz>
5577
5578         * haifa-sched.c (restore_bb_notes): Clear bb field of the notes
5579         emited outside of basic block.
5580         * cfgbuild.c (find_bb_boundaries): Clear bb field for insns between
5581         the created blocks.
5582         * rtl.h (delete_insn_chain): Declaration changed.
5583         * cfgrtl.c (delete_insn_chain): Add option to clear bb field for
5584         non-removed insns.
5585         (rtl_delete_block, rtl_merge_blocks): Pass true to delete_insn_chain.
5586         (delete_insn_chain_and_edges, try_redirect_by_replacing_jump,
5587         rtl_tidy_fallthru_edge, cfg_layout_merge_blocks): Pass false
5588         to delete_insn_chain.
5589         (rtl_verify_flow_info_1): Verify that the insns in header and footer
5590         do not have bb field set.
5591         (rtl_verify_flow_info): Verify that insns between basic blocks do not
5592         have bb field set.
5593         * recog.c (peephole2_optimize): Add argument to delete_insn_chain call.
5594         * cfgcleanup.c (try_optimize_cfg): Ditto.
5595
5596 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
5597
5598         * lambda-code.c (struct lambda_lattice_s): Add a name to the struct.
5599         (lambda_body_vector_new): Use type safe memory macros.
5600         (lambda_linear_expression_new): Likewise.
5601         (lambda_loopnest_new): Likewise.
5602         (lambda_lattice_new): Likewise.
5603         (replace_uses_equiv_to_x_with_y): Cast according to the coding
5604         conventions. Use type safe memory macros.
5605         * lambda.h (struct lambda_trans_matrix_s): Add a name to the struct.
5606         (lambda_body_vector_s): Likewise.
5607         * lambda-mat.c (lambda_matrix_new): Use type safe memory macros.
5608         * lambda-trans.c (lambda_trans_matrix_new): Likewise.
5609
5610 2007-06-06  Richard Guenther  <rguenther@suse.de>
5611
5612         * tree-ssa-forwprop.c (forward_propagate_into_cond): Return 2
5613         if we need to schedule cfg_cleanup.
5614         (tree_ssa_forward_propagate_single_use_vars): Do so.
5615
5616 2007-06-06  Ian Lance Taylor  <iant@google.com>
5617
5618         * fold-const.c (merge_ranges): If range_successor or
5619         range_predecessor fail, just return 0.
5620
5621 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
5622
5623         PR tree-optimization/32216
5624         * tree-vectorizer.c (supportable_widening_operation): Determine
5625         signedness of FIX_TRUNC_EXPR from output operand.
5626         (supportable_narrowing_operation): Ditto.
5627         * tree-vect-generic.c (expand_vector_operations_1): Determine
5628         signedness of VEC_UNPACK_FLOAT_HI_EXPR and VEC_UNPACK_FLOAT_LO_EXPR
5629         from input operand.
5630
5631 2007-06-06  Thomas Neumann  <tneumann@users.sourceforge.net>
5632
5633         * config/i386/i386.c (enum pta_flags): Move out of struct scope...
5634         (struct pta): ...from here. Change flags to unsigned to avoid
5635         excessive casting (as it is used as a bit mask).
5636         (override_options): Add casts according to the coding convenventions.
5637         (x86_64_elf_unique_section): Likewise.
5638         (examine_argument): Avoid using C++ keywords as variable names.
5639         (construct_container): Likewise.
5640         (legitimize_pic_address): Likewise.
5641         (get_dllimport_decl): Cast according to the coding conventions. Use
5642         type safe memory macros.
5643         (legitimize_address): Cast according to the coding conventions.
5644         (emit_i387_cw_initialization): Corrected the type of slot to enum
5645         ix86_stack_slot.
5646         (ix86_init_machine_status): Use type safe memory macros.
5647         (bdesc_pcmpestr): Use UNKNOWN instead of integer 0.
5648         (bdesc_pcmpistr): Likewise.
5649         (bdesc_crc32): Likewise.
5650         (bdesc_sse_3arg): Likewise.
5651         (bdesc_2arg): Likewise.
5652         (bdesc_1arg): Likewise.
5653         (ix86_expand_sse_pcmpestr): Cast according to the coding conventions.
5654         (ix86_expand_sse_pcmpistr): Likewise.
5655         (ix86_expand_vec_set_builtin): Use EXPAND_NORMAL instead of integer 0.
5656         (ix86_builtin_vectorized_function): Change the type of fn to unsigned
5657         int to match the langhook definition.
5658         (ix86_builtin_conversion): Change the type of code to unsigned init to
5659         match the langhook definition.
5660         (ix86_preferred_reload_class): Avoid using C++ keywords as variable
5661         names.
5662         (ix86_preferred_output_reload_class): Likewise.
5663         (ix86_cannot_change_mode_class): Likewise.
5664         (ix86_memory_move_cost): Likewise.
5665         (ix86_rtx_costs): Cast the outer_code parameter to enum rtx_code to
5666         avoid excessive casting later on.
5667         (x86_output_mi_thunk): Avoid using C++ keywords as variable names.
5668
5669 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
5670
5671         * config/i386/sse.md (sse4_2_pcmpestr_cconly): Prefer pcmpestrm
5672         as flags setting insn.
5673         (sse4_2_pcmpistr_cconly): Prefer pcmpistrm as flags setting insn.
5674
5675 2007-06-06  Uros Bizjak  <ubizjak@gmail.com>
5676
5677         * config/i386/i386.md (UNSPEC_ROUNDP, UNSPEC_ROUNDS): Remove.
5678         (UNSPEC_ROUND): New.
5679         ("sse4_1_round<mode>2"): New insn pattern.
5680         ("rint<mode>2"): Expand using "sse4_1_round<mode>2" pattern for
5681         SSE4.1 targets.
5682         ("floor<mode>2"): Rename from floordf2 and floorsf2.  Macroize
5683         expander using SSEMODEF mode macro.  Expand using
5684         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
5685         ("ceil<mode>2"): Rename from ceildf2 and ceilsf2.  Macroize
5686         expander using SSEMODEF mode macro.  Expand using
5687         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
5688         ("btrunc<mode>2"): Rename from btruncdf2 and btruncsf2.  Macroize
5689         expander using SSEMODEF mode macro.  Expand using
5690         "sse4_1_round<mode>2" pattern for SSE4.1 targets.
5691         * config/i386/sse.md ("sse4_1_roundpd", "sse4_1_roundps"): Use
5692         UNSPEC_ROUND instead of UNSPEC_ROUNDP.
5693         ("sse4_1_roundsd", "sse4_1_roundss"): Use UNSPEC_ROUND instead of
5694         UNSPEC_ROUNDS.
5695
5696 2007-06-06  Jan Sjodin  <jan.sjodin@amd.com>
5697             Sebastian Pop  <sebpop@gmail.com>
5698
5699         * lambda.h (build_linear_expr): New.
5700         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression):
5701         Use build_linear_expr, call fold and force_gimple_operand.
5702         (lambda_loopnest_to_gcc_loopnest): Check that there is
5703         something to insert.
5704         * testsuite/gcc.dg/tree-ssa/ltrans-6.c: New.
5705
5706 2007-06-05  Joerg Wunsch  <j.gnu@uriah.heep.sax.de>
5707
5708         PR preprocessor/23479
5709         * doc/extend.texi: Document the 0b-prefixed binary integer
5710         constant extension.
5711
5712 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
5713
5714         PR tree-optimization/32215
5715         * tree-vectorizer.c (supportable_widening_operation): Return false
5716         for unsupported FIX_TRUNC_EXPR tree code.
5717         (supportable_narrowing_operation): Ditto for FLOAT_EXPR tree code.
5718
5719 2007-06-06  Nathan Froyd  <froydnj@codesourcery.com>
5720
5721         * config/rs6000/rs6000.h (FIXED_SCRATCH): Use r0 as a scratch
5722         register on SPE targets.  Change documentation to reflect
5723         reality.
5724         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
5725         Change FIXED_SCRATCH to 14 and document why we're keeping r14
5726         out of the register allocation pool.
5727         (rs6000_reg_live_or_pic_offset_p): New function.
5728         (rs6000_emit_prologue): Move the actual saving of LR up to free
5729         r0 for holding r11.  Split saving of SPE 64-bit registers into
5730         its own case.  Ensure that offsets will always be in-range for
5731         'evstdd' by using r11 as a scratch register to point at the start
5732         of the SPE save area.  Save r11 if necessary, as it is the static
5733         chain register.
5734         (rs6000_emit_epilogue): Split restoring of SPE 64-bit registers
5735         into its own case.  Ensure that offsets will always be in-range
5736         for 'evldd' by using r11 as a scratch register to point at the
5737         start of the SPE save area.  Also adjust r11 when restoring
5738         the stack pointer to compensate for pre-loading r11.
5739
5740 2007-06-05  Thomas Neumann  <tneumann@users.sourceforge.net>
5741
5742         * cfg.c (init_flow): Use type safe memory macros.
5743         (alloc_block): Likewise.
5744         (unchecked_make_edge): Likewise.
5745         (dump_flow_info): Avoid using C++ keywords as variable names.
5746         (copy_original_table_clear): Cast according to the coding conventions.
5747         (copy_original_table_set): Likewise.
5748         * cfgexpand (label_rtx_for_bb): Likewise.
5749         (expand_gimple_basic_block): Likewise.
5750         * cfghooks.c (dump_bb): Likewise.
5751         (lv_adjust_loop_header_phi): Avoid using C++ keywords as
5752         variable names.
5753         (lv_add_condition_to_bb): Likewise.
5754         * cfglayout (relink_block_chain): Cast according to the coding
5755         conventions.
5756         (fixup_reorder_chain): Likewise.
5757         (fixup_fallthru_exit_predecessor): Likewise.
5758         * cfgloop.c (glb_enum_p): Likewise.
5759         (get_exit_description): Likewise.
5760         (dump_recorded_exit): Likewise.
5761         * cfgloop.h (enum loop_estimation): Move out of struct scope...
5762         (struct loop): ... from here.
5763         * cfgloopmanip.c (rpe_enum_p): Cast according to the coding
5764         conventions.
5765         * cfgrtl.c (rtl_create_basic_block): Likewise.
5766         (rtl_split_block): Likewise.
5767         (rtl_dump_bb): Likewise.
5768         (cfg_layout_split_block): Likewise.
5769         (init_rtl_bb_info): Use typesafe memory macros.
5770
5771         * graphds.h (struct graph_edge): Renamed edge to graph_edge.
5772         * graphds.h: Updated all usages of edge to graph_edge.
5773         * graphds.c: Likewise.
5774         * cfgloopanal.c: Likewise.
5775
5776 2007-06-05  Ian Lance Taylor  <iant@google.com>
5777
5778         * tree-vrp.c (compare_values_warnv): Check TREE_NO_WARNING on a
5779         PLUS_EXPR or MINUS_EXPR node before setting *strict_overflow_p.
5780         (extract_range_from_assert): Set TREE_NO_WARNING when creating an
5781         expression.
5782         (test_for_singularity): Likewise.
5783
5784 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
5785
5786         * config/i386/constraints.md ("Y2"): Replaced by ...
5787         ("Yt"): This.
5788         * config/i386/i386.md: Likewise.
5789         * config/i386/mmx.md: Likewise.
5790         * config/i386/sse.md: Likewise.
5791
5792 2007-06-05  H.J. Lu  <hongjiu.lu@intel.com>
5793
5794         * config/i386/constraints.md ("z"): Replaced by ...
5795         ("Y0"): This.
5796         * config/i386/sse.md (sse4_1_blendvpd): Likewise.
5797         (sse4_1_blendvps): Likewise.
5798         (sse4_1_pblendvb): Likewise.
5799         (sse4_2_pcmpestr): Likewise.
5800         (sse4_2_pcmpestrm): Likewise.
5801         (sse4_2_pcmpestr_cconly): Likewise.
5802         (sse4_2_pcmpistr): Likewise.
5803         (sse4_2_pcmpistrm): Likewise.
5804         (sse4_2_pcmpistr_cconly): Likewise.
5805
5806 2007-06-05  Razya Ladelsky  <razya@il.ibm.com>
5807
5808         * matrix-reorg.c (transform_access_sites): Fix computation.
5809         (transform_allocation_sites): Same.
5810
5811 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
5812
5813         * config/i386/i386.c (override_options): Use
5814         TARGET_SUBTARGET32_ISA_DEFAULT to select default ix86_isa_flags.
5815
5816 2007-06-05  Uros Bizjak  <ubizjak@gmail.com>
5817
5818         * config/i386/predicates.md (reg_not_xmm0_operand): New predicate.
5819         (nonimm_not_xmm0_operand): Ditto.
5820         * config/i386/sse.md ("sse4_1_blendvpd"): Use "reg_not_xmm0_operand"
5821         as operand[0] and operand[1] predicate.  Use "nonimm_not_xmm0_operand"
5822         as operand[2] predicate.  Require "z" class XMM register for
5823         operand[3].  Adjust asm template.
5824         ("sse4_1_blendvpd"): Ditto.
5825         ("sse4_1_pblendvb"): Ditto.
5826         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Do not
5827         force op2 into xmm0 register for variable blend instructions.
5828
5829 2007-06-04  Tom Tromey  <tromey@redhat.com>
5830
5831         * c-tree.h (start_enum): Update.
5832         (build_enumerator): Likewise.
5833         * c-decl.c (enum_next_value): Removed.
5834         (enum_overflow): Likewise.
5835         (start_enum): Add c_enum_contents argument.  Don't use globals.
5836         (build_enumerator): Likewise.
5837         * c-tree.h (struct c_enum_contents): New struct.
5838
5839 2007-06-04  Tom Tromey  <tromey@redhat.com>
5840
5841         * c-common.c (c_common_get_alias_set): Fix indentation.
5842
5843 2007-06-04  Ian Lance Taylor  <iant@google.com>
5844
5845         * tree-vrp.c (adjust_range_with_scev): When loop is not expected
5846         to overflow, reduce overflow infinity to regular infinity.
5847         (vrp_var_may_overflow): New static function.
5848         (vrp_visit_phi_node): Check vrp_var_may_overflow.
5849
5850 2007-06-04  Kazu Hirata  <kazu@codesourcery.com>
5851
5852         * stor-layout.c (layout_type): Remove duplicate code.
5853
5854 2007-06-04  Uros Bizjak  <ubizjak@gmail.com>
5855
5856         PR c/32191
5857         * gcc/c-common.c (c_define_builtins): Call targetm.init_builtins ()
5858         before build_common_builtin_nodes ().
5859
5860 2007-06-04  Steve Ellcey  <sje@cup.hp.com>
5861
5862         PR target/31733
5863         * cfgrtl.c (rtl_verify_flow_info): Skip notes when looking for barrier.
5864
5865 2007-06-04  Jan Hubicka  <jh@suse.cz>
5866
5867         * tree-predcom.c (replace_ref_with, initialize_root_vars_lm,
5868         reassociate_to_the_same_stmt): Call build_gimple_modify_stmt
5869         instead of _stat version.
5870
5871 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
5872
5873         PR tree-optimization/32194
5874         * tree-predcom.c (determine_offset): Check that both references have
5875         the same type.
5876
5877 2007-06-03  Zdenek Dvorak  <dvorakz@suse.cz>
5878
5879         * cfgloopmanip.c (remove_path, loopify, duplicate_loop_to_header_edge):
5880         Change dom_bbs to vector.  Add argument to iterate_fix_dominators call.
5881         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
5882         * tree-cfg.c (tree_duplicate_sese_region): Change doms to vector.
5883         Add argument to iterate_fix_dominators call.
5884         (remove_edge_and_dominated_blocks): Pass vector to bbs_to_fix_dom.
5885         * gcse.c (hoist_code): Change domby to vector.
5886         * cfghooks.c (make_forwarder_block): Change doms_to_fix to vector.
5887         Add argument to iterate_fix_dominators call.
5888         * loop-doloop.c (doloop_modify): Changed recount_dominator to
5889         recompute_dominator.
5890         * lambda-code.c (perfect_nestify): Ditto.
5891         * cfgloopanal.c: Include graphds.h.
5892         (struct edge, struct vertex, struct graph, dump_graph, new_graph,
5893         add_edge, dfs, for_each_edge, free_graph): Moved to graphds.c.
5894         (mark_irreducible_loops): Use graphds_scc.  Remove argument from
5895         add_edge call.
5896         * graphds.c: New file.
5897         * graphds.h: New file.
5898         * dominance.c: Include vecprim.h, pointer-set.h and graphds.h.
5899         (get_dominated_by, get_dominated_by_region): Change return type to
5900         vector.
5901         (verify_dominators): Recompute all dominators and compare the results.
5902         (recount_dominator): Renamed to ...
5903         (recompute_dominator): ... this.  Do not check that the block is
5904         dominated by entry.
5905         (iterate_fix_dominators): Reimplemented.
5906         (prune_bbs_to_update_dominators, root_of_dom_tree,
5907         determine_dominators_for_sons): New functions.
5908         * et-forest.c (et_root): New function.
5909         * et-forest.h (et_root): Declare.
5910         * Makefile.in (graphds.o): Add.
5911         (cfgloopanal.o): Add graphds.h dependency.
5912         (dominance.o): Add graphds.h, vecprim.h and pointer-set.h dependency.
5913         * basic-block.h (get_dominated_by, get_dominated_by_region,
5914         iterate_fix_dominators): Declaration changed.
5915         (recount_dominator): Renamed to ...
5916         (recompute_dominator): ... this.
5917         * tree-ssa-threadupdate.c (thread_block): Free dominance info.
5918         (thread_through_all_blocks): Do not free dominance info.
5919
5920 2007-06-03  Andreas Schwab  <schwab@suse.de>
5921
5922         * config/m68k/m68k.c (override_options): Don't override
5923         REAL_MODE_FORMAT.
5924         * config/m68k/m68k-modes.def (SF, DF): Define to use
5925         motorola_single_format and motorola_double_format, resp.
5926         * real.c (motorola_single_format): Renamed from
5927         coldfire_single_format.
5928         (motorola_double_format): Renamed from coldfire_double_format.
5929         (encode_ieee_extended): Generate a proper canonical NaN image
5930         respecting canonical_nan_lsbs_set.
5931         (ieee_extended_motorola_format): Set canonical_nan_lsbs_set to
5932         true.
5933         * real.h: Adjust declarations.
5934
5935 2007-06-03  Kaz Kojima  <kkojima@gcc.gnu.org>
5936
5937         PR target/32163
5938         * config/sh/sh.md (symGOT_load): Don't schedule insns when
5939         the symbol is generated with the stack protector.
5940
5941 2007-06-03  Kazu Hirata  <kazu@codesourcery.com>
5942
5943         * config/m68k/m68k.c (m68k_attribute_table): Add "interrupt".
5944         (m68k_get_function_kind): Return m68k_fk_interrupt_handler on
5945         "interrupt".
5946         * doc/extend.texi (interrupt): Mention m68k.
5947
5948 2007-06-02  Uros Bizjak  <ubizjak@gmail.com>
5949
5950         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Call
5951         safe_vector_operand() if input operand is VECTOR_MODE_P operand.
5952         (ix86_expand_sse_pcmpestr): Do not check operands for
5953         "register_operand", when insn operand predicate is "register_operand".
5954         (ix86_expand_sse_pcmpistr): Ditto.
5955
5956 2007-06-02  H.J. Lu  <hongjiu.lu@intel.com>
5957             Uros Bizjak  <ubizjak@gmail.com>
5958
5959         * config/i386/i386.h (enum reg_class) [SSE_FIRST_REG]: New.
5960         (SSE_CLASS_P): Use reg_class_subset_p between SSE_REGS.
5961         (REG_CLASS_NAMES): Add "FIRST_SSE_REG" string.
5962         (REG_CLASS_CONTENTS): Add members of FIRST_SSE_REG class.
5963         * config/i386/constraints.md ("z"): New register constraint
5964         for members of SSE_FIRST_REG class.
5965         * config/i386/i386-modes.def (CCA, CCC, CCO, CCS): New compare modes.
5966         * config/i386/i386.c (regclass_map): Change class of %xmm0 to
5967         SSE_FIRST_REG class.
5968         (put_condition_code) [EQ, NE]: Output suffixes for new compare modes.
5969         (ix86_cc_modes_compatible): Handle CCA, CCC, CCO and CCS modes.
5970         (IX86_BUILTIN_PCMPESTRI128): New for SSE4.2.
5971         (IX86_BUILTIN_PCMPESTRM128): Likewise.
5972         (IX86_BUILTIN_PCMPESTRA128): Likewise.
5973         (IX86_BUILTIN_PCMPESTRC128): Likewise.
5974         (IX86_BUILTIN_PCMPESTRO128): Likewise.
5975         (IX86_BUILTIN_PCMPESTRS128): Likewise.
5976         (IX86_BUILTIN_PCMPESTRZ128): Likewise.
5977         (IX86_BUILTIN_PCMPISTRI128): Likewise.
5978         (IX86_BUILTIN_PCMPISTRM128): Likewise.
5979         (IX86_BUILTIN_PCMPISTRA128): Likewise.
5980         (IX86_BUILTIN_PCMPISTRC128): Likewise.
5981         (IX86_BUILTIN_PCMPISTRO128): Likewise.
5982         (IX86_BUILTIN_PCMPISTRS128): Likewise.
5983         (IX86_BUILTIN_PCMPISTRZ128): Likewise.
5984         (struct builtin_description): Change "flag" field to unsigned.
5985         (bdesc_pcmpestr): New builtin description table.
5986         (bdesc_pcmpistr): Likewise.
5987         (ix86_init_mmx_sse_builtins): Define int_ftype_v16qi_int_v16qi_int_int,
5988         v16qi_ftype_v16qi_int_v16qi_int_int and int_ftype_v16qi_v16qi_int.
5989         Initialize pcmp[ei]str[im] insns for SSE4.2.
5990         (ix86_expand_sse_pcmpestr): New subroutine of ix86_expand_builtin.
5991         (ix86_expand_sse_pcmpistr): Likewise.
5992         (ix86_expand_builtin): Expand pcmp[ei]str[im] builtins for SSE4.2.
5993         * config/i386/i386.md (UNSPEC_PCMPESTR): New for SSE4.2.
5994         (UNSPEC_PCMPISTR): Likewise.
5995         * config/i386/sse.md (sse4_2_pcmpestr): New insn patern and splitter.
5996         (sse4_2_pcmpestri):New isns pattern.
5997         (sse4_2_pcmpestrm): Likewise.
5998         (sse4_2_pcmpestr_cconly): Likewise.
5999         (sse4_2_pcmpistr): New insn patern and splitter.
6000         (sse4_2_pcmpistri):New isns pattern.
6001         (sse4_2_pcmpistrm): Likewise.
6002         (sse4_2_pcmpistr_cconly): Likewise.
6003         * config/i386/smmintrin.h: Enable pcmp[ei]str[im] intrinsics
6004         in SSE4.2.
6005
6006 2007-06-01  David Daney  <ddaney@avtrex.com>
6007
6008         * config/mips/mips.c (mips_output_mi_thunk): Only load gp if not
6009         LOADGP_ABSOLUTE and not binds_local_p.
6010
6011 2007-06-01  Geoffrey Keating  <geoffk@apple.com>
6012
6013         * config/darwin.h (LINK_SPEC): Pass -fpie through to the linker.
6014
6015 2007-06-01  Ian Lance Taylor  <iant@google.com>
6016
6017         * tree-vrp.c (compare_name_with_value): Always set
6018         used_strict_overflow if we get a result from the variable itself.
6019
6020 2007-06-01  Ian Lance Taylor  <iant@google.com>
6021
6022         PR rtl-optimization/31455
6023         * lower-subreg.c (find_decomposable_subregs): Don't decompose
6024         subregs which have a cast between modes which are not tieable.
6025
6026 2007-06-01  Uros Bizjak  <ubizjak@gmail.com>
6027
6028         * expr.c (force_operand) [DIV, MOD, UDIV, UMOD, ASHIFTRT]: Remove
6029         breaks after return statements.
6030
6031 2007-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
6032
6033         * config/sh/sh.c (fpscr_set_from_mem): Call get_free_reg
6034         only after no_new_pseudos.
6035
6036 2007-05-31  Eric Christopher  <echristo@apple.com>
6037
6038         * expr.c (convert_move): Assert that we don't have a BLKmode
6039         operand.
6040         (store_expr): Handle BLKmode moves by calling emit_block_move.
6041
6042 2007-05-31  Daniel Berlin  <dberlin@dberlin.org>
6043
6044         * c-typeck.c (build_indirect_ref): Include type in error message.
6045         (build_binary_op): Pass types to binary_op_error.
6046         * c-common.c (binary_op_error): Take two type arguments, print out
6047         types with error.
6048         * c-common.h (binary_op_error): Update prototype.
6049
6050 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
6051
6052         * config/i386/i386.c: Correct coments on -mno-sse4.
6053
6054 2007-05-31  H.J. Lu  <hongjiu.lu@intel.com>
6055
6056         * config.gcc (i[34567]86-*-*): Add nmmintrin.h to extra_headers.
6057         (x86_64-*-*): Likewise.
6058         * config/i386/i386.c (OPTION_MASK_ISA_MMX_UNSET): New.
6059         (OPTION_MASK_ISA_3DNOW_UNSET): Likewise.
6060         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
6061         (OPTION_MASK_ISA_SSE2_UNSET): Likewise.
6062         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
6063         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
6064         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
6065         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
6066         (OPTION_MASK_ISA_SSE4): Likewise.
6067         (OPTION_MASK_ISA_SSE4_UNSET): Likewise.
6068         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
6069         (ix86_handle_option): Use OPTION_MASK_ISA_*_UNSET.  Handle SSE4.2.
6070         (override_options): Support SSE4.2.
6071         (ix86_build_const_vector): Support SImode and DImode.
6072         (ix86_build_signbit_mask): Likewise.
6073         (ix86_expand_int_vcond): Support V2DImode.
6074         (IX86_BUILTIN_CRC32QI): New for SSE4.2.
6075         (IX86_BUILTIN_CRC32HI): Likewise.
6076         (IX86_BUILTIN_CRC32SI): Likewise.
6077         (IX86_BUILTIN_CRC32DI): Likewise.
6078         (IX86_BUILTIN_PCMPGTQ): Likewise.
6079         (bdesc_crc32): Likewise.
6080         (bdesc_sse_3arg): Likewise.
6081         (ix86_expand_crc32): Likewise.
6082         (ix86_init_mmx_sse_builtins): Support SSE4.2.
6083         (ix86_expand_builtin): Likewise.
6084         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
6085         __SSE4_2__ for -msse4.2.
6086         * config/i386/i386.md (UNSPEC_CRC32): New for SSE4.2.
6087         (CRC32MODE): Likewise.
6088         (crc32modesuffix): Likewise.
6089         (crc32modeconstraint): Likewise.
6090         (sse4_2_crc32<mode>): Likewise.
6091         (sse4_2_crc32di): Likewise.
6092         * config/i386/i386.opt (msse4.2): New for SSE4.2.
6093         (msse4): Likewise.
6094         * config/i386/nmmintrin.h: New. The dummy SSE4.2 intrinsic header file.
6095         * config/i386/smmintrin.h: Add SSE4.2 intrinsics.
6096         * config/i386/sse.md (sse4_2_gtv2di3): New pattern for SSE4.2.
6097         (vcond<mode>): Use SSEMODEI instead of SSEMODE124.
6098         (vcondu<mode>): Likewise.
6099         * doc/extend.texi: Document SSE4.2 built-in functions.
6100         * doc/invoke.texi: Document -msse4.2/-msse4.
6101
6102 2007-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
6103
6104         PR tree-optimization/32160
6105         * tree-predcom.c (predcom_tmp_var): New function.  Mark created
6106         variable as gimple reg.
6107         (initialize_root_vars, initialize_root_vars_lm): Use predcom_tmp_var.
6108
6109 2007-05-31  Kazu Hirata  <kazu@codesourcery.com>
6110
6111         * gcc.c (main): Don't consider linker options when issuing the
6112         warning about a linker input file not being used.
6113
6114 2007-05-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6115
6116         * tree-vrp.c (compare_names): Initialize sop.
6117
6118 2007-05-30  Dirk Mueller  <dmueller@suse.de>
6119
6120         * cgraphunit.c (cgraph_analyze_function): Remove
6121         computation of inline parameters.
6122
6123 2007-05-30  Uros Bizjak  <ubizjak@gmail.com>
6124
6125         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Undef before define.
6126
6127 2007-05-30  Richard Sandiford  <richard@codesourcery.com>
6128
6129         * config.gcc (arm-wrs-vxworks): Remove dbxelf.h from tm_file.
6130         Add vx-common.h.  Include vxworks.h between vx-common.h and
6131         arm/vxworks.h.
6132         * config/vx-common.h (DWARF2_UNWIND_INFO): Undefine before
6133         redefining.
6134         * config/vxworks.h (TARGET_ASM_CONSTRUCTOR): Likewise.
6135         (TARGET_ASM_DESTRUCTOR): Likewise.
6136         * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Check arm_arch_xscale
6137         instead of arm_is_xscale.  Use VXWORKS_OS_CPP_BUILTINS.
6138         (OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
6139         (CC1_SPEC): Add -tstrongarm.  Line up backslashes.
6140         (VXWORKS_ENDIAN_SPEC): Define.
6141         (ASM_SPEC): Add VXWORKS_ENDIAN_SPEC.
6142         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine to their
6143         VXWORKS_* equivalents.
6144         (LINK_SPEC): Likewise, but add VXWORKS_ENDIAN_SPEC.
6145         (ASM_FILE_START): Delete.
6146         (TARGET_VERSION): Reformat.
6147         (FPUTYPE_DEFAULT, FUNCTION_PROFILER): Define.
6148         (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define.
6149         * config/arm/t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Define.
6150         (FPBIT, DPBIT): Define.
6151         (fp-bit.c, dp-bit.c): New rules.
6152         (MULTILIB_OPTIONS): Add strongarm, -mrtp and -mrtp/-fPIC multilibs.
6153         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Define.
6154         * config/arm/arm-protos.h (arm_emit_call_insn): Declare.
6155         * config/arm/arm.h: Include vxworks-dummy.h.
6156         * config/arm/arm.c (arm_elf_asm_constructor, arm_elf_asm_destructor):
6157         Mark with ATTRIBUTE_UNUSED.
6158         (arm_override_options): Do not allow VxWorks RTP PIC to be used
6159         for Thumb.  Force r9 to be the PIC register for VxWorks RTPs and
6160         make it incompatible with -msingle-pic-base.
6161         (arm_function_ok_for_sibcall): Return false for calls that might
6162         go through a VxWorks PIC PLT entry.
6163         (require_pic_register): New function, split out from...
6164         (legitimize_pic_address): ...here.  Do not use GOTOFF accesses
6165         for VxWorks RTPs.
6166         (arm_load_pic_register): Handle the VxWorks RTP initialization
6167         sequence.  Use pic_reg as a shorthand for cfun->machine->pic_reg.
6168         (arm_emit_call_insn): New function.
6169         (arm_assemble_integer): Do not use GOTOFF accesses for VxWorks RTP.
6170         * config/arm/arm.md (UNSPEC_PIC_OFFSET): New unspec number.
6171         (pic_offset_arm): New pattern.
6172         (call, call_value): Use arm_emit_call_insn.
6173         (call_internal, call_value_internal): New expanders.
6174         * config/arm/lib1funcs.asm (__PLT__): Define to empty for
6175         VxWorks unless __PIC__.
6176
6177 2007-05-30  Eric Christopher  <echristo@gmail.com>
6178
6179         * genrecog.c: Include regs.h in generated file.
6180         * genemit.c: Ditto. Fix up formatting.
6181         * config/mn10300/constraints.md: New.
6182         * config/mn10300/mn10300.md: Include.
6183         * config/mn10300/mn10300.c(mn10300_secondary_reload_class):
6184         Fix up for removed macro.
6185         * config/mn10300/predicates.md (call_address_operand):  Ditto.
6186         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Delete.
6187         (CONST_OK_FOR_I): Ditto.
6188         (CONST_OK_FOR_J): Ditto.
6189         (CONST_OK_FOR_K): Ditto.
6190         (CONST_OK_FOR_L): Ditto.
6191         (CONST_OK_FOR_M): Ditto.
6192         (CONST_OK_FOR_N): Ditto.
6193         (CONST_DOUBLE_OK_FOR_LETTER_P): Ditto.
6194         (OK_FOR_Q): Ditto.
6195         (OK_FOR_R): Ditto.
6196         (OK_FOR_T): Ditto.
6197         (EXTRA_CONSTRAINT): Ditto.
6198
6199 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
6200
6201         * config/i386/i386.h (MASK_64BIT, MASK_MMX, MASK_3DNOW*, MASK_SSE*):
6202         Remove defines.
6203         * config/i386/biarch.h (TARGET_64BIT_DEFAULT): Define to
6204         OPTION_MASK_ISA_64BIT.
6205         * config/i386/i386.c: Rename MASK_* macros to OPTION_MASK_ISA_*.
6206
6207 2007-05-30  Richard Guenther  <rguenther@suse.de>
6208
6209         PR middle-end/32152
6210         * gimplify.c (gimplify_omp_atomic_pipeline): Use correct
6211         types for comparison.
6212         * fold-const.c (fold_comparison): Call maybe_canonicalize_comparison
6213         with original typed arguments.
6214         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatches.
6215
6216 2007-05-30  Jakub Jelinek  <jakub@redhat.com>
6217
6218         PR tree-optimization/31769
6219         * except.c (duplicate_eh_regions): Clear prev_try if
6220         ERT_MUST_NOT_THROW region is inside of ERT_TRY region.
6221
6222 2007-05-30  Zdenek Dvorak  <dvorakz@suse.cz>
6223
6224         * tree-scalar-evolution.c (scev_const_prop): Do not create labels.
6225         * tree-ssa-sink.c (statement_sink_location): Return basic block and
6226         bsi of the location where statements should be inserted.
6227         (sink_code_in_bb): Take bsi from statement_sink_location.
6228         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use bsi_after_labels
6229         instead of bsi_start.
6230         * tree-profile.c (tree_gen_ic_func_profiler): Pass BSI_NEW_STMT to
6231         bsi_insert_after.
6232         * tree-cfg.c (bsi_move_after): Pass BSI_NEW_STMT to bsi_insert_after.
6233         (bsi_move_before): Document inconsistency with bsi_move_after.
6234         (tree_redirect_edge_and_branch): Do not create labels if not necessary.
6235
6236 2007-05-30 Uros Bizjak <ubizjak@gmail.com>
6237
6238         * config/i386/i386.h (TARGET_ABM): New define.
6239         (TARGET_POPCNT): Ditto.
6240         (TARGET_64BIT, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A, TARGET_SSE*):
6241         New temporary defines to redefine from OPTION_ISA_* defines.
6242         (MASK_64BIT, MASK_MMX, MASK_3DNOW, MASK_3DNOW_A, MASK_SSE*):
6243         New temporary defines to redefine from OPTION_MASK_ISA_* defines.
6244         (ix86_isa_flags): New extern int declaration.
6245         (TARGET_SUBTARGET_DEFAULT): New define.
6246         (TARGET_SUBTARGET_ISA_DEFAULT): Ditto.
6247         (TARGET_SUBTARGET32_DEFAULT): Ditto.
6248         (TARGET_SUBTARGET32_ISA_DEFAULT): Ditto.
6249         (TARGET_SUBTARGET64_ISA_DEFAULT): Ditto.
6250         * config/i386/unix.h: Undef TARGET_SUBTARGET_DEFAULT before define.
6251         * config/i386/darwin.h: Change TARGET_64BIT define to
6252         OPTION_ISA_64BIT.
6253
6254         * config/i386/i386.opt (m3dnowa): Define as undocumented option
6255         using existing "ix86_isa_flags" varible.
6256         (m32, m64): Use existing "ix86_isa_flags" variable.
6257         (mmmx, m3dnow): Ditto.
6258         (msse, msse2, msse3, mssse3, msse4.1, msse4a): Ditto.
6259         (mabm): Define as non-negative option using "x86_abm" variable.
6260         (mpopcnt): Define as non-negative option using "x86_popcnt" variable.
6261
6262         * config/i386/i386.c (ix86_arch_features) [X86_ARCH_CMOVE]:
6263         Rewrite feature test bitmap.
6264         (ix86_isa_flags): New initialized global int varible.
6265         (ix86_isa_flags_explicit): New static int variable.
6266         (ix86_handle_option): Set "ix86_isa_flags_explicit" when mmmx, m3dnow,
6267         msse, msse2, msse3, msse4.1 and msse4a option is processed.  Change
6268         i86_isa_flags and ix86_isa_flags_explicit, not target_flags and
6269         target_flags_explicit.
6270         (override_options): Remove "target_enable" and "target_disable" fields
6271         from "struct ptt". Update processor_target_table accordingly. Remove
6272         PTA_PREFETCH_SSE from processor_alias_table entry if PTE_SSE is
6273         defined and rearrange PTA_* bits.  Use "ix86_isa_flags" instead of
6274         "target_flags" and "ix86_isa_flags_explicit" instead of
6275         "target_flags_explicit" when masked with MASK_64BIT, MASK_MMX,
6276         MASK_3DNOW, MASK_3DNOW_A or MASK_SSE*.  Set "x86_abm" to true when
6277         PTA_ABM is set in processor_alias_table flags entry.  Set "x86_popcnt"
6278         to true when either of PTA_POPCNT or PTA_ABM is set in
6279         processor_alias_table flags entry.  Set "x86_prefetch_sse" to true
6280         when either of PTA_PREFETCH_SSE or PTA_SSE is set in
6281         processor_alias_table flags entry.  Remove handling of
6282         "target_enable" and "target_disable" fields of processor_target_table.
6283         Mask "target_flags" with TARGET_SUBTARGET32_DEFAULT for 32-bit
6284         targets or with TARGET_SUBTARGET64_DEFAULT for 64-bit targets.
6285         Mask "ix86_isa_flags" with TARGET_SUBTARGET32_ISA_DEFAULT for 32-bit
6286         targets or with TARGET_SUBTARGET64_ISA_DEFAULT for 64-bit targets.
6287         (def_builtin): Mask "mask" variable with "ix86_isa_flags", not
6288         "target_flags".
6289         (TARGET_DEFAULT_TARGET_FLAGS): Do not include TARGET_64BIT_DEFAULT.
6290
6291 2007-05-29  David Daney  <ddaney@avtrex.com>
6292
6293         PR gcc/31975
6294         * config/mips/mips.c (mips_output_mi_thunk): Emit
6295         NOTE_INSN_PROLOGUE_END at beginning of the thunk.
6296
6297 2007-05-29  Hui-May Chang  <hm.chang@apple.com>
6298         * config/i386/i386.c (ix86_function_regparm): Added checking of
6299         ix86_force_align_arg_pointer to determine the number of
6300         register parameters.
6301
6302 2007-05-29  Zdenek Dvorak  <dvorakz@suse.cz>
6303
6304         * tree-vectorizer.h (DR_MISALIGNMENT): Cast aux to integer.
6305         (SET_DR_MISALIGNMENT): New.
6306         * tree-vect-analyze.c (vect_compute_data_ref_alignment,
6307         vect_update_misalignment_for_peel, vect_enhance_data_refs_alignment):
6308         Use SET_DR_MISALIGNMENT.
6309         * tree-predcom.c (split_data_refs_to_components): Cast dr->aux from
6310         pointer.
6311         * tree-data-ref.c (create_data_ref, compute_all_dependences,
6312         find_loop_nest): Export.
6313         * tree-data-ref.h (struct data_reference): Change aux field to pointer.
6314         (create_data_ref, compute_all_dependences, find_loop_nest): Declare.
6315         * tree-ssa-loop-prefetch.c: Include tree-data-ref.h.
6316         (L1_CACHE_SIZE_BYTES, L2_CACHE_SIZE_BYTES, NONTEMPORAL_FRACTION):
6317         New macros.
6318         (struct mem_ref): Add field reuse_distance.
6319         (find_or_create_group, record_ref): Use XNEW instead of xcalloc.
6320         Initialize reuse_distance field.
6321         (issue_prefetch_ref): Select temporality of prefetch according to
6322         reuse_distance.
6323         (volume_of_references, volume_of_dist_vector, add_subscript_strides,
6324         self_reuse_distance, determine_loop_nest_reuse): New functions.
6325         (loop_prefetch_arrays): Call determine_loop_nest_reuse.
6326         (tree_ssa_prefetch_arrays): Dump L2 cache size.
6327         * Makefile.in (tree-ssa-loop-prefetch.o): Add TREE_DATA_REF_H
6328         dependency.
6329
6330 2007-05-29  Daniel Berlin  <dberlin@dberlin.org>
6331
6332         * tree-ssa-alias.c: Add aliasing overview.
6333
6334 2007-05-29  Zuxy Meng  <zuxy.meng@gmail.com>
6335             Danny Smith  <dannysmith@users.sourceforge.net>
6336
6337         PR target/29498
6338         * config/i386/t-crtfm: Compile crtfastmath.o with
6339         -minline-all-stringops.
6340         * config/i386/cygwin.h (ENDFILE_SPECS): Add crtfastmath.o.
6341         * config/i386/mingw32.h (ENDFILE_SPECS): Add crtfastmath.o.
6342
6343 2007-05-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6344
6345         * doc/md.texi: Document constraints on HP PA-RISC.
6346
6347         * pa/constraints.md: New file.
6348         * pa.md: Include constraints.md.
6349         * pa.c (cint_ok_for_move): Avoid using CONST_OK_FOR_LETTER_P.
6350         (integer_store_memory_operand, ldil_cint_p): New functions.
6351         * pa-protos.h (integer_store_memory_operand, ldil_cint_p): Declare.
6352         * pa.h (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
6353         IS_RELOADING_PSEUDO_P, EXTRA_CONSTRAINT): Remove.
6354         * pa32-regs.h (REG_CLASS_FROM_LETTER): Remove.
6355         * pa64-regs.h (REG_CLASS_FROM_LETTER): Remove.
6356
6357 2007-05-28  Andrew Pinski  <Andrew_pinski@playstation.sony.com>
6358
6359         PR c/31339
6360         * c-typeck.c (build_unary_op <case PREINCREMENT_EXPR,
6361         case POSTINCREMENT_EXPR, case PREDECREMENT_EXPR,
6362         case POSTDECREMENT_EXPR>): Return the error_mark_node
6363         if either the real or imaginary parts would an
6364         error_mark_node.
6365
6366 2007-05-28  Daniel Berlin  <dberlin@dberlin.org>
6367
6368         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Release LHS SSA
6369         name when we remove it from a call.
6370
6371 2007-05-28  Kazu Hirata  <kazu@codesourcery.com>
6372
6373         * targhooks.c (default_narrow_bitfield): Remove.
6374         * targhooks.h: Remove the prototype for
6375         default_narrow_bitfield.
6376
6377         * langhooks-def.h: Remove the prototype for
6378         hook_get_alias_set_0.
6379         * langhooks.c (hook_get_alias_set_0): Remove.
6380
6381         * global.c (EXECUTE_IF_CONFLICT): Remove.
6382
6383 2007-05-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6384
6385         PR tree-opt/32100
6386         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't
6387         return true when truth_value_p is true and the type
6388         is of signed:1.
6389
6390 2007-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
6391
6392         * doc/install.texi (Prerequisites): We no longer require Autoconf
6393         2.13 for the top-level.
6394
6395 2007-05-28  Uros Bizjak  <ubizjak@gmail.com>
6396
6397         * target/i386/i386.c (ix86_expand_vector_move): Expand unaligned
6398         memory access via x86_expand_vector_move_misalign() only for
6399         TImode values on 32-bit targets.
6400
6401 2007-05-28  Razya Ladelsky  <razya@il.ibm.com>
6402
6403         * matrix-reorg.c: New file. Implement matrix flattening and
6404         transposing optimization.
6405         * tree-pass.h: Add matrix reorg pass.
6406         * common.opt: Add fipa-mreorg flag.
6407         * Makefile.in: Add matrix-reorg.c.
6408         * passes.c: Add matrix reorg pass.
6409         * varpool.c (add_new_static_var): New function.
6410         * cgraph.h (add_new_static_var): Declare.
6411
6412 2007-05-27  Eric Christopher  <echristo@apple.com>
6413
6414         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update
6415         sp_offset depending on stack size. Save r12 depending
6416         on registers we're saving later.
6417         (rs6000_emit_epilogue): Update sp_offset depending only
6418         on stack size.
6419
6420 2007-05-27  Zdenek Dvorak  <dvorakz@suse.cz>
6421
6422         * tree-vrp.c (execute_vrp): Do not check whether current_loops == NULL.
6423         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
6424         * ifcvt.c (if_convert): Ditto.
6425         * tree-ssa-threadupdate.c (thread_block): Ditto.
6426         (thread_through_all_blocks): Ditto.  Assert that loops were analysed.
6427         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa,
6428         verify_loop_closed_ssa): Check number_of_loops instead of
6429         current_loops.
6430         * predict.c (tree_estimate_probability): Ditto.
6431         * tree-if-conv.c (main_tree_if_conversion): Ditto.
6432         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
6433         * modulo-sched.c (sms_schedule): Ditto.
6434         * tree-scalar-evolution.c (scev_const_prop): Ditto.
6435         (scev_finalize): Do not do anything if scev analysis was not
6436         initialized.
6437         * cfgloopanal.c (mark_irreducible_loops): Do not check whether
6438         current_loops == NULL.
6439         (mark_loop_exit_edges): Check number_of_loops instead of current_loops.
6440         * loop-init.c (loop_optimizer_init): Do not free current_loops when
6441         there are no loops.
6442         (loop_optimizer_finalize): Assert that loops were analyzed.
6443         (rtl_move_loop_invariants, rtl_unswitch, rtl_unroll_and_peel_loops,
6444         rtl_doloop): Check number_of_loops instead of current_loops.
6445         * tree-ssa-loop.c (tree_loop_optimizer_init): Do not check whether
6446         current_loops == NULL.
6447         (tree_ssa_loop_init, tree_ssa_loop_im, tree_ssa_loop_unswitch,
6448         gate_tree_vectorize tree_linear_transform, check_data_deps,
6449         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
6450         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts):
6451         Check number_of_loops instead of current_loops.
6452         (tree_ssa_loop_done): Do not check whether current_loops == NULL.
6453         * tree-ssa-pre.c (fini_pre): Do not take do_fre argument.  Always
6454         free loops if available.
6455         (execute_pre): Do not pass do_fre to fini_pre.
6456
6457 2007-05-27  Tobias Burnus  <burnus@net-b.de>
6458
6459         PR middle-end/32083
6460         * real.c (mpfr_from_real): Fix sign of -Inf.
6461
6462 2007-05-27  H.J. Lu  <hongjiu.lu@intel.com>
6463
6464         * tree-vect-transform.c (vectorizable_conversion): Initialize
6465         tree_code variables to ERROR_MARK.
6466         (vectorizable_type_demotion): Likewise.
6467         (vectorizable_type_promotion): Likewise.
6468
6469 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
6470
6471         PR target/32065
6472         * config/i386/i386.md (movti): Handle push operands via
6473         ix86_expand_push().
6474
6475 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
6476
6477         * basic-block.h: Remove the prototype for merge_seq_blocks.
6478         * cfgcleanup.c (merge_seq_blocks): Remove.
6479
6480         * tree-flow.h: Remove the prototype for is_aliased_with.
6481         * tree-ssa-alias.c (is_aliased_with): Remove.
6482
6483 2007-05-26  H.J. Lu  <hongjiu.lu@intel.com>
6484
6485         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): New.
6486
6487         * config/i386/i386.c (ix86_expand_sse4_unpack): New.
6488
6489         * config/i386/sse.md (vec_unpacku_hi_v16qi): Call
6490         ix86_expand_sse4_unpack if SSE4.1 is enabled.
6491         (vec_unpacks_hi_v16qi): Likewise.
6492         (vec_unpacku_lo_v16qi): Likewise.
6493         (vec_unpacks_lo_v16qi): Likewise.
6494         (vec_unpacku_hi_v8hi): Likewise.
6495         (vec_unpacks_hi_v8hi): Likewise.
6496         (vec_unpacku_lo_v8hi): Likewise.
6497         (vec_unpacks_lo_v8hi): Likewise.
6498         (vec_unpacku_hi_v4si): Likewise.
6499         (vec_unpacks_hi_v4si): Likewise.
6500         (vec_unpacku_lo_v4si): Likewise.
6501         (vec_unpacks_lo_v4si): Likewise.
6502
6503 2007-05-26  Kazu Hirata  <kazu@codesourcery.com>
6504
6505         * c-typeck.c, config/arm/arm.c, config/darwin.c,
6506         config/sh/symbian.c, gcc.c, ipa-cp.c, ipa-inline.c, loop-iv.c,
6507         omega.c, tree-ssa-loop-niter.c, treestruct.def: Fix typos and
6508         follow spelling conventions in various
6509         warning/error/diagnostic messages.
6510
6511         * config/i386/i386.c, config/pa/pa.c, config/spu/spu.c,
6512         df-problems.c, df-scan.c, domwalk.c, ebitmap.c, ebitmap.h,
6513         fold-const.c, gcc.c, ipa-type-escape.c, omega.c, omega.h,
6514         tree-ssa-coalesce.c, tree-ssa-live.c, tree-ssa-structalias.c,
6515         tree-vrp.c: Fix comment typos.  Follow spelling conventions.
6516         * doc/tm.texi: Follow spelling conventions.
6517
6518 2007-05-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6519
6520         PR tree-opt/32090
6521         * tree-ssa-forwprop.c
6522         (forward_propagate_addr_into_variable_array_index): Remove
6523         the lhs argument.  Use the type of def_rhs instead of lhs.
6524         (forward_propagate_addr_expr_1): Update use of
6525         forward_propagate_addr_into_variable_array_index.
6526
6527 2007-05-25  Sandra Loosemore  <sandra@codesourcery.com>
6528             Nigel Stephens  <nigel@mips.com>
6529
6530         * config/mips/mips.c (mips_attribute_table): Add "near" and "far"
6531         function attributes, "far" being an alias for "long_call".
6532         (TARGET_COMP_TYPE_ATTRIBUTES): Define as mips_comp_type_attributes.
6533         (mips_near_type_p, mips_far_type_p): New.
6534         (mips_comp_type_attributes): New function to check that attributes
6535         attached to a function type are compatible.
6536         (mips_output_mi_thunk): Test SYMBOL_REF_LONG_CALL_P() rather than
6537         TARGET_LONG_CALLS when deciding whether we can do a direct sibcall
6538         to the target function of the thunk.
6539         (mips_encode_section_info): Check for "near" and "far" function
6540         attributes, and always set the SYMBOL_FLAG_LONG_CALL bit explicitly.
6541
6542         * config/mips/predicates.md (const_call_insn_operand): Test only
6543         SYMBOL_REF_LONG_CALL_P() and not TARGET_LONG_CALLS.
6544
6545         * doc/extend.texi (Function Attributes): Document MIPS "near" and
6546         "far" attributes.
6547
6548         * testsuite/gcc.target/mips/near-far-1.c:  New test case.
6549         * testsuite/gcc.target/mips/near-far-2.c:  New test case.
6550         * testsuite/gcc.target/mips/near-far-3.c:  New test case.
6551         * testsuite/gcc.target/mips/near-far-4.c:  New test case.
6552
6553 2007-05-25  Eric Christopher  <echristo@apple.com>
6554
6555         * config.gcc: Add i386/t-fprules-softfp64 and soft-fp/t-softfp
6556         to x86-darwin configurations.
6557         * config/i386/t-darwin: Add softfp support.
6558         * config/i386/t-darwin64: Ditto.
6559         * config/i386/sfp-machine.h: If mach then don't use
6560         aliasing, emit a stub to call.
6561
6562 2007-05-25  Kazu Hirata  <kazu@codesourcery.com>
6563
6564         * cfglayout.c, cgraphunit.c, config/avr/avr.c, fold-const.c,
6565         haifa-sched.c, optabs.h, tree-affine.c, tree-data-ref.c,
6566         tree-predcom.c, tree-ssa-alias-warnings.c,
6567         tree-ssa-forwprop.c, tree-vect-analyze.c, tree-vrp.c: Fix
6568         comment typos.  Follow spelling conventions.
6569         * doc/cpp.texi, doc/invoke.texi: Fix typos.
6570
6571 2007-05-26  Uros Bizjak  <ubizjak@gmail.com>
6572
6573         PR target/32065
6574         * target/i386/i386.c (ix86_expand_vector_move): Force SUBREGs of
6575         constants into memory.  Expand unaligned memory references for
6576         SSE modes via x86_expand_vector_move_misalign() function.
6577
6578 2007-05-25  Uros Bizjak  <ubizjak@gmail.com>
6579
6580         * config/i386/sse.md (*vec_extractv2di_1_sse2): Do not calculate
6581         "memory" attribute for "sseishft" type insn without operands[2].
6582
6583 2007-05-25  Dirk Mueller  <dmueller@suse.de>
6584             Marcus Meissner <meissner@suse.de>
6585
6586         * doc/extend.texi (alloc_size): New attribute.
6587         * c-common.c (handle_alloc_size_attribute): New.
6588         * tree-object-size.c (alloc_object_size): Use alloc_size
6589         attribute, if available.
6590
6591 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6592
6593         * config/i386/i386.c (__builtin_ia32_vec_ext_v2df): Mark it
6594         with MASK_SSE2.
6595         (__builtin_ia32_vec_ext_v2di): Likewise.
6596         (__builtin_ia32_vec_ext_v4si): Likewise.
6597         (__builtin_ia32_vec_ext_v8hi): Likewise.
6598         (__builtin_ia32_vec_ext_v16qi): Likewise.
6599         (__builtin_ia32_vec_set_v8hi): Likewise.
6600
6601 2007-05-25  H.J. Lu  <hongjiu.lu@intel.com>
6602
6603         * config/i386/sse.md (*vec_extractv2di_1_sse2): Correct shift.
6604
6605 2007-05-25  Richard Sandiford  <richard@codesourcery.com>
6606
6607         * config/arm/arm-protos.h (arm_encode_call_attribute): Delete.
6608         (arm_is_longcall_p): Rename to...
6609         (arm_is_long_call_p): ...this.  Take a single tree argument and
6610         return a bool.
6611         * config/arm/arm.h (CALL_SHORT, CALL_LONG, CALL_NORMAL): Delete.
6612         (CUMULATIVE_ARGS): Remove call_cookie.
6613         (SHORT_CALL_FLAG_CHAR, LONG_CALL_FLAG_CHAR, ENCODED_SHORT_CALL_ATTR_P)
6614         (ENCODED_LONG_CALL_ATTR_P): Delete.
6615         (ARM_NAME_ENCODING_LENGTHS): Remove SHORT_CALL_FLAG_CHAR and
6616         LONG_CALL_FLAG_CHAR cases.
6617         (ARM_DECLARE_FUNCTION_SIZE): Delete.
6618         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Don't use
6619         ARM_DECLARE_FUNCTION_SIZE.
6620         * config/arm/arm.c (arm_init_cumulative_args): Don't set call_cookie.
6621         (arm_function_arg): Return const0_rtx for VOIDmode arguments.
6622         (arm_encode_call_attribute, current_file_function_operand): Delete.
6623         (arm_function_in_section_p): New function.
6624         (arm_is_longcall_p): Rename to...
6625         (arm_is_long_call_p): ...this.  Take the target function as a single
6626         argument and return a bool.  Do not rely on call cookies.  Check
6627         whether the target symbol is in the same section as the current
6628         function, not just the same compilation unit.
6629         (arm_function_ok_for_sibcall): Use arm_is_long_call_p.
6630         (arm_encode_section_info): Don't encode a call type.
6631         * config/arm/arm.md (call, call_value): Update calls to
6632         arm_is_long(_)call_p.  Simplify logic.
6633         (*call_symbol, *call_value_symbol, *call_insn, *call_value_insn):
6634         Update calls to arm_is_long(_)call_p.
6635
6636 2007-05-25  Richard Guenther  <rguenther@suse.de>
6637
6638         PR tree-optimization/31982
6639         * tree-ssa-forwprop.c
6640         (forward_propagate_addr_into_variable_array_index): Handle arrays
6641         with element size one.
6642
6643 2007-05-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6644
6645         * config/spu/spu.md (smulsi3_highpart): Unshare the rtl chain.
6646         (umulsi3_highpart): Likewise.
6647
6648 2007-05-24  Ian Lance Taylor  <iant@google.com>
6649
6650         PR rtl-optimization/32069
6651         * regclass.c (regclass): Don't crash if the entry in regno_reg_rtx
6652         is NULL.
6653
6654 2007-05-24  Ollie Wild  <aaw@google.com>
6655
6656         * doc/cpp.texi (Common Predefined Macros): Add __COUNTER__
6657         description.
6658
6659 2007-05-24  Richard Sandiford  <rsandifo@nildram.co.uk>
6660
6661         * postreload-gcse.c (reg_changed_after_insn_p): New function.
6662         (oprs_unchanged_p): Use it to check all registers in a REG.
6663         (record_opr_changes): Look for clobbers in CALL_INSN_FUNCTION_USAGE.
6664         (reg_set_between_after_reload_p): Delete.
6665         (reg_used_between_after_reload_p): Likewise.
6666         (reg_set_or_used_since_bb_start): Likewise.
6667         (eliminate_partially_redundant_load): Use reg_changed_after_insn_p
6668         and reg_used_between_p instead of reg_set_or_used_since_bb_start.
6669         Use reg_set_between_p instead of reg_set_between_after_reload_p.
6670         * rtlanal.c (reg_set_p): Check whether REG overlaps
6671         regs_invalidated_by_call, rather than just checking the
6672         membership of REGNO (REG).
6673
6674 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
6675
6676         * doc/passes.texi: Document predictive commoning.
6677         * doc/invoke.texi (-fpredictive-commoning): Document.
6678         * opts.c (decode_options): Enable flag_predictive_commoning on -O3.
6679         * tree-ssa-loop-im.c (get_lsm_tmp_name): Export.  Allow
6680         adding indices to the generated name.
6681         (schedule_sm): Pass 0 to get_lsm_tmp_name.
6682         * tree-ssa-loop-niter.c (stmt_dominates_stmt_p): Export.
6683         * tree-pretty-print.c (op_symbol_1): Renamed to ...
6684         (op_symbol_code): ... and exported.
6685         (dump_omp_clause, op_symbol): Use op_symbol_code
6686         instead of op_symbol_1.
6687         * tree-pass.h (pass_predcom): Declare.
6688         * timevar.def (TV_PREDCOM): New timevar.
6689         * tree-ssa-loop.c (run_tree_predictive_commoning,
6690         gate_tree_predictive_commoning, pass_predcom): New.
6691         * tree-data-ref.c (find_data_references_in_loop): Find the
6692         references in dominance order.
6693         (canonicalize_base_object_address): Ensure that the result has
6694         pointer type.
6695         (dr_analyze_innermost): Export.
6696         (create_data_ref): Code to fail for references with invariant
6697         address moved ...
6698         (find_data_references_in_stmt): ... here.
6699         * tree-data-ref.h (dr_analyze_innermost): Declare.
6700         * tree-affine.c: Include tree-gimple.h and hashtab.h.
6701         (aff_combination_find_elt, name_expansion_hash,
6702         name_expansion_eq, tree_to_aff_combination_expand,
6703         double_int_constant_multiple_p, aff_combination_constant_multiple_p):
6704         New functions.
6705         * tree-affine.h (aff_combination_constant_multiple_p,
6706         tree_to_aff_combination_expand): Declare.
6707         * tree-predcom.c: New file.
6708         * common.opt (fpredictive-commoning): New option.
6709         * tree-flow.h (op_symbol_code, tree_predictive_commoning,
6710         stmt_dominates_stmt_p, get_lsm_tmp_name): Declare.
6711         * Makefile.in (tree-predcom.o): Add.
6712         (tree-affine.o): Add TREE_GIMPLE_H dependency.
6713         * passes.c (init_optimization_passes):  Add dceloop after
6714         copy propagation in loop optimizer.  Add predictive commoning
6715         to loop optimizer passes.
6716
6717 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6718
6719         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Correct
6720         default hook.
6721
6722 2007-05-24  Jan Hubicka  <jh@suse.cz>
6723
6724         * gengenrtl.c (gendecl, gendef): Output the gens annotated for
6725         statistics.
6726         (genheader): Include statistics.h.
6727
6728         * doc/invoke.texi (-fdump-unnumbered): Update docs when line number
6729         notes are gone.
6730         * print-rtl.c (flag_dump_unnumbered): Update comments.
6731         (print_rtl): Fix my previous change.
6732         * emit-rtl.c (emit_note_before, emit_note_after): Clear out note
6733         specific data.
6734
6735 2007-05-24  Zdenek Dvorak  <dvorakz@suse.cz>
6736
6737         PR middle-end/32018
6738         * tree-ssa-threadupdate.c (thread_through_loop_header): Use
6739         set_loop_copy.
6740         (thread_through_all_blocks): Call initialize_original_copy_tables
6741         and free_original_copy_tables.
6742         * cfgloopmanip.c (duplicate_loop, duplicate_loop_to_header_edge):
6743         Use set_loop_copy.
6744         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
6745         * cfghooks.c (duplicate_block): Use get_loop_copy.
6746         * cfg.c: Include cfgloop.h.
6747         (loop_copy): New hash table.
6748         (initialize_original_copy_tables): Initialize loop_copy table.
6749         (free_original_copy_tables): Free loop_copy table.
6750         (copy_original_table_clear, copy_original_table_set,
6751         set_loop_copy, get_loop_copy): New functions.
6752         (set_bb_original, set_bb_copy): Use copy_original_table_set.
6753         * cfgloop.h (struct loop): Remove copy field.
6754         * Makefile.in (cfg.o): Add CFGLOOP_H dependency.
6755         * basic-block.h (set_loop_copy, get_loop_copy): Declare.
6756
6757 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6758
6759         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 for
6760         -msse/-msse2/-msse3.
6761
6762 2007-05-24  H.J. Lu  <hongjiu.lu@intel.com>
6763
6764         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Mark
6765         __builtin_ia32_vec_set_v2di with MASK_64BIT.
6766
6767 2007-05-24  Danny Smith  <dannysmith@users.sourceforge.net>
6768
6769         PR target/27067
6770         * doc/tm.texi (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Document.
6771         * targhooks.h (default_mangle_decl_assembler_name): Declare
6772         default hook.
6773         * targhooks.c (default_mangle_decl_assembler_name): Define
6774         default hook.
6775         * target-def.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) New. Set to
6776         default hook.
6777         * target.h (struct gcc_target): Add mangle_decl_assembler_name field.
6778         * langhooks.c (lhd_set_decl_assembler_name): Call
6779         targetm.mangle_decl_assembler_name for names with global scope.
6780
6781         * config/i386/cygming.h (TARGET_MANGLE_DECL_ASSEMBLER_NAME) Override
6782         default.
6783         (ASM_OUTPUT_DEF_FROM_DECLS): Simplify to use DECL_ASSEMBLER_NAME.
6784         * config/i386/i386-protos.h (i386_pe_mangle_decl_assembler_name):
6785         Declare.
6786         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
6787         New. Factored out of i386_pe_encode_section_info.
6788         (gen_stdcall_or_fastcall_suffix): Get name identifier as argument.
6789         Move check for prior decoration of stdcall
6790         symbols to i386_pe_encode_section_info.
6791         (i386_pe_encode_section_info): Adjust call to
6792         gen_stdcall_or_fastcall_suffix.  Use
6793         i386_pe_maybe_mangle_decl_assembler_name, if needed.
6794         (i386_pe_mangle_decl_assembler_name): New. Wrap
6795         i386_pe_maybe_mangle_decl_assembler_name.
6796
6797 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
6798
6799         * c-common.c (c_common_signed_or_unsigned_type): Delay the check for
6800         INTEGRAL_TYPE_P and TYPE_UNSIGNED.
6801         * langhooks.c (get_signed_or_unsigned_type): Don't check for
6802         INTEGRAL_TYPE_P or TYPE_UNSIGNED.
6803         (lhd_signed_or_unsigned_type): Check for INTEGRAL_TYPE_P and
6804         TYPE_UNSIGNED.
6805
6806 2007-05-23  Sandra Loosemore  <sandra@codesourcery.com>
6807             Nigel Stephens  <nigel@mips.com>
6808             Richard Sandiford  <richard@codesourcery.com>
6809
6810         Fix up MIPS16 hard float and add support for complex.
6811
6812         * config/mips/mips.h (TARGET_HARD_FLOAT_ABI): New.
6813         (TARGET_SOFT_FLOAT_ABI): New.
6814         (TARGET_CPU_CPP_BUILTINS): Define __mips_hard_float and
6815         __mips_soft_float to reflect the ABI in use, not whether the
6816         FPU is directly accessible (e.g., in MIPS16 mode).
6817         (UNITS_PER_HWFPVALUE): Use TARGET_SOFT_FLOAT_ABI.
6818         (UNITS_PER_FPVALUE): Likewise.
6819
6820         * config/mips/mips.c (mips_expand_call): Remove redundant
6821         TARGET_MIPS16 check.
6822         (mips_arg_regno): New.
6823         (function_arg_advance): When setting bits in cum->fp_code for
6824         MIPS16, don't subtract 1 from cum->arg_number, since it is now
6825         zero-based.
6826         (function_arg): Use mips_arg_regno.
6827         (mips_return_mode_in_fpr_p): New.
6828         (mips16_call_stub_mode_suffix): New.
6829         (mips16_cfun_returns_in_fpr_p): New.
6830         (mips_save_reg_p): Use mips16_cfun_returns_in_fpr_p.
6831         (mips_output_function_prologue): Test mips16_hard_float, not
6832         !TARGET_SOFT_FLOAT, to decide when a function stub is required.
6833         (mips_expand_epilogue): Call MIPS16 helper routines to copy
6834         return value into a floating-point register.
6835         (mips_can_use_return_insn): Use mips16_cfun_returns_in_fpr_p.
6836         (mips_function_value): Rewrite to use mips_return_mode_in_fpr_p.
6837         (mips16_fp_args): Handle MIPS32r2 ISA which supports
6838         TARGET_FLOAT64, and use mfhc1/mthc1 to copy the most significant
6839         word of double arguments from or to the high bits of 64-bit
6840         floating point registers.
6841         (build_mips16_function_stub): Fill in DECL_RESULT for stubdecl.
6842         (mips16_fpret_double): New helper function.
6843         (build_mips16_call_stub): Use mips16_return_mode_in_fpr_p.  Add
6844         support for complex modes.  Fill in DECL_RESULT for stubdecl.
6845         (mips_init_libfuncs): Remove redundant TARGET_MIPS16 check.
6846
6847         * config/mips/mips16.S
6848         (RET, ARG1, ARG2): New.
6849         (MERGE_GPRf, MERGE_GPRt): New.
6850         (DELAYt, DELAYf): New.
6851         (MOVE_SF_BYTE0, MOVE_SI_BYTE0): New.
6852         (MOVE_SF_BYTE4, MOVE_SF_BYTE8): New.
6853         (MOVE_DF_BYTE0, MOVE_DF_BYTE8): New.
6854         (MOVE_SF_RET, MOVE_SC_RET, MOVE_DF_RET, MOVE_DC_RET, MOVE_SI_RET): New.
6855         (SFOP): Renamed to...
6856         (OPSF3): This, and macro-ified.  Updated all uses.
6857         (SFOP2): Renamed to...
6858         (OPSF2): This, and macro-ified.  Updated all uses.
6859         (SFCMP): Renamed to...
6860         (CMPSF): This, and macro-ified.  Updated all uses.
6861         (SFREVCMP): Renamed to...
6862         (REVCMPSF): This, and macro-ified.  Updated all uses.
6863         (__mips16_floatsisf, __mips16_fix_truncsfsi): Macro-ified.
6864         (LDDBL1, LDDBL2, RETDBL): Deleted.
6865         (DFOP): Renamed to...
6866         (OPDF3): This, and macro-ified.  Updated all uses.
6867         (DFOP2): Renamed to...
6868         (OPDF2): This, and macro-ified.  Updated all uses.
6869         (__mips16_extendsfdf2, __mips16_truncdfsf2): Macro-ified.
6870         (DFCMP): Renamed to...
6871         (CMPDF): This, and macro-ified.  Updated all uses.
6872         (DFREVCMP): Renamed to...
6873         (REVCMPDF): This, and macro-ified.  Updated all uses.
6874         (__mips16_floatsidf, __mips16_fix_truncdfsi): Macro-ified.
6875         (RET_FUNCTION): New.
6876         (__mips16_ret_sf, __mips16_ret_df): Macro-ified.
6877         (__mips16_ret_sc, __mips16_ret_dc): New.
6878         (STUB_ARGS_0, STUB_ARGS_1, STUB_ARGS_5, STUB_ARGS_9, STUB_ARGS_2,
6879         STUB_ARGS_6, STUB_ARGS_10): New.
6880         (CALL_STUB_NO_RET): New.
6881         (__mips16_call_stub_1): Macro-ified.
6882         (__mips16_call_stub_5): Macro-ified.
6883         (__mips16_call_stub_2): Macro-ified.
6884         (__mips16_call_stub_6): Macro-ified.
6885         (__mips16_call_stub_9): Macro-ified.
6886         (__mips16_call_stub_10): Macro-ified.
6887         (CALL_STUB_RET): New.
6888         (__mips16_call_stub_sf_0): Macro-ified.
6889         (__mips16_call_stub_sf_1): Macro-ified.
6890         (__mips16_call_stub_sf_5): Macro-ified.
6891         (__mips16_call_stub_sf_2): Macro-ified.
6892         (__mips16_call_stub_sf_6): Macro-ified.
6893         (__mips16_call_stub_sf_9): Macro-ified.
6894         (__mips16_call_stub_sf_10): Macro-ified.
6895         (__mips16_call_stub_df_0): Macro-ified.
6896         (__mips16_call_stub_df_1): Macro-ified.
6897         (__mips16_call_stub_df_5): Macro-ified.
6898         (__mips16_call_stub_df_2): Macro-ified.
6899         (__mips16_call_stub_df_6): Macro-ified.
6900         (__mips16_call_stub_df_9): Macro-ified.
6901         (__mips16_call_stub_df_10): Macro-ified.
6902         (__mips16_call_stub_sc_0): New.
6903         (__mips16_call_stub_sc_1): New.
6904         (__mips16_call_stub_sc_5): New.
6905         (__mips16_call_stub_sc_2): New.
6906         (__mips16_call_stub_sc_6): New.
6907         (__mips16_call_stub_sc_9): New.
6908         (__mips16_call_stub_sc_10): New.
6909         (__mips16_call_stub_dc_0): New.
6910         (__mips16_call_stub_dc_1): New.
6911         (__mips16_call_stub_dc_5): New.
6912         (__mips16_call_stub_dc_2): New.
6913         (__mips16_call_stub_dc_6): New.
6914         (__mips16_call_stub_dc_9): New.
6915         (__mips16_call_stub_dc_10): New.
6916
6917         * config/mips/t-elf (LIB1ASMFUNCS): Add MIPS16 floating-point stubs.
6918         * config/mips/t-isa3264 (LIB1ASMFUNCS): Likewise.
6919         * config/mips/t-r2900 (LIB1ASMFUNCS): Likewise.
6920
6921 2007-05-23  Ian Lance Taylor  <iant@google.com>
6922
6923         * doc/invoke.texi (Invoking GCC): Document that the order of the
6924         -l option matters.
6925
6926 2007-05-23  Chen Liqin  <liqin@sunnorth.com.cn>
6927
6928         PR target/30987
6929         * config/score/misc.md (bitclr_c, bitset_c, bittgl_c): Remove.
6930         * config/score/predicate.md (const_pow2, const_npow2): Remove.
6931         * config/score/score.h (ASM_OUTPUT_EXTERNAL): Add ASM_OUTPUT_EXTERNAL
6932         undef.
6933
6934         PR target/30474
6935         * config/score/score.c (score_print_operand): Make sure that only
6936         lower bits are used.
6937
6938 2007-05-22  Ian Lance Taylor  <iant@google.com>
6939
6940         * tree-vrp.c (avoid_overflow_infinity): New static function,
6941         broken out of set_value_range_to_value.
6942         (set_value_range_to_value): Call avoid_overflow_infinity.
6943         (extract_range_from_assert): Likewise.
6944
6945 2007-05-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6946
6947         PR middle-end/31095
6948          * builtins.c (expand_builtin_memmove_args): Strip nops that don't
6949         change the type before looking for a COMPOUND_EXPR.
6950
6951 2007-05-22  Ian Lance Taylor  <iant@google.com>
6952
6953         * lower-subreg.c (decompose_multiword_subregs): If we change an
6954         insn, call remove_retval_note on it.
6955
6956 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6957
6958         * regs.h (end_hard_regno): New function.
6959         (END_HARD_REGNO, END_REGNO): New macros.
6960         (add_to_hard_reg_set): New function.
6961         (remove_from_hard_reg_set): Likewise.
6962         (in_hard_reg_set_p): Likewise.
6963         (overlaps_hard_reg_set_p): Likewise.
6964         * bt-load.c (find_btr_reference): Use overlaps_hard_reg_set_p.
6965         (note_btr_set): Use END_HARD_REGNO.
6966         * caller-save.c (setup_save_areas): Use end_hard_regno.
6967         (mark_set_regs): Use END_HARD_REGNO.
6968         (add_stored_regs): Use end_hard_regno.
6969         (mark_referenced_regs): Use add_to_hard_reg_set.
6970         * combine.c (update_table_tick): Use END_REGNO.
6971         (record_value_for_reg): Likewise.
6972         (record_dead_and_set_regs): Likewise.
6973         (get_last_value_validate): Likewise.
6974         (use_crosses_set_p): Likewise.
6975         (reg_dead_at_p_1): Likewise.
6976         (reg_dead_at_p): Likewise.
6977         (mark_used_regs_combine): Use add_to_hard_reg_set.
6978         (move_deaths): Use END_HARD_REGNO.
6979         (reg_bitfield_target_p): Use end_hard_regno.
6980         (distribute_notes): Use END_HARD_REGNO.
6981         * cse.c (mention_regs): Use END_REGNO.
6982         (insert): Use add_to_hard_reg_set.
6983         (invalidate): Use END_HARD_REGNO.
6984         (invalidate_for_call): Likewise.
6985         (exp_equiv_p): Use END_REGNO.
6986         (cse_insn): Likewise.
6987         * cselib.c (cselib_invalidate_regno): Use end_hard_regno.
6988         * df-problems.c (df_urec_mark_reg_change): Use END_HARD_REGNO.
6989         * df-scan.c (df_ref_record): Use END_HARD_REGNO.
6990         * function.c (keep_stack_depressed): Use end_hard_regno.
6991         * global.c (global_alloc): Use end_hard_regno.
6992         (global_conflicts): Use add_to_hard_reg_set instead of
6993         mark_reg_live_nc.
6994         (find_reg): Likewise.
6995         (mark_reg_store): Likewise.
6996         (mark_reg_conflicts): Likewise.
6997         (mark_reg_death): Use remove_from_hard_reg_set.
6998         (mark_reg_live_nc): Delete.
6999         (set_preference): Use end_hard_regno.
7000         * local-alloc.c (mark_life): Use add_to_hard_reg_set and
7001         remove_from_hard_reg_set.
7002         (post_mark_life): Use add_to_hard_reg_set.
7003         * mode-switching.c (reg_dies): Use remove_from_hard_reg_set.
7004         (reg_becomes_live): Use add_to_hard_reg_set.
7005         * recog.c (reg_fits_class_p): Use in_hard_reg_set_p.
7006         (peep2_find_free_register): Use add_to_hard_reg_set.
7007         * reg-stack.c (convert_regs_exit): Use END_HARD_REGNO.
7008         * regclass.c (record_reg_classes): Use in_hard_reg_set_p.
7009         * regrename.c (note_sets): Use add_to_hard_reg_set.
7010         (clear_dead_regs): Use remove_from_hard_reg_set.
7011         (regrename_optimize): Use add_to_hard_reg_set.
7012         (find_oldest_value_reg): Use in_hard_reg_set_p.
7013         * reload.c (push_reload): Use in_hard_reg_set_p and end_hard_regno.
7014         (hard_reg_set_here_p): Use end_hard_regno.
7015         (decompose): Likewise.
7016         (reg_overlap_mentioned_for_reload_p): Use END_HARD_REGNO.
7017         (find_equiv_reg): Use in_hard_reg_set_p and end_hard_regno.
7018         * reload1.c (compute_use_by_pseudos): Use add_to_hard_reg_set.
7019         (mark_home_live): Use end_hard_regno.
7020         (spill_hard_reg): Likewise.
7021         (clear_reload_reg_in_use): Likewise.
7022         * reorg.c (delete_prior_computation): Use END_REGNO.
7023         * resource.c (update_live_status): Use END_HARD_REGNO.
7024         (mark_referenced_resources): Use add_to_hard_reg_set.
7025         (mark_set_resources): Likewise.
7026         (mark_target_live_regs): Likewise.  Use remove_from_hard_reg_set.
7027         * rtlanal.c (refers_to_regno_p): Use END_REGNO.
7028         (reg_overlap_mentioned_p): Likewise.
7029         (dead_or_set_p): Likewise.  Use an exclusive upper loop bound.
7030         (covers_regno_no_parallel_p): Use END_REGNO.
7031         (find_regno_note): Likewise.
7032         (find_reg_fusage): Use END_HARD_REGNO.
7033         * stmt.c (decl_overlaps_hard_reg_set_p): Use overlaps_hard_reg_set_p.
7034         * var-tracking.c (emit_note_insn_var_location): Use end_hard_regno.
7035
7036 2007-05-22  Richard Sandiford  <rsandifo@nildram.co.uk>
7037
7038         * mode-switching.c (reg_dies): Change type of second argument to
7039         "HARD_REG_SET *".
7040         (optimize_mode_switching): Update accordingly.
7041
7042 2007-05-22  Richard Sandiford  <richard@codesourcery.com>
7043
7044         * hard-reg-set.h (GO_IF_HARD_REG_SUBSET, GO_IF_HARD_REG_EQUAL): Delete
7045         in favor of...
7046         (hard_reg_subset_p, hard_reg_sets_equal_p, hard_reg_sets_intersect_p)
7047         (hard_reg_set_empty_p): ...these new functions.
7048         * bt-load.c (choose_btr): Use hard_reg_subset_p instead of
7049         GO_IF_HARD_REG_SUBSET.
7050         * cfgcleanup.c (old_insns_match_p): Use hard_reg_sets_equal_p
7051         instead of GO_IF_HARD_REG_EQUAL.
7052         * df-problems.c (df_urec_local_compute): Use hard_reg_set_empty_p
7053         instead of GO_IF_HARD_REG_EQUAL.
7054         * global.c (find_reg): Use hard_reg_set_empty_p instead of
7055         GO_IF_HARD_REG_SUBSET.
7056         (modify_reg_pav): Use hard_reg_set_empty_p instead of
7057         GO_IF_HARD_REG_EQUAL.
7058         * local-alloc.c (find_free_reg): Use hard_reg_subset_p instead
7059         of GO_IF_HARD_REG_SUBSET.
7060         * reg-stack.c (change_stack, convert_regs_1): Use hard_reg_sets_equal_p
7061         instead of GO_IF_HARD_REG_EQUAL.
7062         * regclass.c (init_reg_sets_1, reg_scan_mark_refs): Use
7063         hard_reg_subset_p instead of GO_IF_HARD_REG_SUBSET.
7064         (reg_classes_intersect_p): Use hard_reg_sets_intersect_p instead
7065         of GO_IF_HARD_REG_SUBSET,
7066         * reload1.c (finish_spills): Use hard_reg_subset_p instead of
7067         GO_IF_HARD_REG_SUBSET.
7068         * struct-equiv.c (death_notes_match_p): Use hard_reg_sets_equal_p
7069         instead of GO_IF_HARD_REG_EQUAL.
7070         * config/sh/sh.c (push_regs, calc_live_regs): Use
7071         hard_reg_sets_intersect_p instead of hard_regs_intersect_p.
7072         (hard_regs_intersect_p): Delete.
7073
7074 2007-05-22  Janis Johnson  <janis187@us.ibm.com>
7075
7076         * doc/sourcebuild.texi (Test Directives) Add dg-message.
7077
7078 2007-05-22  H.J. Lu  <hongjiu.lu@intel.com>
7079             Richard Henderson  <rth@redhat.com>
7080
7081         * config.gcc (i[34567]86-*-*): Add smmintrin.h to
7082         extra_headers.
7083         (x86_64-*-*): Likewise.
7084
7085         * i386/i386-modes.def (V2QI): New.
7086
7087         * config/i386/i386.c (ix86_handle_option): Handle SSE4.1 and
7088         SSE4A.
7089         (override_options): Support SSE4.1.
7090         (IX86_BUILTIN_BLENDPD): New for SSE4.1.
7091         (IX86_BUILTIN_BLENDPS): Likewise.
7092         (IX86_BUILTIN_BLENDVPD): Likewise.
7093         (IX86_BUILTIN_BLENDVPS): Likewise.
7094         (IX86_BUILTIN_PBLENDVB128): Likewise.
7095         (IX86_BUILTIN_PBLENDW128): Likewise.
7096         (IX86_BUILTIN_DPPD): Likewise.
7097         (IX86_BUILTIN_DPPS): Likewise.
7098         (IX86_BUILTIN_INSERTPS128): Likewise.
7099         (IX86_BUILTIN_MOVNTDQA): Likewise.
7100         (IX86_BUILTIN_MPSADBW128): Likewise.
7101         (IX86_BUILTIN_PACKUSDW128): Likewise.
7102         (IX86_BUILTIN_PCMPEQQ): Likewise.
7103         (IX86_BUILTIN_PHMINPOSUW128): Likewise.
7104         (IX86_BUILTIN_PMAXSB128): Likewise.
7105         (IX86_BUILTIN_PMAXSD128): Likewise.
7106         (IX86_BUILTIN_PMAXUD128): Likewise.
7107         (IX86_BUILTIN_PMAXUW128): Likewise.
7108         (IX86_BUILTIN_PMINSB128): Likewise.
7109         (IX86_BUILTIN_PMINSD128): Likewise.
7110         (IX86_BUILTIN_PMINUD128): Likewise.
7111         (IX86_BUILTIN_PMINUW128): Likewise.
7112         (IX86_BUILTIN_PMOVSXBW128): Likewise.
7113         (IX86_BUILTIN_PMOVSXBD128): Likewise.
7114         (IX86_BUILTIN_PMOVSXBQ128): Likewise.
7115         (IX86_BUILTIN_PMOVSXWD128): Likewise.
7116         (IX86_BUILTIN_PMOVSXWQ128): Likewise.
7117         (IX86_BUILTIN_PMOVSXDQ128): Likewise.
7118         (IX86_BUILTIN_PMOVZXBW128): Likewise.
7119         (IX86_BUILTIN_PMOVZXBD128): Likewise.
7120         (IX86_BUILTIN_PMOVZXBQ128): Likewise.
7121         (IX86_BUILTIN_PMOVZXWD128): Likewise.
7122         (IX86_BUILTIN_PMOVZXWQ128): Likewise.
7123         (IX86_BUILTIN_PMOVZXDQ128): Likewise.
7124         (IX86_BUILTIN_PMULDQ128): Likewise.
7125         (IX86_BUILTIN_PMULLD128): Likewise.
7126         (IX86_BUILTIN_ROUNDPD): Likewise.
7127         (IX86_BUILTIN_ROUNDPS): Likewise.
7128         (IX86_BUILTIN_ROUNDSD): Likewise.
7129         (IX86_BUILTIN_ROUNDSS): Likewise.
7130         (IX86_BUILTIN_PTESTZ): Likewise.
7131         (IX86_BUILTIN_PTESTC): Likewise.
7132         (IX86_BUILTIN_PTESTNZC): Likewise.
7133         (IX86_BUILTIN_VEC_EXT_V16QI): Likewise.
7134         (IX86_BUILTIN_VEC_SET_V2DI): Likewise.
7135         (IX86_BUILTIN_VEC_SET_V4SF): Likewise.
7136         (IX86_BUILTIN_VEC_SET_V4SI): Likewise.
7137         (IX86_BUILTIN_VEC_SET_V16QI): Likewise.
7138         (bdesc_ptest): New.
7139         (bdesc_sse_3arg): Likewise.
7140         (bdesc_2arg): Likewise.
7141         (bdesc_1arg): Likewise.
7142         (ix86_init_mmx_sse_builtins): Support SSE4.1.  Handle SSE builtins
7143         with 3 args.
7144         (ix86_expand_sse_4_operands_builtin): New.
7145         (ix86_expand_unop_builtin): Support 2 arg builtins with a constant
7146         smaller than 8 bits as the 2nd arg.
7147         (ix86_expand_sse_ptest): New.
7148         (ix86_expand_builtin): Support SSE4.1. Support 3 arg SSE builtins.
7149         (ix86_expand_vector_set): Support SSE4.1.
7150         (ix86_expand_vector_extract): Likewise.
7151
7152         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Define
7153         __SSE4_1__ for -msse4.1.
7154
7155         * config/i386/i386.md (UNSPEC_BLENDV): New for SSE4.1.
7156         (UNSPEC_INSERTPS): Likewise.
7157         (UNSPEC_DP): Likewise.
7158         (UNSPEC_MOVNTDQA): Likewise.
7159         (UNSPEC_MPSADBW): Likewise.
7160         (UNSPEC_PHMINPOSUW): Likewise.
7161         (UNSPEC_PTEST): Likewise.
7162         (UNSPEC_ROUNDP): Likewise.
7163         (UNSPEC_ROUNDS): Likewise.
7164
7165         * config/i386/i386.opt (msse4.1): New for SSE4.1.
7166
7167         * config/i386/predicates.md (const_pow2_1_to_2_operand): New.
7168         (const_pow2_1_to_32768_operand): Likewise.
7169
7170         * config/i386/smmintrin.h: New. The SSE4.1 intrinsic header
7171         file.
7172
7173         * config/i386/sse.md (*vec_setv4sf_sse4_1): New pattern for
7174         SSE4.1.
7175         (sse4_1_insertps): Likewise.
7176         (*sse4_1_extractps): Likewise.
7177         (sse4_1_ptest): Likewise.
7178         (sse4_1_mulv2siv2di3): Likewise.
7179         (*sse4_1_mulv4si3): Likewise.
7180         (*sse4_1_smax<mode>3): Likewise.
7181         (*sse4_1_umax<mode>3): Likewise.
7182         (*sse4_1_smin<mode>3): Likewise.
7183         (*sse4_1_umin<mode>3): Likewise.
7184         (sse4_1_eqv2di3): Likewise.
7185         (*sse4_1_pinsrb): Likewise.
7186         (*sse4_1_pinsrd): Likewise.
7187         (*sse4_1_pinsrq): Likewise.
7188         (*sse4_1_pextrb): Likewise.
7189         (*sse4_1_pextrb_memory): Likewise.
7190         (*sse4_1_pextrw_memory): Likewise.
7191         (*sse4_1_pextrq): Likewise.
7192         (sse4_1_blendpd): Likewise.
7193         (sse4_1_blendps): Likewise.
7194         (sse4_1_blendvpd): Likewise.
7195         (sse4_1_blendvps): Likewise.
7196         (sse4_1_dppd): Likewise.
7197         (sse4_1_dpps): Likewise.
7198         (sse4_1_movntdqa): Likewise.
7199         (sse4_1_mpsadbw): Likewise.
7200         (sse4_1_packusdw): Likewise.
7201         (sse4_1_pblendvb): Likewise.
7202         (sse4_1_pblendw): Likewise.
7203         (sse4_1_phminposuw): Likewise.
7204         (sse4_1_extendv8qiv8hi2): Likewise.
7205         (*sse4_1_extendv8qiv8hi2): Likewise.
7206         (sse4_1_extendv4qiv4si2): Likewise.
7207         (*sse4_1_extendv4qiv4si2): Likewise.
7208         (sse4_1_extendv2qiv2di2): Likewise.
7209         (*sse4_1_extendv2qiv2di2): Likewise.
7210         (sse4_1_extendv4hiv4si2): Likewise.
7211         (*sse4_1_extendv4hiv4si2): Likewise.
7212         (sse4_1_extendv2hiv2di2): Likewise.
7213         (*sse4_1_extendv2hiv2di2): Likewise.
7214         (sse4_1_extendv2siv2di2): Likewise.
7215         (*sse4_1_extendv2siv2di2): Likewise.
7216         (sse4_1_zero_extendv8qiv8hi2): Likewise.
7217         (*sse4_1_zero_extendv8qiv8hi2): Likewise.
7218         (sse4_1_zero_extendv4qiv4si2): Likewise.
7219         (*sse4_1_zero_extendv4qiv4si2): Likewise.
7220         (sse4_1_zero_extendv2qiv2di2): Likewise.
7221         (*sse4_1_zero_extendv2qiv2di2): Likewise.
7222         (sse4_1_zero_extendv4hiv4si2): Likewise.
7223         (*sse4_1_zero_extendv4hiv4si2): Likewise.
7224         (sse4_1_zero_extendv2hiv2di2): Likewise.
7225         (*sse4_1_zero_extendv2hiv2di2): Likewise.
7226         (sse4_1_zero_extendv2siv2di2): Likewise.
7227         (*sse4_1_zero_extendv2siv2di2): Likewise.
7228         (sse4_1_roundpd): Likewise.
7229         (sse4_1_roundps): Likewise.
7230         (sse4_1_roundsd): Likewise.
7231         (sse4_1_roundss): Likewise.
7232         (mulv4si3): Don't expand for SSE4.1.
7233         (smax<mode>3): Likewise.
7234         (umaxv4si3): Likewise.
7235         (uminv16qi3): Likewise.
7236         (umin<mode>3): Likewise.
7237         (umaxv8hi3): Rewrite.  Only enabled for SSE4.1.
7238
7239         * doc/extend.texi: Document SSE4.1 built-in functions.
7240
7241         * doc/invoke.texi: Document -msse4.1.
7242
7243 2007-05-22  Nathan Sidwell  <nathan@codesourcery.com>
7244
7245         * config/m68k/linux.h (ASM_SPEC): Add asm_pcrel_spec.
7246         * config/m68k/m68k-none.h (ASM_SPEC): Don't override here.
7247         * config/m68k/m68k.h (ASM_PCREL_SPEC): New.
7248         (ASM_SPEC): Add asm_pcrel_spec.
7249         (EXTRA_SPECS): Add asm_pcrel_spec.
7250
7251 2007-05-21  David Daney  <ddaney@avtrex.com>
7252
7253         * doc/install.texi (Building a cross compiler): Add requirements
7254         for Java cross compiler.
7255
7256 2007-05-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7257
7258         PR middle-end/31995
7259         * tree-chrec.c (evolution_function_is_affine_multivariate_p):
7260         Add loopno argument.  Use evolution_function_is_invariant_rec_p
7261         instead of evolution_function_is_constant_p.
7262         Update calls to evolution_function_is_affine_multivariate_p.
7263         * tree-chrec.h (evolution_function_is_affine_multivariate_p):
7264         Add loopno argument.
7265         * tree-scalar-evolution.c (gather_chrec_stats): Call
7266         evolution_function_is_affine_multivariate_p with a loop
7267         number of 0.
7268         * tree-data-ref.c (analyze_miv_subscript): Likewise.
7269         (analyze_overlapping_iterations): Likewise.
7270         (access_functions_are_affine_or_constant_p): Likewise.
7271         (build_classic_dist_vector_1): If the access functions
7272         are equal, don't do anything.
7273
7274 2007-05-21  Paolo Bonzini  <bonzini@gnu.org>
7275             Paolo Carlini  <pcarlini@suse.de>
7276             Uros Bizjak  <ubizjak@gmail.com>
7277
7278         * c-cppbuiltin.c (c_cpp_builtins): Define
7279         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
7280         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8,
7281         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16, if appropriate.
7282         * doc/cpp.texi ([Standard Predefined Macros]): Document.
7283
7284 2007-05-21  Mike Stump  <mrs@apple.com>
7285
7286         * config/darwin.h (LINK_COMMAND_SPEC): Add .cxx/.cp for dsymutil
7287         handling as well.
7288         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
7289
7290 2007-05-21  Uros Bizjak  <ubizjak@gmail.com>
7291
7292         * config/i386/tmmintrin.h (_mm_alignr_epi8): Provide macro
7293         implementation if __OPTIMIZE__ is not defined.
7294         (_mm_alignr_pi8): Ditto.
7295         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
7296         (_mm_inserti_si64): Ditto.
7297         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
7298         (_mm_slli_epi16): Ditto.
7299         (_mm_slli_epi32): Ditto.
7300         (_mm_slli_epi64): Ditto.
7301         (_mm_srai_epi16): Ditto.
7302         (_mm_srai_epi32): Ditto.
7303         (_mm_srli_si128): Ditto.
7304         (_mm_slli_si128): Ditto.
7305         (_mm_srli_epi16): Ditto.
7306         (_mm_srli_epi32): Ditto.
7307         (_mm_srli_epi64): Ditto.
7308         (_mm_extract_epi16): Ditto.
7309         (_mm_insert_epi16): Ditto.
7310         (_mm_shufflehi_epi16): Ditto.
7311         (_mm_shufflelo_epi16): Ditto.
7312         (_mm_shuffle_epi32): Ditto.
7313         * config/i386/xmmintrin.h (_mm_extract_pi16): Ditto.
7314         (_m_pextrw): Ditto.
7315         (_mm_insert_pi16): Ditto.
7316         (_m_pinsrw): Ditto.
7317         (_mm_shuffle_pi16): Ditto.
7318         (_m_pshufw): Ditto.
7319         (_mm_shufle_ps): Ditto.
7320         (_mm_prefetch): Ditto.
7321
7322 2007-05-21  Andreas Krebbel  <krebbel1@de.ibm.com>
7323
7324         * defaults.h (IBM_FLOAT_FORMAT): Macro definition removed.
7325         * doc/tm.texi (IBM_FLOAT_FORMAT): Documentation entry removed.
7326         * real.c (encode_i370_single, decode_i370_single,
7327         encode_i370_double, decode_i370_double): Functions removed.
7328         (i370_single_format, i370_double_format): Initializations removed.
7329         (real_maxval, round_for_format, exact_real_truncate, significand_size):
7330         Consider the log2_b field to always be one.
7331         (ieee_single_format, mips_single_format, coldfire_single_format,
7332         ieee_double_format, mips_double_format, coldfire_double_format,
7333         ieee_extended_motorola_format, ieee_extended_intel_96_format,
7334         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
7335         ibm_extended_format, mips_extended_format, ieee_quad_format,
7336         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
7337         decimal_single_format, decimal_double_format, decimal_quad_format,
7338         c4x_single_format, c4x_extended_format, real_internal_format): Remove
7339         initialization of log2_b.
7340         * real.h (i370_single_format, i370_double_format): Declarations
7341         removed.
7342         * c-cppbuiltin.c (builtin_define_float_constants): Consider the log2_b
7343         field to always be one.
7344
7345 2007-05-21  Andreas Schwab  <schwab@suse.de>
7346
7347         * config/ia64/ia64.c (emit_predicate_relation_info): Fix use of
7348         NOTE_INSN_BASIC_BLOCK_P.
7349         (process_for_unwind_directive): Likewise.
7350
7351 2007-05-21  Nathan Sidwell  <nathan@codesourcery.com>
7352
7353         * builtins.c (expand_builtin_setjmp_setup): Update comment.
7354         * function.h (struct function): Move va_list_gpr_size,
7355         va_list_fpr_size, function_frequency to front of bitfields.  Add
7356         calls_unwind_init.
7357         (current_function_calls_unwind_init): New.
7358         * except.c (expand_builtin_unwind_init): Set
7359         current_function_calls_unwind_init not
7360         current_function_has_nonlocal_label.
7361         * reload1.c (has_nonexceptional_receiver): New.
7362         (reload): Use it and current_function_calls_unwind_init to
7363         determine whether call-saved regs must be saved.
7364
7365 2007-05-20  Jan Hubicka  <jh@suse.cz>
7366
7367         * gengtype.c (adjust_field_rtx_def): Use NOTE_KIND instead of
7368         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
7369         * ddg.c (create_ddg): LIkewise.
7370         * final.c (final): Remove hunk moving line number notes around since
7371         they are no longer present at this stage.
7372         (final_scan_insn): Use NOTE_KIND instead of
7373         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
7374         (output_asm_label): Likewise.
7375         * reorg.c (dbr_schedule): Likewise.
7376         * haifa-sched.c (unlink_other_notes): Likewise.
7377         * mode-switching.c (optimize_mode_switching): Likewise.
7378         * graph.c (start_bb): Likewise.
7379         * rtl.def (NOTE): Update description.
7380         * jump.c (squeeze_notes): Delete.
7381         (mark_jump_label): Use NOTE_KIND instead of NOTE_LINE_NUMBER; use
7382         NOTE_INSN_BASIC_BLOCK_P when possible.
7383         * ifcvt.c (dead_or_predicable): Remove call of squeeze_notes.
7384         * dwarf2out.c (gen_label_die): Use NOTE_KIND instead of
7385         NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P when possible.
7386         (dwarf2out_var_location): Likewise.
7387         * cfgbuild.c (make_edges): Likewise.
7388         (find_basic_blocks_1): Likewise.
7389         * function.c (reorder_blocks_1): Likewise.
7390         (epilogue_done): Likewise.
7391         (reposition_prologue_and_epilogue_notes): Likewise.
7392         * print-rtl.c (print_rtx): Likewise; drop code for printing
7393         line number notes.
7394         (print_rtl): Likewise.
7395         (print_rtl_single): Likewise.
7396         * gcse.c (insert_insn_start_bb): Likewise.
7397         * alias.c (init_alias_analysis): Likewise.
7398         * calls.c (fixup_tail_calls): Likewise.
7399         * except.c (sjlj_emit_function_enter): Likewise.
7400         * emit-rtl.c (add_insn_after): Likeiwse.
7401         (emit_label_before): Likewise.
7402         (emit_label_after): Likewise.
7403         (emit_note_before, emit_note_after, emit_note): Update
7404         parameter to be enum insn_note; do not deal with source
7405         files.
7406         * cfgcleanup.c (merge_blocks_move_predecessor_nojumps):
7407         Use NOTE_KIND instead of NOTE_LINE_NUMBER; use NOTE_INSN_BASIC_BLOCK_P
7408         when possible.
7409         (merge_blocks_move_successor_nojumps): Simplify now when
7410         we don't have BLOCK notes.
7411         (try_optimize_cfg): Likewise.
7412         * cfglayout.c (skip_insns_after_block): Likewise.
7413         (record_effective_endpoints): Likewise.
7414         (duplicate_insn_chain): Likewise.
7415         * varasm.c (output_constant_pool_1): Likewise.
7416         * sched-deps.c (sched_analyze): Likewise.
7417         * rtl.c (NOTE_INSN_MAX_isnt_negative_adjust_NOTE_INSN_BIAS):
7418         Exterminate.
7419         (note_insn_name): Simplify now when NOTE_INSN_BIAS is gone.
7420         * rtl.h (NOTE_SOURCE_LOCATION, NOTE_EXPANDED_LOCATION): Exterminate.
7421         (SET_INSN_DELETED): Simplify.
7422         (NOTE_LINE_NUMBER): Exterminate.
7423         (NOTE_LINE_KIND): New.
7424         (NOTE_INSN_BASIC_BLOCK_P): Update.
7425         (enum insn_note): Simplify.
7426         (GET_NOTE_INSN_NAME) Simplify.
7427         (emit_note_before, emit_note_after, emit_note): Update prototype.
7428         (squeeze_notes): Remove.
7429         * sched-int.h (NOTE_NOT_BB_P): Update.
7430         * resource.c (mark_target_live_regs): Update.
7431         * sched-rgn.c (debug_dependencies): Update.
7432         * sched-vis.c (print_insn): Update.
7433         * config/alpha/alpha.c (alpha_handle_trap_shadows): Update.
7434         * config/i386/i386.c (ix86_output_function_epilogue): Update.
7435         * config/sh/sh.c (sh_adjust_unroll_max): Function dead since gcc 4.0.0.
7436         (TARGET_ADJUST_UNROLL_MAX): Likewise.
7437         (split_branches): Update.
7438         (sh_optimize_target_register_callee_saved): Remove hunk dead since gcc
7439         4.0.0.
7440         (sh_adjust_unroll_max): Exterminate.
7441         * config/c4x/c4x.c (c4x_reorg): Use SET_INSN_DELETED.
7442         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Likewise.
7443         (m68hc11_reorg): Likewise.
7444         * config/ia64/ia64.c (emit_insn_group_barriers): Update.
7445         (emit_predicate_relation_info): Update.
7446         (process_for_unwind_directive): Update.
7447         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update.
7448         (output_call): Update.
7449         * config/pa/pa.c (output_lbranch): Update.
7450         (output_millicode_call): Update.
7451         (output_call): Update.
7452         (pa_combine_instructions): Update.
7453         * config/mips/mips.c (mips16_gp_pseudo_reg): Update.
7454         * config/bfin/bfin.c (gen_one_bundle): Update.
7455         * cfgrtl.c (can_delete_note_p): Update.
7456         (delete_insn): Update.
7457         (rtl_merge_blocks): Update.
7458         (commit_one_edge_insertion): Update.
7459         (rtl_verify_flow_info): Update.
7460         * stmt.c (expand_case): Do not call squeeze_notes.
7461
7462 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7463
7464         PR middle-end/7651
7465         PR c++/11856
7466         PR c/12963
7467         PR c/23587
7468         PR other/29694
7469         * c.opt (Wtype-limits): New.
7470         * doc/invoke.texi (Wtype-limits): Document it.
7471         (Wextra): Enabled by -Wextra.
7472         * c-opts.c (c_common_post_options): Enabled by -Wextra.
7473         * c-common.c (shorten_compare): Warn with Wtype-limits.
7474
7475 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
7476
7477         * config/i386/tmmintrin.h (_mm_alignr_epi32): Implement as always
7478         inlined function, not as a macro.
7479         (_mm_alignr_pi8): Ditto.
7480         * config/i386/ammintrin.h (_mm_extracti_si64): Ditto.
7481         (_mm_inserti_si64): Ditto.
7482         * config/i386/emmintrin.h (_mm_shuffle_pd): Ditto.
7483         (_mm_extract_epi16): Ditto.
7484         (_mm_insert_epi16): Ditto.
7485         (_mm_shufflehi_epi16): Ditto.
7486         (_mm_shufflelo_epi16): Ditto.
7487         (_mm_shuffle_epi32): Ditto.
7488         * config/i386/xmmintrin.h (_mm_set_ss): Use 0.0f for float constant.
7489         * config/386/mm3dnow.h: Add __attribute__((__always_inline__)) to
7490         all functions.
7491         (_m_from_float): Add __extension__ to conversion.  Use 0.0f for
7492         float constant.
7493         (_m_to_float): Use C89 compatible assignment.
7494
7495 2007-05-20  Martin Michlmayr  <tbm@cyrius.com>
7496
7497         PR target/32007
7498         * config/arm/lib1funcs.asm: Define __ARM_ARCH__ on v2/v3 machines.
7499
7500 2007-05-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7501
7502         PR middle-end/7651
7503         * doc/invoke.texi (Wreturn-type): Complete description.
7504         (Wextra): Delete item about return-type warning.
7505         * c-decl.c: Delete redundant Wextra warning.
7506
7507 2007-05-20  Uros Bizjak  <ubizjak@gmail.com>
7508
7509         PR target/31585
7510         * config/i386/pmmintrin.h: Do not include xmmintrin.h
7511         * config/i386/xmmintrin.h (_mm_extract_pi16): Implement as always
7512         inlined function, not as a macro.
7513         (_mm_prefetch): Ditto.
7514         (_m_pextrw): Ditto.
7515         (_mm_insert_pi16): Ditto.
7516         (_m_pinsrw): Ditto.
7517         (_mm_shuffle_pi16): Ditto.  Add const to __N argument.
7518         (_m_pshufw): Ditto. Add const to __N argument.
7519         (_mm_shufle_ps): Ditto.  Add const to __mask argument.
7520         * config/i386/emmintrin.h (_mm_slli_epi16): Add const to __B argument.
7521         (_mm_slli_epi32): Ditto.
7522         (_mm_srli_si128): Implement as always inlined function, not as a
7523         macro.  Add __inline to function declaration.
7524         (_mm_slli_si128): Ditto.
7525
7526 2007-05-19  Uros Bizjak  <ubizjak@gmail.com>
7527
7528         * config/i386/sfp-machine.h (FP_EX_INVALID, FP_EX_DENORM,
7529         FP_EXP_DIVZERO, FP_EX_OVERFLOW, FP_EX_UNDERFLOW, FP_EX_INEXACT):
7530         New constants.
7531         (struct fenv): New structure.
7532         (FP_HANDLE_EXCEPTIONS): New define.
7533         (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, FP_RND_MINF): New constants.
7534         (_FP_DECL_EXP): New define.
7535         (FP_INIT_ROUNDMODE): New define.
7536         (FP_ROUNDMODE): New define.
7537
7538 2007-05-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7539
7540         * doc/invoke.texi (Warning Options): Add -Wconversion-sign.
7541         (Wconversion): Update description.
7542         (Wconversion-sign): New.
7543         * c.opt (Wconversion-sign): New.
7544         * c-opts.c (c_common_post_options): Uninitialized Wconversion-sign
7545         means disabled for C++. Otherwise, take the status of Wconversion.
7546         * c-common.c (conversion_warning): Warn with either Wconversion or
7547         Wconversion-sign.
7548         (warnings_for_convert_and_check): Conditions are already checked by
7549         conversion_warning.
7550         (convert_and_check): Don't check warnings if the conversion failed.
7551
7552 2007-05-19 Andy Hutchinson <HutchinsonAndy@netscape.net>
7553            Anatoly Sokolov <aesok@dol.ru>
7554
7555         * config/avr/avr-protos.h (expand_prologue, expand_epilogue,
7556         avr_epilogue_uses) : Add declaration.
7557         * config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
7558         * config/avr/constraints.md (R): New constraint.
7559         config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
7560         UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
7561         (*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
7562         (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
7563         (*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
7564         call_prologue_saves, epilogue_restores, return_from_epilogue,
7565         return_from_main_epilogue, return_from_interrupt_epilogue,
7566         return_from_naked_epilogue, prologue, epilogue): New patterns.
7567         (jump): Handle symbol reference.
7568         * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
7569         avr_output_function_prologue, avr_output_function_epilogue): Remove
7570         functions.
7571         (avr_init_machine_status, expand_prologue, expand_epilogue,
7572         avr_asm_function_end_prologue, avr_epilogue_uses,
7573         avr_asm_function_begin_epilogue): New functions.
7574         (prologue_size, epilogue_size, jump_tables_size): Remove global
7575         variables.
7576         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
7577         (TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
7578         (TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
7579         (avr_override_options): Initialise init_machine_status.
7580         (output_movhi): Handle all stack pointer loads.
7581         (out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
7582         (avr_output_addr_vec_elt): Do not use variable jump_tables_size.
7583         * config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
7584         (EPILOGUE_USES) Redefine.
7585         (machine_function) Declare.
7586
7587 2007-05-19  Richard Sandiford  <richard@codesourcery.com>
7588
7589         * config/mips/mips.c (mips_offset_within_alignment_p): Tweak comment.
7590         Use a single return statement.
7591
7592 2007-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7593
7594         PR middle-end/30250
7595         * builtins.c (do_mpfr_lgamma_r): New.
7596         (fold_builtin_2): Handle builtin gamma_r/lgamma_r.
7597         * tree.h (CASE_FLT_FN_REENT): New.
7598
7599 2007-05-18  Geoffrey Keating  <geoffk@apple.com>
7600
7601         * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'.
7602         (output_die): Use 'unsigned long' with %x.
7603         * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and
7604         HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT.
7605         * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx.
7606
7607         * unwind-dw2.c (uw_identify_context): Use the CFA, not the IP.
7608
7609 2007-05-18  H.J. Lu  <hongjiu.lu@intel.com>
7610
7611         PR target/31989
7612         PR target/31681
7613         PR target/31666
7614         * config/i386/i386.c (init_cumulative_args): Set maybe_vaarg to
7615         true if function has no argument.
7616
7617 2007-05-18  DJ Delorie  <dj@redhat.com>
7618
7619         * config/mips/mips.c (mips_offset_within_alignment_p): New.
7620         (mips_symbolic_constant_p): Call it for TPREL and DTPREL symbols.
7621
7622 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
7623
7624         * longlong.h (__x86_64__): Add definitions for add_ssaaaa,
7625         sub_ddmmss, umul_ppmm, udiv_qrnnd, count_leading_zeros and
7626         count_trailing_zeros.
7627         (__i386__): Implement count_leading_zeros using __builtin_clz().
7628         Implement count_trailing_zeros usign __builtin_ctz().
7629
7630 2007-05-18  Richard Sandiford  <richard@codesourcery.com>
7631
7632         * config/i386/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine.
7633
7634 2007-05-18  Uros Bizjak  <ubizjak@gmail.com>
7635
7636         PR middle-end/31344
7637         * expr.c (emit_move_change_mode): Change mode of push operands here.
7638
7639 2007-05-17  Ian Lance Taylor  <iant@google.com>
7640
7641         PR tree-optimization/31953
7642         * tree-vrp.c (set_value_range_to_value): Add equiv parameter.
7643         Change all callers.
7644         (set_value_range_to_null): Call set_value_range_to_value.
7645         (extract_range_from_comparison): Likewise.
7646
7647 2007-05-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7648
7649         * toplev.c (print_version): Output GMP/MPFR version info.
7650
7651         * builtins.c (CASE_MATHFN_REENT): New macro.
7652         (mathfn_built_in): Use it.
7653         * builtins.def (BUILT_IN_GAMMA_R, BUILT_IN_GAMMAF_R,
7654         BUILT_IN_GAMMAL_R, BUILT_IN_LGAMMA_R, BUILT_IN_LGAMMAF_R,
7655         BUILT_IN_LGAMMAL_R): New.
7656         * doc/extend.texi: Document new builtins.
7657
7658         PR middle-end/31796
7659         * builtins.c (do_mpfr_remquo): New.
7660         (fold_builtin_2): Handle BUILT_IN_DREM/BUILT_IN_REMAINDER.
7661         (fold_builtin_3): Handle BUILT_IN_REMQUO.
7662
7663         PR middle-end/30251
7664         * builtins.c (fold_builtin_1): Handle y0, y1.
7665         (fold_builtin_2): Handle yn.
7666
7667         PR middle-end/30251
7668         * builtins.c (do_mpfr_bessel_n): New.
7669         (fold_builtin_1): Handle BUILT_IN_J0 and BUILT_IN_J1.
7670         (fold_builtin_2): Handle BUILT_IN_JN.
7671
7672 2007-05-17  Danny Smith  <dannysmith@users.sourceforge.net>
7673
7674         PR target/31965
7675         * config/i386/mingw32.h (_INTEGRAL_MAX_BITS): Define builtin as
7676         TYPE_PRECISION (intmax_type_node).
7677
7678 2007-05-17  Steve Ellcey  <sje@cup.hp.com>
7679
7680         PR target/31850
7681         * reload.c (subst_reloads): Remove checking.
7682
7683 2007-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
7684
7685         PR rtl-optimization/31691
7686         * combine.c (simplify_set): Build a new src pattern instead of
7687         substituting its operands in the COMPARE case.
7688
7689 2007-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
7690
7691         * tree-vrp.c (finalize_jump_threads): Do not care about dominance info.
7692         (execute_vrp): Preserve loops through jump threading.
7693         * tree-ssa-threadupdate.c (thread_single_edge,
7694         dbds_continue_enumeration_p, determine_bb_domination_status,
7695         thread_through_loop_header): New functions.
7696         (create_edge_and_update_destination_phis,
7697         create_edge_and_update_destination_phis): Set loops for the new blocks.
7698         (prune_undesirable_thread_requests): Removed.
7699         (redirect_edges): Do not pretend that redirect_edge_and_branch can
7700         create new blocks.
7701         (thread_block): Do not call prune_undesirable_thread_requests.
7702         Update loops.
7703         (mark_threaded_blocks): Select edges to thread here.
7704         (thread_through_all_blocks): Take may_peel_loop_headers argument.
7705         Thread edges through loop headers independently.
7706         * cfgloopmanip.c (create_preheader, mfb_keep_just): Export.
7707         * tree-pass.h (TODO_mark_first_instance): New.
7708         (first_pass_instance): Declare.
7709         * cfghooks.c (duplicate_block): Put the block to the original loop
7710         if copy is not specified.
7711         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Preserve loops through
7712         jump threading.  Pass may_peel_loop_headers to
7713         thread_through_all_blocks according to first_pass_instance.
7714         * cfgloop.h (create_preheader): Declare.
7715         * tree-flow.h (thread_through_all_blocks): Declaration changed.
7716         * basic-block.h (mfb_keep_just, mfb_kj_edge): Declare.
7717         * passes.c (first_pass_instance): New variable.
7718         (next_pass_1): Set TODO_mark_first_instance.
7719         (execute_todo): Set first_pass_instance.
7720
7721 2007-05-17  Uros Bizjak  <ubizjak@gmail.com>
7722
7723         PR tree-optimization/24659
7724         * optabs.h (enum optab_index): Add OTI_vec_unpacks_float_hi,
7725         OTI_vec_unpacks_float_lo, OTI_vec_unpacku_float_hi,
7726         OTI_vec_unpacku_float_lo, OTI_vec_pack_sfix_trunc and
7727         OTI_vec_pack_ufix_trunc.
7728         (vec_unpacks_float_hi_optab): Define new macro.
7729         (vec_unpacks_float_lo_optab): Ditto.
7730         (vec_unpacku_float_hi_optab): Ditto.
7731         (vec_unpacku_float_lo_optab): Ditto.
7732         (vec_pack_sfix_trunc_optab): Ditto.
7733         (vec_pack_ufix_trunc_optab): Ditto.
7734         * genopinit.c (optabs): Implement vec_unpack[s|u]_[hi|lo]_optab
7735         and vec_pack_[s|u]fix_trunc_optab using
7736         vec_unpack[s|u]_[hi\lo]_* and vec_pack_[u|s]fix_trunc_* patterns
7737         * tree-vectorizer.c (supportable_widening_operation): Handle
7738         FLOAT_EXPR and CONVERT_EXPR.  Update comment.
7739         (supportable_narrowing_operation): New function.
7740         * tree-vectorizer.h (supportable_narrowing_operation): Prototype.
7741         * tree-vect-transform.c (vectorizable_conversion): Handle
7742         (nunits_in == nunits_out / 2) and (nunits_out == nunits_in / 2) cases.
7743         (vect_gen_widened_results_half): Move before vectorizable_conversion.
7744         (vectorizable_type_demotion): Call supportable_narrowing_operation()
7745         to check for target support.
7746         * optabs.c (optab_for_tree_code) Return vec_unpack[s|u]_float_hi_optab
7747         for VEC_UNPACK_FLOAT_HI_EXPR, vec_unpack[s|u]_float_lo_optab
7748         for VEC_UNPACK_FLOAT_LO_EXPR and vec_pack_[u|s]fix_trunc_optab
7749         for VEC_PACK_FIX_TRUNC_EXPR.
7750         (expand_binop): Special case mode of the result for
7751         vec_pack_[u|s]fix_trunc_optab.
7752         (init_optabs): Initialize vec_unpack[s|u]_[hi|lo]_optab and
7753         vec_pack_[u|s]fix_trunc_optab.
7754
7755         * tree.def (VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR,
7756         VEC_PACK_FIX_TRUNC_EXPR): New tree codes.
7757         * tree-pretty-print.c (dump_generic_node): Handle
7758         VEC_UNPACK_FLOAT_HI_EXPR, VEC_UNPACK_FLOAT_LO_EXPR and
7759         VEC_PACK_FIX_TRUNC_EXPR.
7760         (op_prio): Ditto.
7761         * expr.c (expand_expr_real_1): Ditto.
7762         * tree-inline.c (estimate_num_insns_1): Ditto.
7763         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
7764
7765         * config/i386/sse.md (vec_unpacks_float_hi_v8hi): New expander.
7766         (vec_unpacks_float_lo_v8hi): Ditto.
7767         (vec_unpacku_float_hi_v8hi): Ditto.
7768         (vec_unpacku_float_lo_v8hi): Ditto.
7769         (vec_unpacks_float_hi_v4si): Ditto.
7770         (vec_unpacks_float_lo_v4si): Ditto.
7771         (vec_pack_sfix_trunc_v2df): Ditto.
7772
7773         * doc/c-tree.texi (Expression trees) [VEC_UNPACK_FLOAT_HI_EXPR]:
7774         Document.
7775         [VEC_UNPACK_FLOAT_LO_EXPR]: Ditto.
7776         [VEC_PACK_FIX_TRUNC_EXPR]: Ditto.
7777         * doc/md.texi (Standard Names) [vec_pack_sfix_trunc]: Document.
7778         [vec_pack_ufix_trunc]: Ditto.
7779         [vec_unpacks_float_hi]: Ditto.
7780         [vec_unpacks_float_lo]: Ditto.
7781         [vec_unpacku_float_hi]: Ditto.
7782         [vec_unpacku_float_lo]: Ditto.
7783
7784 2007-05-16  Uros Bizjak  <ubizjak@gmail.com>
7785
7786         * soft-fp/README: Update for new files.
7787         * soft-fp/floattisf.c: New file.
7788         * soft-fp/floattidf.c: New file.
7789         * soft-fp/floattitf.c: New file.
7790         * soft-fp/floatuntisf.c: New file.
7791         * soft-fp/floatuntidf.c: New file.
7792         * soft-fp/floatuntitf.c: New file.
7793         * soft-fp/fixsfti.c: New file.
7794         * soft-fp/fixdfti.c: New file.
7795         * soft-fp/fixtfti.c: New file.
7796         * soft-fp/fixunssfti.c: New file.
7797         * soft-fp/fixunsdfti.c: New file.
7798         * soft-fp/fixunstfti.c: New file.
7799         * soft-fp/extendxftf.c: New file.
7800         * soft-fp/trunctfxf.c: New file.
7801
7802         * libgcc-std.ver (__extendxftf2): Added to GCC_4.3.0 section.
7803         (__trunctfxf2): Ditto.
7804
7805         * config/i386/libgcc-x86_64-glibc.ver (__addtf3, __divtf3, __eqtf2,
7806         __extenddftf2, __extendsftf2, __fixtfdi, __fixtfsi, __fixtfti,
7807         __fixunstfdi, __fixunstfsi, __fixunstfti, __floatditf, __floatsitf,
7808         __floattitf, __floatunditf, __floatunsitf, __floatuntitf, __getf2,
7809         __letf2, __multf3, __negtf2, __subtf3, __trunctfdf2, __trunctfsf2,
7810         __unordtf2): Exclude and add to GCC_4.3.0 section for x86_64 targets.
7811
7812         * config/i386/t-fprules-softfp64: New file.
7813         * config/i386/sfp-machine.h: New file.
7814         * config.gcc (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu,
7815         x86_64-*-knetbsd*-gnu): Add i386/t-fprules-softfp64
7816         and soft-fp/t-softfp to tmake_file.
7817         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
7818         i[34567]86-*-knetbsd*-gnu): Ditto for --enable-targets=all.
7819
7820         * config/i386/t-linux64 (softfp_wrap_start): New.
7821         (softfp_wrap_end): New.
7822         * config/i386/i386.c (ix86_scalar_mode_supported): TFmode is
7823         supported for TARGET_64BIT.
7824
7825 2007-05-16  Rafael Avila de Espindola  <espindola@google.com>
7826
7827         * c-common.c (c_common_signed_or_unsigned_type): Emulate
7828         c_common_unsigned_type behavior.
7829
7830 2007-05-16  Paolo Bonzini  <bonzini@gnu.org>
7831
7832         * config/i386/i386.c (legitimize_tls_address): Mark __tls_get_addr
7833         calls as pure.
7834
7835 2007-05-16  Eric Christopher  <echristo@apple.com>
7836
7837         * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register
7838         saving after stack push. Set sp_offset whenever we push.
7839         (rs6000_emit_epilogue): Move altivec register restore before
7840         stack push.
7841
7842 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
7843
7844         * configure.ac: Allow sysroots to be relocated under $prefix as
7845         well as $exec_prefix.
7846         * configure: Regenerate.
7847
7848 2007-05-16  Richard Sandiford  <richard@codesourcery.com>
7849
7850         Revert:
7851
7852         2007-05-12  Richard Sandiford  <richard@codesourcery.com>
7853
7854         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
7855         (gcc_tooldir): Likewise.
7856         * configure: Regenerate.
7857         * Makefile.in (libsubdir_to_prefix): New variable, based on the
7858         old configure.ac gcc_tooldir setting.
7859         (prefix_to_exec_prefix): New variable.
7860         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
7861         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
7862
7863 2007-05-14  Janis Johnson  <janis187@us.ibm.com>
7864
7865         * c-typeck.c (build_binary_op): Return early for error.
7866
7867 2007-05-15  Zdenek Dvorak  <dvorakz@suse.cz>
7868
7869         * tree-ssa-loop-niter.c (record_estimate): Use GGC_NEW to allocate
7870         struct nb_iter_bound.
7871         (free_numbers_of_iterations_estimates_loop): Use ggc_free.
7872         * gengtype.c (open_base_files): Add cfhloop.h to the list of includes.
7873         * cfgloopmanip.c (place_new_loop): Vector larray is gc-allocated.
7874         * tree-scalar-evolution.c: Include gt-tree-scalar-evolution.h.
7875         (struct scev_info_str, scalar_evolution_info): Add GTY markers.
7876         (new_scev_info_str): Use GGC_NEW to allocate struct scev_info_str.
7877         (del_scev_info): Use ggc_free.
7878         (scev_initialize): Allocate scalar_evolution_info in gc memory.
7879         * loop-init.c: Include ggc.h.
7880         (loop_optimizer_init): Use GGC_CNEW to allocate struct loops.
7881         (loop_optimizer_finalize): Use ggc_free.
7882         * tree-ssa-loop.c (pass_tree_unswitch, pass_vectorize,
7883         pass_linear_transfom, pass_empty_loop, pass_complete_unroll,
7884         pass_iv_optimize): Add TODO_ggc_collect.
7885         * function.h (struct function): Remove skip marker from
7886         x_current_loops.
7887         * cfgloop.c: Include ggc.h.
7888         (flow_loops_free, flow_loop_free): Free the loop descriptions in gc
7889         memory.
7890         (establish_preds): Vector superloops is gc allocated.
7891         (alloc_loop): Allocate loop using GGC_CNEW.  Allocate head of
7892         loop->exits list.
7893         (flow_loops_find): Vector larray is gc allocated.
7894         (loop_exit_free): Use ggc_free.
7895         (rescan_loop_exit): Use GGC_NEW to allocate struct loop_exit.  Reflect
7896         that head of exits list is now not a part of struct loop.
7897         (record_loop_exits): Allocate exits table in gc memory.
7898         (get_loop_exit_edges, verify_loop_structure, single_exit): Reflect
7899         that head of exits list is now not a part of struct loop.
7900         * cfgloop.h (struct lpt_decision, struct nb_iter_bound,
7901         struct loop_exit): Add GTY marker.
7902         (struct loop): Add GTY marker.  Make superloops vector gc allocated.
7903         Add skip marker to aux field.  Make head of exits list a separate
7904         object.
7905         (struct loops): Add GTY marker.  Make larray vector gc allocated.
7906         Add param marker to exits table.
7907         (get_loops): Type changed.
7908         * Makefile.in (tree-scalar-evolution.o): Add
7909         gt-tree-scalar-evolution.h dependency.
7910         (cfgloop.o, loop-init.o): Add ggc.h dependency.
7911         (GTFILES): Add cfgloop.h and tree-scalar-evolution.c.
7912         * basic-block.h (struct basic_block_def): Remove skip marker from
7913         loop_father field.
7914
7915 2007-05-14  Uros Bizjak  <ubizjak@gmail.com>
7916
7917         * builtins.c (expand_builtin_mathfn): Use EXPAND_NORMAL instead
7918         of 0 in the call to expand_expr().
7919         (expand_builtin_mathfn_3): Ditto.
7920         (expand_builtin_interclass_mathfn): Ditto.
7921         (expand_builtin_cexpi): Ditto.
7922         (expand_builtin_int_roundingfn): Ditto.
7923         (expand_builtin_int_roundingfn_2): Ditto.
7924         (expand_builtin_pow): Ditto.
7925         (expand_builtin_powi): Ditto.
7926         (expand_builtin_bswap): Ditto.
7927         (expand_builtin_unop): Ditto.
7928         (expand_builtin_fabs): Ditto.
7929         (get_builtin_sync_mem): Use NULL_RTX instead of NULL in
7930         the call to expand_expr().
7931         (expand_builtin_sync_operation): Ditto.
7932         (expand_builtin_compare_and_swap): Ditto.
7933         (expand_builtin_lock_test_and_set): Ditto.
7934         * except.c (expand_builtin_eh_return_data_regno): Use EXPAND_NORMAL
7935         instead of 0 in the call to expand_expr().
7936         (expand_builtin_extract_return_addr): Ditto.
7937         (expand_builtin_eh_return): Ditto.
7938         (expand_eh_return): Ditto.
7939         * explow.c (expr_size): Ditto.
7940         * expr.c (optimize_bitfield_assignment_op): Ditto.
7941         (expand_assignement): Ditto.
7942         (store_expr): Ditto.
7943         (store_field): Ditto.
7944         (expand_expr_addr_expr_1): Use NULL_RTX instead of NULL in
7945         the call to expand_expr().
7946         (expand_expr_real_1) [COMPLEX_CST]: Use EXPAND_NORMAL instead of 0
7947         in the call to expand_expr().
7948         [CONSTRUCTOR, PLUS_EXPR, MINUS_EXPR, NEGATE_EXPR, ABS_EXPR,
7949         BIT_NOT_EXPR, LSHIFT_EXPR, LT_EXPR, TRUTH_NOT_EXPR]: Ditto.
7950         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO]: Use expand_normal() instead
7951         of expand_expr().
7952         * optabs.c (expand_vec_shift_expr): Ditto.
7953         (expand_vec_cond_expr): Ditto.
7954         (vector_compare_rtx): Use EXPAND_STACK_PARM instead of 1 in the
7955         call to expand_expr().
7956         * stmt.c (expand_return): Use EXPAND_NORMAL instead of 0
7957         in the call to expand_expr().
7958
7959 2007-05-14  Dave Korn  <dave.korn@artimi.com>
7960
7961         * genautomata.c (gen_regexp_el):  Allocate correct size for regexp.
7962
7963 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
7964
7965         * c-common.c (warnings_for_convert_and_check): Use unsigned_type_for
7966         instead of c_common_unsigned_type.
7967         (c_common_unsigned_type): Remove.
7968         (shorten_compare): Use c_common_signed_or_unsigned_type instead of
7969         c_common_unsigned_type.
7970         (c_common_nodes_and_builtins): Use unsigned_type_for instead of
7971         c_common_unsigned_type.
7972         * c-common.h (c_common_unsigned_type): Remove.
7973         * c-decl.c (grokdeclarator): Use unsigned_type_for instead of
7974         c_common_unsigned_type.
7975         * c-format.c (check_format_types): Use unsigned_type_for instead of
7976         c_common_unsigned_type.
7977         * c-objc-common.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7978         * c-typeck.c (convert_for_assignment): Use unsigned_type_for instead
7979         of c_common_unsigned_type.
7980         * convert.c (convert_to_integer): Use unsigned_type_for instead of
7981         lang_hooks.types.unsigned_type.
7982         * expmed.c (make_tree): Use unsigned_type_for instead of
7983         lang_hooks.types.unsigned_type.
7984         * fold-const.c (fold_negate_expr): Use unsigned_type_for instead of
7985         lang_hooks.types.unsigned_type.
7986         (build_range_check): Likewise.
7987         (fold_unary): Likewise.
7988         (fold_binary): Likewise.
7989         (fold_ternary): Likewise.
7990         * langhooks-def.h (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7991         * langhooks.h (lang_hooks_for_types): Remove unsigned_type.
7992         * tree.c (get_unsigned_type): New.
7993         (unsigned_type_for): Use get_unsigned_type instead of
7994         lang_hooks.types.unsigned_type.
7995
7996 2007-05-14  Kazu Hirata  <kazu@codesourcery.com>
7997
7998         * config/m68k/m68k-protos.h: Rename m68k_interrupt_function_p
7999         to m68k_get_function_kind.  Update its prototype.
8000         * config/m68k/m68k.c (m68k_attribute_table): Add an entry for
8001         interrupt_thread.
8002         (m68k_interrupt_function_p): Return enum m68k_function_type
8003         instead of bool.  Rename to m68k_get_function_kind.
8004         (m68k_handle_fndecl_attribute): Reject interrupt_thread if the
8005         target is not fido.
8006         (m68k_compute_frame_layout): Don't mark any register for save
8007         if an interrupt_thread attribute is specified.
8008         (m68k_hard_regno_rename_ok): Update a use of
8009         m68k_interrupt_function_p.
8010         * config/m68k/m68k.h (EPILOGUE_USES): Update a use of
8011         m68k_interrupt_function_p.
8012         (m68k_function_type): New.
8013         * config/m68k/m68k.md (*return): Output a 'sleep' instruction
8014         for a function with an interrupt_thread attribute.
8015         * doc/extend.texi: Document the interrupt_thread attribute.
8016
8017 2007-05-13  Daniel Berlin  <dberlin@dberlin.org>
8018
8019         Fix PR tree-optimization/31911
8020         * tree-ssa-pre.c (phi_translate): Make sure to cache results even
8021         if they didn't change the expression.
8022
8023 2007-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
8024
8025         * tree-scalar-evolution.c (resolve_mixers): Exported.
8026         * tree-scalar-evolution.h (resolve_mixers): Declare.
8027         * tree-data-ref.c (object_analysis, ptr_decl_may_alias_p,
8028         ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p,
8029         record_record_differ_p, record_array_differ_p, array_ptr_differ_p,
8030         base_object_differ_p, base_addr_differ_p, analyze_array_indexes,
8031         init_array_ref, init_pointer_ref, analyze_indirect_ref,
8032         strip_conversion, analyze_offset_expr, address_analysis,
8033         object_analysis, analyze_offset): Removed.
8034         (dr_analyze_innermost, dr_analyze_indices, dr_analyze_alias,
8035         split_constant_offset, canonicalize_base_object_address,
8036         object_address_invariant_in_loop_p, disjoint_objects_p,
8037         dr_may_alias_p, dr_address_invariant_p): New functions.
8038         (create_data_ref): Use dr_analyze_innermost, dr_analyze_indices
8039         and dr_analyze_alias.
8040         (initialize_data_dependence_relation): Use dr_may_alias_p
8041         and object_address_invariant_in_loop_p.
8042         (compute_self_dependence): Handle the case when
8043         DDR_ARE_DEPENDENT (ddr) is chrec_dont_know.
8044         (find_data_references_in_stmt): Restrict the analysis of data
8045         references to the given loop nest.
8046         (find_data_references_in_loop): Made static.  Pass loop nest to
8047         find_data_references_in_stmt.
8048         (compute_data_dependences_for_loop): Use DR_VOPS.
8049         (free_data_ref): Free DR_VOPS.
8050         * tree-data-ref.h (struct first_location_in_loop): Replaced by ...
8051         (struct innermost_loop_behavior): ... new.
8052         (struct base_object_info): Replaced by ...
8053         (struct indices): ... new.
8054         (struct dr_alias): New.
8055         (enum data_ref_type): Removed.
8056         (struct data_reference): Consist of struct innermost_loop_behavior,
8057         struct indices and struct dr_alias.
8058         (DR_SET_ACCESS_FNS, DR_FREE_ACCESS_FNS): Removed.
8059         (DR_MEMTAG): Renamed to ...
8060         (DR_SYMBOL_TAG): ... this.
8061         (find_data_references_in_loop): Declaration removed.
8062         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use DR_INIT
8063         instead of DR_OFFSET_MISALIGNMENT.  DR_ALIGNED_TO is never NULL.
8064         (vect_analyze_data_refs): Use DR_SYMBOL_TAG instead of DR_MEMTAG.
8065         * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto.
8066
8067 2007-05-13  Revital Eres  <eres@il.ibm.com>
8068
8069         * tree-ssa-dse.c (get_use_of_stmt_lhs): New function
8070         which walks virtual def-use chains to find redundant stores.
8071         (dse_optimize_stmt): Call it.
8072
8073 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
8074
8075         * gcse.c (gcse_main): Do jump bypassing in CPROP2.
8076         * passes.c (init_optimization_passes): Move pass_jump_bypass
8077         after loop2.
8078
8079         * basic-block.h (bb_has_eh_pred): Fix style issue.
8080
8081 2007-05-12  Steven Bosscher  <steven@gcc.gnu.org>
8082
8083         PR rtl-optimization/31848
8084         * loop-invariant.c (move_invariant_reg): If we move an insn
8085         with a REG_EQUAL note, and that insn is not always executed,
8086         remove the REG_EQUAL note.
8087
8088 2007-05-12  Richard Guenther  <rguenther@suse.de>
8089
8090         PR tree-optimization/31797
8091         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
8092         propagate into a stmt that has volatile ops.
8093
8094 2007-05-12  Richard Sandiford  <richard@codesourcery.com>
8095
8096         * configure.ac (gcc_gxx_include_dir): Use $(libsubdir_to_prefix).
8097         (gcc_tooldir): Likewise.
8098         * configure: Regenerate.
8099         * Makefile.in (libsubdir_to_prefix): New variable, based on the
8100         old configure.ac gcc_tooldir setting.
8101         (prefix_to_exec_prefix): New variable.
8102         (DRIVER_DEFINES): Use $(libsubdir_to_prefix)$(prefix_to_exec_prefix)
8103         rather than $(unlibsubdir)/../ to derive TOOLDIR_BASE_PREFIX.
8104
8105 2007-05-11  Silvius Rus  <rus@google.com>
8106
8107         * Makefile.in (OBJS-common): Add tree-ssa-alias-warnings.o.
8108         * c-common.c (strict_aliasing_warning): Modify -Wstrict-aliasing logic.
8109         * c-common.h (strict_aliasing_warning): Change return type.
8110         * c-opts.c (c_common_handle_option): Add call to set_Wstrict_aliasing.
8111         * c-typeck.c (build_indirect_ref): Add call to strict_aliasing_warning.
8112         (build_c_cast): Condition call to strict_aliasing_warning.
8113         * doc/invoke.texi: Update description of -Wstrict-aliasing[=n].
8114         * flags.h (set_Wstrict_aliasing): Declare.
8115         * opts.c (set_Wstrict_alising): Define, add call to.
8116         * tree-flow.h (strict_aliasing_warning_backend): Declare.
8117         * tree-ssa-alias-warnings.c: New file.
8118         * tree-ssa-alias.c (compute_may_aliases): Add call to
8119         strict_aliasing_warning_backend.
8120
8121 2007-05-11  Zdenek Dvorak  <dvorakz@suse.cz>
8122
8123         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
8124         Use loop_depth and loop_outer accessor functions.
8125         * tree-ssa-loop-im.c (outermost_invariant_loop, set_level,
8126         determine_invariantness_stmt, move_computations_stmt): Ditto.
8127         * cfgloopmanip.c (fix_bb_placement, fix_loop_placement, remove_path,
8128         add_loop, loopify, unloop, fix_loop_structure): Ditto.
8129         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Ditto.
8130         * tree-scalar-evolution.c (interpret_loop_phi,
8131         compute_scalar_evolution_in_loop, analyze_scalar_evolution_in_loop,
8132         instantiate_parameters_1, scev_const_prop): Ditto.
8133         * cfghooks.c (make_forwarder_block): Ditto.
8134         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
8135         * modulo-sched.c (loop_canon_p): Ditto.
8136         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
8137         slpeel_can_duplicate_loop_p): Ditto.
8138         * lambda-code.c (invariant_in_loop_and_outer_loops): Ditto.
8139         * tree-cfg.c (tree_duplicate_sese_region): Ditto.
8140         * cfgloop.c (flow_loop_dump, flow_loop_nodes_find, rescan_loop_exit,
8141         cancel_loop, verify_loop_structure): Ditto.
8142         (flow_loop_nested_p, superloop_at_depth, flow_loop_free,
8143         add_bb_to_loop, remove_bb_from_loops, find_common_loop): Use the
8144         superloops vector instead of "pred" array.
8145         (establish_preds): Take father loop as an argument.  Initialize the
8146         superloops vector.
8147         (flow_loop_tree_node_add): Pass father loop to establish_preds.
8148         Do not initialize loop->outer.
8149         (flow_loop_tree_node_remove): Truncate the superloops vector.
8150         * cfgloop.h (struct loop): Removed field "outer", fields "depth" and
8151         "pred" merged to "superloops" vector.
8152         (loop_depth, loop_outer): New.
8153         (fel_init): Use loop_outer.
8154
8155 2007-05-11  Jan Hubicka  <jh@suse.cz>
8156
8157         * cgraphunit.c: Include gt-cgraphunit.h
8158         (static_ctors, static_dtors): New static vars.
8159         (record_cdtor_fn, build_cdtor, cgraph_build_cdtor_fns): New functions,
8160         based on implementation in c-common.c
8161         (cgraph_finalize_function): Call record_cdtor_fn.
8162         (cgraph_optimize): Call cgraph_build_cdtor_fns.
8163         * decl.c (finish_function): Do not call c_record_cdtor_fn.
8164         (c_write_global_declarations): Do not call c_build_cdtor_fns.
8165         * c-common.c (static_ctors, static_dtors, c_record_cdtor_fn,
8166         build_cdtor, c_build_cdtor_fns): Remove.
8167         * c-common.h (static_ctors, static_dtors, c_record_cdtor_fn,
8168         c_build_cdtor_fns): Remove prototype.
8169
8170 2007-05-11  Paolo Carlini  <pcarlini@suse.de>
8171
8172         PR other/31852
8173         * builtin-types.def: Add BT_FN_PTR_CONST_PTR_INT_SIZE.
8174         * builtins.def: Add BUILT_IN_MEMCHR, use the latter.
8175         * builtins.c (fold_builtin_memchr): New.
8176         (expand_builtin_memchr): Call the latter.
8177         (expand_builtin, fold_builtin_3): Deal with BUILT_IN_MEMCHR.
8178         * doc/extend.texi ([Other built-in functions provided by GCC]):
8179         Document memchr.
8180
8181 2007-05-11  Andreas Krebbel  <krebbel1@de.ibm.com>
8182
8183         * config/s390/s390.md (GPR0_REGNUM, FPR0_REGNUM, FPR2_REGNUM,
8184         PFPO_CONVERT, PFPO_OP_TYPE_SF, PFPO_OP_TYPE_DF, PFPO_OP_TYPE_TF,
8185         PFPO_OP_TYPE_SD, PFPO_OP_TYPE_DD, PFPO_OP_TYPE_TD, PFPO_OP0_TYPE_SHIFT,
8186         PFPO_OP1_TYPE_SHIFT): Constants added.
8187         (DFP_ALL): Mode macro defined.
8188         ("*trunc<BFP:mode><DFP_ALL:mode>2", "*trunc<DFP_ALL:mode><BFP:mode>2",
8189         "*extend<BFP:mode><DFP_ALL:mode>2", "*extend<DFP_ALL:mode><BFP:mode>2"):
8190         Insn definitions added.
8191         ("trunc<BFP:mode><DFP_ALL:mode>2", "trunc<DFP_ALL:mode><BFP:mode>2",
8192         "extend<BFP:mode><DFP_ALL:mode>2", "extend<DFP_ALL:mode><BFP:mode>2"):
8193         Expanders added.
8194
8195 2007-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
8196
8197         PR tree-optimization/31885
8198         * tree-chrec.c (chrec_contains_undetermined): Do not consider
8199         NULL_TREE to be undetermined.
8200         (automatically_generated_chrec_p): Return false for NULL.
8201
8202 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
8203
8204         * config/bfin/bfin.h (MOVE_RATIO): Define.
8205
8206 2007-05-10  Richard Sandiford  <richard@codesourcery.com>
8207
8208         * config.gcc (sparc-wrs-vxworks): New target.
8209         * config/sparc/vxworks.h, config/sparc/t-vxworks: New files.
8210         * config/sparc/sparc-protos.h (sparc_emit_call_insn): Declare.
8211         * config/sparc/sparc.h: Include vxworks-dummy.h.
8212         (PRINT_OPERAND_ADDRESS): Extend SYMBOL_REF handling to
8213         include LABEL_REFs too.
8214         * config/sparc/sparc.c (sparc_expand_move): Don't assume that
8215         _GLOBAL_OFFSET_TABLE_ - label_ref is a link-time constant on
8216         VxWorks.
8217         (legitimize_pic_address): Handle LABEL_REFs like SYMBOL_REFs
8218         on VxWorks.
8219         (load_pic_register): Use gen_vxworks_load_got for VxWorks.
8220         (sparc_emit_call_insn): New function.
8221         (sparc_function_ok_for_sibcall): Restrict sibcalls to locally-binding
8222         functions when generating VxWorks PIC.
8223         * config/sparc/sparc.md (vxworks_load_got): New pattern.
8224         (call, call_value): Use sparc_emit_call_insn instead of
8225         emit_call_insn.
8226
8227 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
8228
8229         * config/xtensa/xtensa.c (xtensa_output_literal): Don't use #if.
8230
8231 2007-05-09  Bob Wilson  <bob.wilson@acm.org>
8232
8233         * config/xtensa/xtensa.c (xtensa_output_literal): Mask out high bits
8234         for floating-point values if HOST_BITS_PER_LONG > 32.  Use
8235         split_double instead of operand_subword.
8236
8237 2007-05-08  Bernd Schmidt  <bernd.schmidt@analog.com>
8238
8239         * config/bfin/bfin.h (LOCAL_ALIGNMENT): Define.
8240         * config/bfin/bfin.c (bfin_local_alignment): New function.
8241         * config/bfin/bfin-protos.h (bfin_local_alignment): Declare it.
8242
8243 2007-05-08  Chao-ying Fu  <fu@mips.com>
8244
8245         * doc/md.texi (msub@var{m}@var{n}4, usub@var{m}@var{n}4): Document.
8246         * optabs.h (OTI_smsub_widen, OTI_umsub_widen): New optab_indexes.
8247         (smsub_widen_optab, umsub_widen_optab): Define.
8248         * optabs.c (init_optabs): Initialize smsub_widen_optab and
8249         umsub_widen_optab.
8250         * genopinit.c (optabs): Fill in smsub_widen_optab and
8251         umsub_widen_optab.
8252         * expr.c (expand_expr_real_1): Try to use smsub_widen_optab
8253         and umsub_widen_optab to implement multiply-subtract sequences.
8254         * config/mips/mips.md (*msac<u>_di): Rename to...
8255         (<u>msubsidi4): ...this.  Extend condition to include
8256         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
8257         of operand 0 to "ka" and use the three-operand form of msub<u>
8258         for TARGET_DSPR2.
8259         * config/mips/mips-dspr2.md (mips_msub, mips_msubu): Convert
8260         to define_expands.
8261
8262 2007-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8263
8264         PR rtl-optimization/28011
8265         * reload.c (push_reload): Set dont_share if IN appears in OUT
8266         also when IN is a PLUS rtx.
8267         (reg_overlap_mentioned_for_reload_p): Return true if X and IN
8268         are same PLUS rtx.
8269
8270 2007-05-08  Kazu Hirata  <kazu@codesourcery.com>
8271
8272         * emit-rtl.c (unshare_all_rtl_1): Don't copy DECL_RTL.  Don't
8273         call unshare_all_decls.
8274         (unshare_all_rtl): Adjust the call to unshare_all_rtl_1.
8275         (unshare_all_decls): Remove.
8276
8277 2007-05-08  Simon Martin  <simartin@users.sourceforge.net>
8278
8279         PR 31847
8280         * tree-dump.c (dump_options): Don't use TDF_DIAGNOSTIC in "*-all" tree
8281         dumps.
8282
8283 2007-05-08  Sandra Loosemore  <sandra@codesourcery.com>
8284             Nigel Stephens  <nigel@mips.com>
8285
8286         * config/mips/mips.h (MAX_FPRS_PER_FMT): Renamed from FP_INC.
8287         Update comments and all uses.
8288         (MIN_FPRS_PER_FMT): Define.
8289         * config/mips/mips.c (function_arg): Fix to correctly handle
8290         the -mips32r2 -mfp64 -mabi=32 case.
8291         (override_options): Enable use of odd-numbered registers for
8292         SFmode values on MIPS32.
8293         (mips_save_reg_p): Save whole floating-point register pair if
8294         either half is used.
8295         (compute_frame_size): Fix comment.
8296
8297 2007-05-08  Jie Zhang  <jie.zhang@analog.com>
8298
8299         * config/bfin/bfin-protos.h (bfin_expand_epilogue): Add a third
8300         argument of type bool.
8301         * config/bfin/bfin.c (add_to_reg): Add epilogue_p as a fourth
8302         argument. Safely select temporary P register according to it.
8303         (do_link): Change call site of add_to_reg accordingly.
8304         (do_unlink): Add epilogue_p as a fourth argument and pass it
8305         to add_to_reg.
8306         (expand_interrupt_handler_epilogue): Change call of do_unlink
8307         accordingly.
8308         (bfin_expand_prologue): Add a third argument sibcall_p.
8309         * config/bfin/bfin.md (epilogue): Change call of
8310         bfin_expand_epilogue accordingly.
8311         (sibcall_epilogue): Likewise.
8312         (eh_return_internal): Likewise.
8313
8314         * config/bfin/bfin-protos.h (enum bfin_cpu): Add
8315         BFIN_CPU_BF534, BFIN_CPU_BF536 and BFIN_CPU_BF561.
8316         * config/bfin/bfin.c (bfin_handle_option): Handle
8317         -mcpu=bf534, -mcpu=bf536 and -mcpu=bf561.
8318         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS):
8319         Support bf534, bf536 and bf561.
8320         * doc/invoke.texi (Blackfin Options): Document -mcpu and -msim.
8321
8322 2007-05-08  Uros Bizjak  <ubizjak@gmail.com>
8323
8324         PR target/31854
8325         * config/i386/i386.c (ix86_function_regparm): Process local
8326         functions only when TREE_CODE (decl) equals FUNCTION_DECL.
8327
8328 2007-05-07  Mike Stump  <mrs@apple.com>
8329
8330         * doc/invoke.texi (Warning Options): Document that -Wempty-body
8331         also checks for and while statements in C++.
8332
8333 2007-05-07  Nathan Froyd  <froydnj@codesourcery.com>
8334
8335         * gcc.c (at_file_supplied): New variable.
8336         (main): Set it if we expanded argv.
8337         (do_spec_1): Pass an @-file to the linker if we were called with
8338         an @-file argument and HAVE_GNU_LD.
8339         * collect2.c (at_file_supplied): New variable.
8340         (response_file): New variable.
8341         (collect_exit): Unlink response_file if necessary.
8342         (handler): Likewise.
8343         (do_wait): Likewise.
8344         (main): Set at_file_supplied if we expanded argv.
8345         (collect_execute): Pass an @-file to subprocesses if we were called
8346         with an @-file argument.
8347         * configure.ac: Add define for HAVE_GNU_LD.
8348         * configure: Regenerate.
8349         * config.in: Regenerate.
8350
8351 2007-05-07  Naveen.H.S  <naveen.hs@kpitcummins.com>
8352
8353         * config/m32c/muldiv.md (mulhisi3_c): Limit the mode of the 2nd
8354         operand to HI mode.
8355         (mulsi3): New.
8356         (divsi3): New.
8357         (udivsi3): New.
8358
8359 2007-05-07  Jayant Sonar  <jayants@kpitcummins.com>
8360
8361         * config/m32c/m32c.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
8362         (TARGET_ENCODE_SECTION_INFO): Re-define.
8363         (m32c_encode_section_info): New
8364         (function_vector_handler): New
8365         (current_function_special_page_vector): New
8366         (m32c_special_page_vector_p): New.
8367         * config/m32c/m32c-protos.h (m32c_special_page_vector_p):
8368         Prototype.
8369         * config/m32c/jump.md: Added instruction JSRS for functions
8370         with attribute "function_vector".
8371         * doc/extend.texi (function_vector): Added description
8372         for M16C, M32C targets.
8373
8374 2007-05-07  DJ Delorie  <dj@redhat.com>
8375
8376         PR 31794
8377         * config/m32c/shift.md (ashlpsi3_i, ashrpsi3_i, ashlpsi3,
8378         ashrpsi3, lshrpsi3): Update shift count constraint.
8379
8380 2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
8381             Nathan Froyd  <froydnj@codesourcery.com>
8382
8383         PR 22133
8384         * c-incpath.c (add_path): Strip trailing path separators.
8385
8386 2007-05-07  Eric Botcazou  <ebotcazou@adacore.com>
8387
8388         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Reset cfg_altered.
8389         Free dominance info before purging EH edges.
8390         (eliminate_degenerate_phis): Likewise.
8391         (propagate_rhs_into_lhs): Set cfg_altered to true instead of 1.
8392
8393 2007-05-07  Jan Hubicka  <jh@suse.cz>
8394
8395         * gimplify.c (gimplify_expr): Do not crash when folding
8396         (void *)(int)&a + 4.
8397
8398 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8399
8400         PR driver/31694
8401         * c-opts.c (lang_fortran): Make it non static.
8402         * c-common.h (lang_fortran): New prototype.
8403         * c-cppbuiltin.c (c_cpp_builtins): Create a __GFORTRAN__ if the
8404         -lang-fortran option was passed by the driver.
8405
8406 2007-05-06  Eric Botcazou  <ebotcazou@adacore.com>
8407
8408         * timevar.c (timevar_print): Test ENABLE_ASSERT_CHECKING instead
8409         of ASSERT_CHECKING.  Tweak message.
8410
8411 2007-05-06  Revital Eres  <eres@il.ibm.com>
8412
8413         PR 30957
8414         * loop-unroll.c (insert_var_expansion_initialization):
8415         Initialize the expansions with -zero instead of +zero.
8416
8417 2007-05-05  Aurelien Jarno  <aurelien@aurel32.net>
8418
8419         * config/pa/pa.md: Split tgd_load, tld_load and tie_load
8420         into pic and non-pic versions. Mark r19 as used for
8421         tgd_load_pic, tld_load_pic and tie_load_pic. Mark r27 as used
8422         for tgd_load, tld_load and tie_load .
8423         * config/pa/pa.c (legitimize_tls_address): Emit pic or non-pic
8424         version of tgd_load, tld_load and tie_load depending on the
8425         value of flag_pic.
8426
8427 2007-05-04  Ulrich Drepper  <drepper@redhat.com>
8428             Jakub Jelinek  <jakub@redhat.com>
8429
8430         * crtstuff.c (HIDDEN_DTOR_LIST_END): New macro.
8431         (__do_global_dtors_aux): Use more paranoid loop to run
8432         destructors if HIDDEN_DTOR_LIST_END.
8433         (__DTOR_END__): Export as a hidden symbol when HIDDEN_DTOR_LIST_END.
8434
8435 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
8436
8437         * varasm.c (align_variable): Don't increase alignment for
8438         DECL_THREAD_LOCAL_P variables above BITS_PER_WORD through
8439         DATA_ALIGNMENT or CONSTANT_ALIGNMENT.
8440
8441 2007-05-04  Josh Conner  <jconner@apple.com>
8442
8443         * basic-block.h (cdi_direction): Assign values to all enumeration
8444         constants.
8445         (dom_computed): Remove.
8446         (dom_info_state): New.
8447         (set_dom_info_availability): New.
8448         * tree-ssa-loop-im.c (determine_invariantness): Initialize
8449         walk_data.dom_direction.
8450         * cfghooks.c (delete_basic_block): Use dom_info_available_p()
8451         instead of dom_computed[].
8452         (split_edge): Likewise.
8453         (create_basic_block): Likewise.
8454         (merge_blocks): Likewise.
8455         * ifcvt.c (find_if_header): Likewise.
8456         * tree-cfgcleanup.c (cleanup_tree_cfg): Likewise.
8457         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
8458         * tree-ssa.c (verify_ssa): Likewise.
8459         * tree-cfg.c (tree_verify_flow_info): Likewise.
8460         (remove_edge_and_dominated_blocks): Likewise.
8461         * dominance.c (dom_computed): Make static.
8462         (calc_dfs_tree_nonrec): Change third param to a bool.
8463         (calc_dfs_tree): Change second param to a bool.
8464         (calc_idioms): Change second param to a bool.  Use
8465         dom_convert_dir_to_idx.
8466         (init_dom_info): Validate dir before using.
8467         (dom_convert_dir_to_idx): New.
8468         (calculate_dominance_info): Use dom_convert_dir_to_idx.  New
8469         variable 'reverse' used for calling calc_dfs_tree and calc_idoms.
8470         (free_dominance_info): Use dom_convert_dir_to_idx.
8471         (get_immediate_dominator): Likewise.
8472         (set_immediate_dominator): Likewise.
8473         (get_dominated_by): Likewise.
8474         (redirect_immediate_dominators): Likewise.
8475         (nearest_common_denominator): Likewise.
8476         (dominated_by_p): Likewise.
8477         (bb_dom_dfs_in): Likewise.
8478         (bb_dom_dfs_out): Likewise.
8479         (recount_dominator): Likewise.
8480         (iterate_fix_dominators): Likewise.
8481         (add_to_dominance_info): Likewise.
8482         (delete_from_dominance_info): Likewise.
8483         (first_dom_son): Likewise.
8484         (next_dom_son): Likewise.
8485         (dom_info_available_p): Likewise.
8486         (dom_info_state): New.
8487         (set_dom_info_availability): New.
8488
8489 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
8490
8491         * config/s390/s390.md ("fix_trunc<mode>di2", "fix_trunc<mode>si2"):
8492         Expander removed.
8493         ("fix_trunc<DSF:mode><GPR:mode>2"): Expander added.
8494
8495 2007-05-04  Bob Wilson  <bob.wilson@acm.org>
8496
8497         * config/xtensa/xtensa.md (adddi3, adddi_carry): Delete.
8498         (subdi3, subdi_carry): Delete.
8499
8500 2007-05-04  Jan Hubicka  <jh@suse.cz>
8501             Richard Guenther  <rguenther@suse.de>
8502
8503         * opts.c (decode_options): Do not fiddle with inlining
8504         parameters in case of optimizing for size.
8505         * ipa-inline.c (cgraph_decide_recursive_inlining): When optimizing
8506         for size do nothing.
8507         (cgraph_decide_inlining_of_small_function): When optimizing for
8508         size never inline functions increasing caller size.
8509         (cgraph_early_inlining): Inline for size when optimizing for size.
8510
8511 2007-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
8512
8513         * config/bfin/bfin.md (<optab>di3): Now a define_expand which expands
8514         logical operations piecewise.
8515         (<optab>di_zesidi_di, <optab>di_sesidi_di, negdi2, one_cmpldi2,
8516         zero_extendsidi2, subdi_di_zesidi, subdi_zesidi_di, subdi_di_sesidi,
8517         subdi_sesidi_di): Delete.
8518         (add_with_carry): Produce carry in CC instead of a DREG to shorten
8519         the generated sequence.  Allow three-reg add in constraints.  Rewrite
8520         the rtl expression for carry to avoid zero_extend of a constant.
8521         (sub_with_carry): New pattern.
8522         (adddi3, subdi3): Change into define_expand.  For subtract, generate a
8523         different sequence not involving jumps.
8524         (notbi): Now a named pattern.
8525
8526 2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>
8527
8528         * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
8529         Add the note about a significant loss of accuracy of some
8530         mathematical routines when these options are used.
8531
8532 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
8533
8534         * haifa-sched.c (rtx_vec_t): New typedef.
8535         (contributes_to_priority_p): Extract piece of priority () into new
8536         static function.
8537         (priority): Use the function.  Add assertion.
8538         (rank_for_schedule, set_priorities): Add assertion to check that
8539         insn's priority is initialized.
8540         (clear_priorities, calc_priorities): Change signature.  Make it update
8541         all relevant insns.  Update all callers ('add_to_speculative_block ()'
8542         and 'create_block_check_twin ()').
8543         * sched-int.h (struct haifa_insn_data): Remove field 'priority_known'.
8544         Add new field 'priority_status'.
8545         (INSN_PRIORITY_STATUS): New macro.
8546         (INSN_PRIORITY_KNOWN): Change to use INSN_PRIORITY_STATUS.
8547
8548 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
8549
8550         * sched-ebb.c (debug_ebb_dependencies): New static function.
8551         (init_ready_list): Use it.
8552
8553         * sched-rgn.c (debug_dependencies): Split into 'debug_dependencies ()'
8554         with changed signature and 'debug_rgn_dependencies ()'.
8555         (debug_rgn_dependencies): New static function.
8556         (init_ready_list): Use it.
8557
8558         * sched-int.h (debug_dependencies): Declare.
8559
8560 2007-05-04  Andreas Krebbel  <krebbel1@de.ibm.com>
8561
8562         * libgcc-std.ver (__ffssi2): Added to GCC_4.3.0 section.
8563
8564 2007-05-04  Dirk Mueller  <dmueller@suse.de>
8565
8566         * c.opt(Wmain,ffreestanding): Enable for C++,ObjC++.
8567
8568 2007-05-03  Jan Hubicka  <jh@suse.cz>
8569
8570         * fold-const.c (fold_unary): Convert (T1)(X op Y) into
8571         ((T1)X op (T1)Y), for pointer type in more cases than before.
8572
8573         * gimplify.c (gimplify_expr): Fold (void *)&a + 4.
8574
8575         * tree-object-size.c (plus_expr_object_size): When operand size is
8576         unknown, return unknown.
8577
8578 2007-05-03  Dirk Mueller  <dmueller@suse.de>
8579
8580         * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove.
8581
8582         * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated
8583         options.
8584
8585         * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove.
8586
8587 2007-05-03  Janis Johnson  <janis187@us.ibm.com>
8588
8589         * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors.
8590
8591 2007-05-03  Joseph Myers  <joseph@codesourcery.com>
8592
8593         * config/soft-fp/double.h, config/soft-fp/extended.h,
8594         config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c,
8595         config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c,
8596         config/soft-fp/op-2.h, config/soft-fp/op-4.h,
8597         config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from
8598         glibc CVS.
8599
8600 2007-05-03  Ian Lance Taylor  <iant@google.com>
8601
8602         * config/rs6000/rs6000.c (rs6000_override_options): Don't set
8603         MASK_PPC_GFXOPT for 8540 or 8548.
8604
8605 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
8606
8607         * tree-vect-transform.c (vect_update_inits_of_drs): Use
8608         vect_print_dump_info() to output debug information.
8609
8610 2007-05-03  Uros Bizjak  <ubizjak@gmail.com>
8611
8612         PR target/31768
8613         * config/i386/i386.c (print_operand) ['z']: Output 'w' for
8614         operands of size 2 when operand is not MEM_P.
8615
8616 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
8617
8618         PR tree-optimization/30565
8619         * lambda-code.c (perfect_nestify): Fix updating of dominators.
8620
8621 2007-05-03  Bernd Schmidt  <bernd.schmidt@analog.com>
8622
8623         * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
8624         (umulsi3_highpart): Use them.
8625         * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
8626         for final accumulator to D regisster tranfser.
8627
8628 2007-05-03  Dorit Nuzman  <dorit@il.ibm.com>
8629
8630         PR tree-optimization/31699
8631         * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove
8632         wrong code.
8633         (vect_enhance_data_refs_alignment): Compute peel amount using
8634         TYPE_VECTOR_SUBPARTS instead of vf.
8635         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.
8636
8637 2007-05-02  Brooks Moses  <brooks.moses@codesourcery.com>
8638
8639         PR bootstrap/31776
8640         * system.h: Remove inclusion of double-int.h
8641         * tree.h: Include double-int.h
8642         * gengtype.c: Likewise
8643         * cfgloop.h: Likewise
8644         * Makefile.in: Adjust dependencies on double-int.h
8645
8646 2007-05-02  Eric Christopher  <echristo@apple.com>
8647
8648         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
8649         -shared to -Zdynamiclib.
8650
8651 2007-05-02  Seongbae Park  <seongbae.park@gmail.com>
8652
8653         PR c++/31663
8654         * c-common.c (strip_pointer_or_array_types): New function.
8655         * c-common.h (strip_pointer_or_array_types): New function declaration.
8656
8657 2007-05-03  Zdenek Dvorak  <dvorakz@suse.cz>
8658
8659         PR tree-optimization/31771
8660         * tree-cfg.c (move_block_to_fn): Assign bb to the correct index.
8661
8662 2007-05-02  Paul Brook  <paul@codesourcery.com>
8663
8664         * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.
8665
8666 2007-05-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8667
8668         PR middle-end/29715
8669         * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
8670         transformation.
8671
8672 2007-05-02  Nick Clifton  <nickc@redhat.com>
8673
8674         * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
8675
8676 2007-05-02  Richard Guenther  <rguenther@suse.de>
8677
8678         PR tree-optimization/31146
8679         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
8680         argument, single_use_p.  If we have a single use that is
8681         a conversion to the definition rhs type, propagate that rhs.
8682         (forward_propagate_addr_expr): Pass single_use_p argument
8683         to forward_propagate_addr_expr_1.
8684
8685 2007-05-01  H.J. Lu  <hongjiu.lu@intel.com>
8686
8687         * config/i386/i386.c (ix86_expand_sse_comi): Remove unused
8688         variable.
8689
8690 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8691
8692         * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
8693         'AMD Family 10 core'.
8694
8695 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8696
8697         * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3
8698         and athlon64-sse3 as improved versions of k8, opteron and athlon64
8699         with SSE3 instruction set support.
8700         * doc/invoke.texi: Likewise.
8701
8702 2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8703
8704         * config/i386/i386.c (override_options): Tuning 32-byte loop
8705         alignment for amdfam10 architecture. Increasing the max loop
8706         alignment to 24 bytes.
8707
8708 2007-05-01  Kazu Hirata  <kazu@codesourcery.com>
8709
8710         * config/m68k/constraints.md: New.
8711         * config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
8712         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
8713         EXTRA_CONSTRAINT): Remove.
8714         * config/m68k/m68k.md: Include constraints.md.
8715         * expr.c (expand_expr_real_1): Copy DECL_RTL before using it.
8716
8717 2007-05-01  Ian Lance Taylor  <iant@google.com>
8718
8719         PR tree-optimization/31739
8720         * tree-vrp.c (vrp_val_is_max): New static function.
8721         (vrp_val_is_min): New static function.
8722         (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
8723         copying the node.
8724         (set_value_range): Use vrp_val_is_{max,min}.
8725         (extract_range_from_assert): Likewise.
8726         (extract_range_from_binary_expr): Likewise.
8727         (extract_range_from_unary_expr): Likewise.
8728         (dump_value_range, vrp_meet): Likewise.
8729         (vrp_visit_phi_node): Likewise.
8730         * tree.c (build_distinct_type_copy): Revert change of 2007-04-27.
8731
8732 2007-05-01  Mark Mitchell  <mark@codesourcery.com>
8733
8734         * config/i386/gmon-sol2.c (size_t): New type.
8735         (intptr_t): Likewise.
8736         (s_textsize): Declare as size_t.
8737         (sbrk): Declare.
8738         (monstartup): Use size_t for sizes.
8739         (_mcount): Save and restore registers.
8740         (internal_mcount): Pass 0 as the first argument to monstartup
8741         in 64-bit mode.
8742         (moncontrol): Convert pointer to appropriately sized integer
8743         before passing to profil.
8744
8745 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
8746
8747         * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
8748         __NO_FPRS__, not just if _SOFT_DOUBLE.
8749         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
8750         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
8751         also for E500 double.
8752         * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
8753         suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
8754         && !TARGET_FPRS).
8755
8756 2007-05-01  Richard Guenther  <rguenther@suse.de>
8757
8758         * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
8759         is NULL.
8760
8761 2007-05-01  Joseph Myers  <joseph@codesourcery.com>
8762
8763         * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
8764
8765 2007-05-01  Jan Hubicka  <jh@suse.cz>
8766
8767         * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
8768         invariant.
8769
8770 2007-05-01  Jan Hubicka  <jh@suse.cz>
8771
8772         * tree.h (maybe_fold_offset_to_component_ref): Remove.
8773         (maybe_fold_offset_to_reference): Declare.
8774         * fold-const.c (fold_unary): Do not fold
8775         (type *)&A into &A->field_of_type_and_offset_0
8776         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
8777         size is unknown, give up.
8778         (maybe_fold_offset_to_component_ref): Ignore firelds with unknown
8779         offsets.
8780         (maybe_fold_offset_to_reference): New.
8781         (maybe_fold_stmt_indirect): Use it.
8782         (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
8783         * gimplify.c (gimplify_conversion): Canonicalize conversions to
8784         field references.
8785         (gimplify_expr): Likewise for plus_expr.
8786
8787 2007-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
8788
8789         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
8790         bsi_after_labels.  Always insert statements before bsi.
8791         * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
8792         * predict.c (apply_return_prediction): Check for empty blocks.
8793         * cfgexpand.c (lab_rtx_for_bb): New variable.
8794         (label_rtx_for_bb): Do not create new tree labels.
8795         (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
8796         (tree_expand_cfg): Initialize lab_rtx_for_bb.
8797         * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
8798         creating edges.
8799         (label_for_bb): Add field used.
8800         (update_eh_label, main_block_label): Mark the label used.
8801         (cleanup_dead_labels): Remove unused labels.
8802
8803 2007-05-01  Richard Guenther  <rguenther@suse.de>
8804
8805         * tree-vrp.c (set_value_range): Do not allocate equiv bitmap
8806         if it is not about to be set.
8807         (get_value_range): Do not pre-allocate equiv bitmap.
8808         (update_value_range): No need to clear equiv field.
8809         (add_equivalence): Change prototype to get bitmap pointer.
8810         Allocate bitmap here if it is not already.
8811         (extract_range_from_assert): Do not allocate bitmap here.
8812         Update callers to add_equivalence.
8813         (extract_range_from_ssa_name): Likewise.
8814         (get_vr_for_comparison): New static helper.
8815         (compare_name_with_value): Handle NULL equiv bitmap by
8816         peeling the first iteration of the comparison loop.
8817         Use get_vr_for_comparison.
8818         (compare_names): Handle NULL equiv bitmaps by using fake
8819         ones.  Use get_vr_for_comparison.
8820
8821 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
8822
8823         * double-int.c (mpz_set_double_int): Moved from
8824         tree-ssa-loop-niter.c.
8825         (mpz_get_double_int): Likewise; also, add option to wrap
8826         out-of-range integers.
8827         * double-int.h: New prototypes for above.
8828         * tree.c (get_static_type_bounds): Moved from
8829         tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
8830         TYPE_MAX_VALUE if they exist..
8831         * tree.h: New prototype for above.
8832         * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
8833         get_type_bounds calls.
8834         (mpz_set_double_int): Move to double-int.c.
8835         (get_type_bounds): Move to tree.c, rename to
8836         get_static_type_bounds.
8837         (mpz_to_double_int): Move to double-int.c, rename to
8838         mpz_get_double_int.
8839
8840 2007-04-30  Bob Wilson  <bob.wilson@acm.org>
8841
8842         * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
8843         DIV0 exception can fall through to a normal return.
8844
8845 2007-04-30  Alexandre Oliva  <aoliva@redhat.com>
8846
8847         PR middle-end/22156
8848         Temporarily revert:
8849         2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
8850         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
8851         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
8852         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
8853         initialize align to silence bogus warning.
8854         2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
8855         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
8856         all_no_warning.
8857         (struct sra_walk_fns): Remove use_all parameter from use.
8858         (sra_hash_tree): Handle BIT_FIELD_REFs.
8859         (sra_elt_hash): Don't hash bitfld blocks.
8860         (sra_elt_eq): Skip them in parent compares as well.  Handle
8861         BIT_FIELD_REFs.
8862         (sra_walk_expr): Don't maintain or pass down use_all_p.
8863         (scan_use): Remove use_all parameter.
8864         (scalarize_use): Likewise.  Re-expand assignment to
8865         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
8866         output, and re-scalarize after output.  Don't mark anything
8867         for no warning.
8868         (scalarize_ldst): Adjust.
8869         (scalarize_walk_gimple_modify_statement): Likewise.
8870         (build_element_name_1): Handle BIT_FIELD_REFs.
8871         (instantiate_element): Don't warn for any element whose parent
8872         is used as a whole.
8873         (instantiate_missing_elements_1): Return the sra_elt.
8874         (canon_type_for_field): New.
8875         (try_instantiate_multiple_fields): New.
8876         (instantiate_missing_elemnts): Use them.
8877         (mark_no_warning): Removed.
8878         (generate_one_element_ref): Handle BIT_FIELD_REFs.
8879         (REPLDUP, sra_build_elt_assignment): New.
8880         (generate_copy_inout): Use them.
8881         (generate_element_copy): Likewise.  Handle bitfld differences.
8882         (generate_element_zero): Don't recurse for blocks.  Use
8883         sra_build_elt_assignment.
8884         (generate_one_element_int): Take elt instead of var.  Use
8885         sra_build_elt_assignment.
8886         (generate_element_init_1): Adjust.
8887         (scalarize_use, scalarize_copy): Use REPLDUP.
8888         (scalarize_ldst): Move assert before dereference.
8889         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
8890
8891 2007-04-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8892
8893         PR C++/31721
8894         * tree.c (reconstruct_complex_type): Reconstruct a reference
8895         correctly.
8896         Also use the same mode for the pointer as the old pointer type.
8897
8898 2007-04-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8899
8900         * doc/trouble.texi (Interoperation): Remove note about Ultrix
8901         Fortran compiler.
8902
8903 2007-04-29  Zdenek Dvorak  <dvorakz@suse.cz>
8904
8905         PR rtl-optimization/31676
8906         * df-scan.c (record_nonlocal_goto_receiver_defs): New function.
8907         (df_refs_record): Call it.
8908
8909 2007-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
8910
8911         * rtl.def (SS_ABS): New code.
8912         * config/bfin/bfin.c (print_operand): New modifier 'v'.
8913         (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
8914         BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
8915         BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
8916         (bfin_init_builtins): Define them.
8917         (bdesc_1arg, bdesc_2arg): Add some of them here, ...
8918         (bfin_expand_builtin): ... and handle the others here.
8919         * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
8920         flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
8921         (ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
8922         (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
8923         operand is only HImode.
8924
8925 2007-04-29  Steven Bosscher  <steven@gcc.gnu.org>
8926
8927         * regclass.c (scan_one_insn): Remove splitting of
8928         two address insns.
8929
8930 2007-04-28  Sandra Loosemore  <sandra@codesourcery.com>
8931             Nigel Stephens  <nigel@mips.com>
8932
8933         * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
8934
8935 2007-04-28  Jan Hubicka  <jh@suse.cz>
8936
8937         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
8938         insn_locators_alloc instead of insn_locators_initialize;
8939         call reset_block_changes.
8940         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
8941         * config/sh/sh.c (sparc_output_mi_thunk): Likewise.
8942         * config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
8943         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
8944         * config/score/score.c (th_output_mi_thunk): Likewise.
8945         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
8946         * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
8947         tolerate uninitialized locator info.
8948
8949         Re-apply:
8950         * function.c (init_function_start): Don't init line number info.
8951         (expand_function_end): Update.
8952         (reset_block_changes, record_block_change, finalize_block_changes,
8953         check_block_change, free_block_changes): Kill.
8954         * function.h (reset_block_changes, record_block_change,
8955         finalize_block_changes, check_block_change, free_block_changes):
8956         Remove prototypes.
8957         (struct function): Remove ib_boundaries_block.
8958         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
8959         Use curr_insn_locator to initialize locator.
8960         (emit_line_note): Remove.
8961         * cfgexpand.c (expand_gimple_cond_expr): Update.
8962         (construct_exit_block): Likewise.
8963         (tree_expand_cfg): Initialize/finalize locators.
8964         * expr.c (expand_expr_real): Update.
8965         * cfglayout.c (line_locators_locs, line_locators_lines,
8966         file_locators_locs, file_locators_files): Remove.
8967         (set_block_levels): Move to cfgexpand.c.
8968         (insn_locators_initialize): Remove.
8969         (pass_insn_locators_initialize): Remove.
8970         (locations_locators_locs, locations_locators_vals): New static vars.
8971         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
8972         Likewise.
8973         (insn_locators_alloc, insn_locators_finalize,
8974         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
8975         New functions.
8976         (locator_location): New.
8977         (locator_line, locator_file): Rewrite.
8978         * rtl.h (emit_line_note): Kill.
8979         (insn_locators_alloc, insn_locators_finalize,
8980         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
8981         Declare.
8982         * tree-inline.c (initialize_cfun): Do not initialize
8983         ib_boundaries_block.
8984         * passes.c (pass_insn_locators_initialize): Remove.
8985
8986 2007-04-28  Zdenek Dvorak  <dvorakz@suse.cz>
8987
8988         * tree-cfg.c (move_block_to_fn): Release bb from dominance
8989         info.  Update last_basic_block correctly.
8990
8991 2007-04-27  Kaz Kojima  <kkojima@gcc.gnu.org>
8992
8993         PR target/31701
8994         * config/sh/sh.c (output_stack_adjust): Avoid using the frame
8995         register itself to hold the offset constant.  Tell flow the use
8996         of r4 and r5 when they are used.
8997
8998 2007-04-27  Richard Guenther  <rguenther@suse.de>
8999
9000         * tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
9001         if we simplified anything.
9002         (tree_ssa_forward_propagate_single_use_vars): Defer overflow
9003         warnings until we did a simplification and the stmt was not
9004         marked as TREE_NO_WARNING.
9005
9006 2007-04-27  Mike Stump  <mrs@apple.com>
9007
9008         * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
9009
9010 2007-04-27  Ian Lance Taylor  <iant@google.com>
9011
9012         PR middle-end/31710
9013         * tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
9014         TYPE_MAX_VALUE exist, convert them to the new type.
9015
9016 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
9017
9018         * tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
9019         if it claims to be available.
9020         * tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
9021         edge is redirected.
9022         (perform_tree_ssa_dce): Always free postdominators.
9023
9024 2007-04-27  Richard Henderson  <rth@redhat.com>
9025
9026         * config/alpha/predicates.md (aligned_memory_operand): Mark
9027         as define_special_predicate.
9028         (unaligned_memory_operand, normal_memory_operand): Likewise.
9029         (reg_or_unaligned_mem_operand): Remove.
9030         (any_memory_operand): Match the documentation and check for
9031         non-renumbered pseudos during reload.
9032         * config/alpha/alpha.c (alpha_secondary_reload): Rename from
9033         alpha_secondary_reload_class, update to new interface, make static.
9034         Handle CQImode like HImode.  Remove FP subreg check.
9035         (alpha_expand_mov): Use replace_equiv_address.
9036         (alpha_expand_mov_nobwx): Use any_memory_operand.
9037         (TARGET_SECONDARY_RELOAD): New.
9038         * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
9039         (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
9040         * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
9041         * config/alpha/alpha.md: ... here.
9042         (RELOAD12, reloadmode): New.
9043         (movcqi): New.
9044         (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
9045         Don't handle the aligned case here.
9046         (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
9047         (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
9048         reload_inhi_help.  Don't expect a scratch register.
9049         (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
9050         reload_outhi_help.
9051         * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.
9052
9053 2007-04-27  Richard Guenther  <rguenther@suse.de>
9054
9055         * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
9056
9057 2007-04-27  Richard Guenther  <rguenther@suse.de>
9058
9059         PR tree-optimization/30965
9060         PR tree-optimization/30978
9061         * Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
9062         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
9063         (find_equivalent_equality_comparison): Likewise.
9064         (simplify_cond): Likewise.
9065         (get_prop_source_stmt): New helper.
9066         (get_prop_dest_stmt): Likewise.
9067         (can_propagate_from): Likewise.
9068         (remove_prop_source_from_use): Likewise.
9069         (combine_cond_expr_cond): Likewise.
9070         (forward_propagate_comparison): New function.
9071         (forward_propagate_into_cond): Rewrite to use fold for
9072         tree combining.
9073         (tree_ssa_forward_propagate_single_use_vars): Call
9074         forward_propagate_comparison to propagate comparisons.
9075
9076 2007-04-27  Richard Guenther  <rguenther@suse.de>
9077
9078         PR tree-optimization/31715
9079         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
9080         sure to do computation on the offset in an appropriate
9081         signed type.
9082
9083 2007-04-27  Richard Sandiford  <richard@codesourcery.com>
9084
9085         * reload.h (elimination_target_reg_p): Declare.
9086         * reload.c (find_reloads): Don't apply the reg_rtx move
9087         optimization if the SET_DEST satisfies elimination_target_reg_p.
9088         * reload1.c (elimination_target_reg_p): New function.
9089         (gen_reload): In the move/add2 fallback, make sure that op0
9090         does not overlap the destination register.
9091
9092 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
9093
9094         * tree-ssa-loop-im.c (determine_invariantness_stmt): Attempt to
9095         transform only GIMPLE_MODIFY_STMTs.
9096         * tree-complex.c (expand_complex_operations_1): Ditto.
9097         (expand_complex_div_wide): Do not create gotos in COND_EXPR branches.
9098         * tree-ssa-loop-manip.c (build_if_stmt): Removed.
9099         (tree_transform_and_unroll_loop): Do not create gotos in COND_EXPR
9100         branches.
9101         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
9102         tree_mod_subtract, tree_ic, tree_stringop_fixed_value): Ditto.
9103         * omp-low.c (expand_parallel_call, expand_omp_for_generic,
9104         expand_omp_for_static_chunk, expand_omp_for_static_nochunk): Ditto.
9105         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes,
9106         slpeel_add_loop_guard): Ditto.
9107         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
9108         * lambda-code.c (perfect_nestify): Ditto.
9109         * tree-iterator.c (tsi_split_statement_list_before): Fix splitting
9110         before the first statement.
9111         * tree-optimize.c (execute_free_datastructures): Fix comments.
9112         (execute_free_cfg_annotations): Do not call disband_implicit_edges.
9113         * tree-flow.h (disband_implicit_edges): Declaration removed.
9114         * tree-cfg.c (make_cond_expr_edges): Remove gotos from COND_EXPR
9115         branches.
9116         (cleanup_dead_labels, tree_redirect_edge_and_branch): Handle
9117         COND_EXPRs without gotos.
9118         (disband_implicit_edges, has_label_p): Removed.
9119         (tree_verify_flow_info): Verify that COND_EXPR branches are empty.
9120         (tree_lv_add_condition_to_bb): Do not create gotos in COND_EXPR
9121         branches.
9122         * tree.c (build3_stat): Mark COND_EXPRs used as statements as having
9123         side effects.
9124         * tree-pretty-print.c (dump_implicit_edges): Dump implicit edges
9125         also for COND_EXPRs.
9126         * cfgexpand.c (label_rtx_for_bb): New function.
9127         (expand_gimple_cond_expr): Do not expect gotos in COND_EXPR branches.
9128         Use label_rtx_for_bb to find the labels.
9129         (expand_gimple_basic_block): Remove RETURN_EXPR at the end of the
9130         last block.  Detect fallthru edges.
9131
9132 2007-04-26  Ian Lance Taylor  <iant@google.com>
9133
9134         PR target/28675
9135         * reload.c (find_reloads_subreg_address): If the address was valid
9136         in the original mode but not in the new mode, reload the whole
9137         address.
9138
9139 2007-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
9140
9141         * tree-cfgcleanup.c (cfgcleanup_altered_bbs): New global variable.
9142         (remove_fallthru_edge): Use remove_edge_and_dominated_blocks.
9143         (cleanup_control_expr_graph): Do not invalidate dominance info.
9144         Record altered blocks.
9145         (cleanup_control_flow, cleanup_forwarder_blocks): Removed.
9146         (cleanup_control_flow_bb, split_bbs_on_noreturn_calls,
9147         cleanup_tree_cfg_bb): New functions.
9148         (remove_forwarder_block): Do not maintain the worklist of blocks.
9149         Record altered blocks.
9150         (cleanup_tree_cfg_1): Iterate over cfgcleanup_altered_bbs,
9151         not over whole cfg.
9152         (cleanup_tree_cfg): Do not iterate cleanup_tree_cfg_1.  Only call
9153         delete_unreachable_blocks if dominators are not available.
9154         * tree-inline.c (optimize_inline_calls): Free dominance information
9155         earlier.
9156         * tree-flow.h (remove_edge_and_dominated_blocks,
9157         cfgcleanup_altered_bbs): Altered.
9158         * tree-cfg.c (replace_uses_by, tree_merge_blocks): Record altered
9159         blocks.
9160         (get_all_dominated_blocks, remove_edge_and_dominated_blocks): New
9161         functions.
9162         (tree_purge_dead_eh_edges): Use remove_edge_and_dominated_blocks,
9163         do not invalidate dominators.
9164
9165 2007-04-26  Anatoly Sokolov <aesok@post.ru>
9166
9167         * config/avr/avr.c (avr_mcu_types): Add support for ATmega8HVA and
9168         ATmega16HVA devices. Move AT90USB82 device to 'avr5' architecture.
9169         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
9170         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
9171
9172 2007-04-26  Steve Ellcey  <sje@cup.hp.com>
9173
9174         * config/ia64/ia64.md (ip_value):  Fix itanium_class attribute.
9175
9176 2007-04-26  Richard Guenther  <rguenther@suse.de>
9177
9178         PR tree-optimization/31703
9179         * tree-ssa-loop-im.c (rewrite_bittest): Make sure to use
9180         the right type for the target of the bittest.
9181
9182 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
9183
9184         * config/i386/vx-common.h (RETURN_IN_MEMORY): Use
9185         ix86_sol10_return_in_memory.
9186
9187 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
9188
9189         * config/i386/i386.c (ix86_sol10_return_in_memory): Remove unused
9190         variables.
9191
9192 2007-04-26  Jakub Jelinek  <jakub@redhat.com>
9193
9194         PR c++/31598
9195         * tree-inline.c (copy_body_r): Don't touch TREE_TYPE of OMP_CLAUSE.
9196
9197         PR tree-optimization/30558
9198         * tree-eh.c (lower_eh_filter): If EH_FILTER_MUST_NOT_THROW
9199         clear this_state.prev_try.
9200
9201 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
9202             Mark Mitchell  <mark@codesourcery.com>
9203
9204         * config/i386/i386-protos.h (ix86_sol10_return_in_memory): Declare.
9205         * config/i386/i386.c (ix86_sol10_return_in_memory): New function.
9206         * config/i386/sol2-10.h (RETURN_IN_MEMORY): Use it.
9207
9208 2007-04-26  Richard Sandiford  <richard@codesourcery.com>
9209
9210         PR driver/31107
9211         * doc/invoke.texi (%:print-asm-header): Document.
9212         * gcc.c (asm_options): Use %:print-asm-header() for --target-help
9213         and -ftarget-help.
9214         (static_spec_functions): Add print-asm-header.
9215         (main): Print a banner before the --target-help linker options.
9216         (print_asm_header_spec_function): New function.
9217
9218 2007-04-25  Kaz Kojima  <kkojima@gcc.gnu.org>
9219
9220         PR target/31403
9221         * config/sh/sh.md (movsi_ie): Fix length for TARGET_SH2A.
9222         (movsf_ie): Likewise.
9223
9224 2007-04-25  Paolo Carlini  <pcarlini@suse.de>
9225
9226         * doc/extend.texi ([Type Traits]): Adjust per N2255.
9227
9228 2007-04-25  Bob Wilson  <bob.wilson@acm.org>
9229
9230         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Throw an
9231         exception for divide-by-zero.
9232         (__umodsi3, __modsi3): Likewise.
9233
9234 2007-04-25  Dirk Mueller  <dmueller@suse.de>
9235
9236         * c-typeck.c (build_compound_expr): Annotate warning()
9237         call with OPT_Wunused_value.
9238         * tree-ssa.c (warn_uninit): Annotate warning with
9239         OPT_Wunintialized.
9240         * c-common.c (handle_sentinel_attribute): Annotate warning
9241         call with OPT_Wattributes.
9242
9243 2007-04-25  Thiemo Seufer  <ths@mips.com>
9244
9245         * config/mips/mips.opt (mdmx, mmt, mno-mdmx): New options.
9246         (mips16): Fix typo.
9247         * config/mips/mips.h (ASM_SPEC): Pass -mmt/-mno-mt and -mdmx/-mno-mdmx
9248         on to the assembler.  Improve handling of -mno-mips16.  Add handling
9249         of -mno-mips3d, -mno-dsp, -mno-dspr2.
9250         * doc/invoke.texi (MIPS Options): Whitespace cleanup.  Fix wrong use
9251         of @itemx.  Document -mno-dsp, -mno-dspr2, -mno-paired-single, -mdmx,
9252         -mno-mdmx, -mno-mips3d, -mmt and -mno-mt.
9253
9254 2007-04-25  Danny Smith  <dannysmith.users.sourceforge.net>
9255
9256         PR target/31680
9257         * config/i386/winnt.c (i386_pe_file_end): Strip only
9258         USER_LABEL_PREFIX when writing export name.
9259
9260 2007-04-25  Richard Sandiford  <richard@codesourcery.com>
9261
9262         * config.gcc (sh-wrs-vxworks): Don't include dbxelf.h.  Include
9263         sh/elf.h, vx-common.h and vxworks.h.
9264         * config/sh/sh.h: Include config/vxworks-dummy.h.
9265         (SUBTARGET_OVERRIDE_OPTIONS): Define.
9266         (OVERRIDE_OPTIONS): Use it.
9267         * config/sh/sh.md (GOTaddr2picreg): Add suport for VxWorks RTPs.
9268         (vxworks_picreg): New pattern.
9269         * config/sh/vxworks.h (TARGET_OS_CPP_BUILTINS): Use
9270         VXWORKS_OS_CPP_BUILTINS.
9271         (LIB_SPEC, LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Redefine
9272         to their VXWORKS_* equivalents.
9273         (SUBTARGET_OVERRIDE_OPTIONS, SUBTARGET_CPP_SPEC): Define.
9274         (SUBTARGET_LINK_EMUL_SUFFIX, FUNCTION_PROFILER): Define.
9275         * config/sh/lib1funcs.asm (NO_FPSCR_VALUES): Define for VxWorks PIC.
9276         (set_fpscr, ic_invalidate): Add VxWorks PIC sequences.
9277         * config/sh/t-vxworks (MULTILIB_OPTIONS): Add m4a, -mrtp and
9278         -mrtp/-fPIC multilibs.
9279         (MULTILIB_EXCEPTIONS): Generalize globs accordingly.
9280         (MULTILIB_MATCHES, EXTRA_MULTILIB_PARTS): Define.
9281         (MULTILIB_OSDIRNAMES): Delete.
9282
9283 2007-04-25  Anatoly Sokolov <aesok@post.ru>
9284
9285         PR target/18989
9286         * config/avr/avr.h (ASM_OUTPUT_ALIGN): Redefine.
9287
9288 2007-04-24  Brooks Moses  <brooks.moses@codesourcery.com>
9289
9290         * real.c (mpfr_from_real): Handle Inf and NaN, and allow the
9291         rounding mode to be specified by the caller.
9292         (real_to_mpfr) Likewise.
9293         * real.h: Update mpfr_from_real, mpfr_to_real prototypes to
9294         include new arguments.
9295         * builtins.c: Update mpfr_from_real, mpfr_to_real calls.
9296
9297 2007-04-24  Ian Lance Taylor  <iant@google.com>
9298
9299         PR tree-optimization/31605
9300         * tree-vrp.c (set_value_range): Check that min and max are not
9301         both overflow infinities.
9302         (set_value_range_to_value): New static function.
9303         (extract_range_from_binary_expr): Call set_value_range_to_value.
9304         (extract_range_from_cond_expr): Likewise.
9305         (extract_range_from_expr): Likewise.
9306         (extract_range_from_unary_expr): Likewise.  Don't create a range
9307         which overflows on both sides.
9308         (vrp_meet): Check for a useless range.
9309         (vrp_visit_phi_node): If we see a constant which looks like an
9310         overflow infinity, turn off the TREE_OVERFLOW flag.
9311
9312 2007-04-24  Ian Lance Taylor  <iant@google.com>
9313
9314         * flow.c (elim_reg_cond): Handle a comparison of a subreg.
9315
9316 2007-04-24  Simon Martin  <simartin@users.sourceforge.net>
9317
9318         PR diagnostic/25923
9319         * tree-pass.h (TDF_DIAGNOSTIC): New dump control to specify that a
9320         diagnostic message is being built.
9321         * tree-pretty-print.c (dump_generic_node): Only write the
9322         formatted text into BUFFER's stream if we are not building a
9323         diagnostic message.
9324         * toplev.c (default_tree_printer): Pass TDF_DIAGNOSTIC to
9325         dump_generic_node.
9326         * Makefile.in (toplev.o): Depend on tree-pass.h.
9327
9328 2007-04-24  Ian Lance Taylor  <iant@google.com>
9329
9330         PR tree-optimization/31602
9331         * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING for
9332         conditionals in the copied loop header.
9333         * tree-cfg.c (fold_cond_expr_cond): Don't issue undefined overflow
9334         warnings if TREE_NO_WARNING is set.
9335         * doc/invoke.texi (Warning Options): Clarify that
9336         -Wstrict-overflow does not warn about loops.
9337
9338 2007-04-24  Janis Johnson  <janis187@us.ibm.com>
9339
9340         * config/rs6000/rs6000.c (function_arg_advance): For 32-bit ELF ABI,
9341         expand on the comment about _Decimal128 arguments and check the
9342         integer result of the modulus operation; for 64-bit ELF ABI, ensure
9343         that _Decimal128 argument uses even/odd register pair.
9344         (function_arg): Ditto.
9345
9346 2007-04-24  Hui-May Chang <hm.chang@apple.com>
9347
9348         * reload1.c (merge_assigned_reloads) : Do not merge a RELOAD_OTHER
9349         instruction with a RELOAD_FOR_OPERAND_ADDRESS instruction.
9350
9351 2007-04-24  Richard Guenther  <rguenther@suse.de>
9352             Olga Golovanevsky  <olga@il.ibm.com>
9353
9354         * fold-const.c (multiple_of_p): Check for bottom
9355         to be zero.
9356
9357 2007-04-24  Richard Henderson  <rth@redhat.com>
9358
9359         * libgcc2.h (AVOID_FP_TYPE_CONVERSION): Rename from
9360         IS_IBM_EXTENDED.  Also define in terms of WIDEST_HARDWARE_FP_SIZE.
9361         * libgcc2.c (__floatdisf): Avoid double-word arithmetic when
9362         looking for non-zero bits shifted out.  Avoid a recursive call
9363         when constructing the scalar.
9364         (__floatundisf): Likewise.
9365
9366 2007-04-24  Nathan Froyd  <froydnj@codesourcery.com>
9367
9368         * dwarf2out.c (field_byte_offset): Move the existing logic
9369         under the control of PCC_BITFIELD_TYPE_MATTERS and just use
9370         the bit offset of the field if !PCC_BITFIELD_TYPE_MATTERS.
9371
9372 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9373
9374         PR target/31641
9375         * config/s390/s390.c (s390_expand_setmem): Don't ICE for constant
9376         length argument of 0 for memset.
9377         (s390_expand_movmem, s390_expand_setmem, s390_expand_cmpmem): Use
9378         unsigned shift instead of the signed variant.
9379
9380 2007-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9381
9382         * config/s390/s390.md ("*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs_ibm",
9383         "fix_trunc<BFP:mode><GPR:mode>2_ieee", "fix_truncdfsi2_ibm",
9384         "floatsidf2_ibm", "floatsisf2", "truncdfsf2_ieee", "truncdfsf2_ibm",
9385         "*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
9386         "*trunctfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
9387         "*extenddftf2_ieee", "*extenddftf2_ibm", "*extendsftf2_ieee",
9388         "*extendsftf2_ibm", "*add<mode>3", "*add<mode>3_ibm", "*sub<mode>3_ibm",
9389         "*mul<mode>3", "*mul<mode>3_ibm", "*div<mode>3", "*div<mode>3_ibm",
9390         "*neg<mode>2_ibm", "*abs<mode>2_ibm"): Insn definitions removed.
9391         ("fix_trunc<BFP:mode><GPR:mode>2_bfp", "floatsi<mode>2",
9392         "truncdfsf2", "trunctf<mode>2", "add<mode>3", "sub<mode>3",
9393         "mul<mode>3", "div<mode>3"): Insn definitions added.
9394         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fix_trunc<mode>di2",
9395         "fix_trunc<mode>si2"): gen_fix_trunc<BFP:mode><GPR:mode>2_ieee renamed
9396         to gen_fix_trunc<BFP:mode><GPR:mode>2_bfp.
9397         ("fix_truncdfsi2", "floatsitf2", "truncdfsf2", "trunctfdf2",
9398         "trunctfsf2", "extendsfdf2", "extenddftf2", "extendsftf2", "add<mode>3",
9399         "sub<mode>3", "mul<mode>3", "div<mode>3"): Expander removed.
9400         ("fix_trunc<mode>si2", "extend<DSF:mode><BFP:mode>2"): Expander added.
9401         * config/s390/s390.h (TARGET_IBM_FLOAT, TARGET_IEEE_FLOAT,
9402         TARGET_FLOAT_FORMAT): Macro definitions removed.
9403         (FP_REGNO_P): No special case for !TARGET_IEEE_FLOAT anymore.
9404         * config/s390/s390.c (struct processor_costs, z900_cost, z990_cost,
9405         z9_109_cost): Remove fields for hexfloat instructions: dxr, ddr and der.
9406         (s390_rtx_costs): Remove !TARGET_IEEE_FLOAT special branches.
9407         (s390_gen_rtx_const_DI): Function removed.
9408         * config/s390/s390-protos.h (s390_gen_rtx_const_DI): Prototype removed.
9409
9410 2007-04-24  Richard Sandiford  <richard@codesourcery.com>
9411
9412         * optabs.c (set_conv_libfunc): Prefer libgcc2's __ffsMM2 functions
9413         over an external ffs function.
9414
9415 2007-04-24  Chao-ying Fu  <fu@mips.com>
9416             Richard Sandiford  <richard@nildram.co.uk>
9417
9418         * doc/md.texi (madd@var{m}@var{n}4, umadd@var{m}@var{n}4): Document.
9419         * optabs.h (OTI_smadd_widen, OTI_umadd_widen): New optab_indexes.
9420         (smadd_widen_optab, umadd_widen_optab): Define.
9421         * optabs.c (init_optabs): Initialize smadd_widen_optab and
9422         umadd_widen_optab.
9423         * genopinit.c (optabs): Fill in smadd_widen_optab and
9424         umadd_widen_optab.
9425         * expr.c (expand_expr_real_1): Try to use smadd_widen_optab
9426         and umadd_widen_optab to implement multiply-add sequences.
9427         * config/mips/mips.md (*<su>mul_acc_di): Rename to...
9428         (<u>maddsidi4): ...this.  Extend condition to include
9429         GENERATE_MADD_MSUB and TARGET_DSPR2.  Change the constraint
9430         of operand 0 to "ka" and use the three-operand form of madd<u>
9431         for TARGET_DSPR2.
9432         * config/mips/mips-dspr2.md (mips_madd, mips_maddu): Convert
9433         to define_expands.
9434         * config/mips/constraints.md (ka): New register constraint.
9435
9436 2007-04-24  Jan Hubicka  <j@suse.cz>
9437
9438         Revert:
9439
9440         2007-04-23  Jan Hubicka  <jh@suse.cz>
9441         * function.c (init_function_start): Don't init line number info.
9442         (expand_function_end): Update.
9443         (reset_block_changes, record_block_change, finalize_block_changes,
9444         check_block_change, free_block_changes): Kill.
9445         * function.h (reset_block_changes, record_block_change,
9446         finalize_block_changes, check_block_change, free_block_changes):
9447         Remove prototypes.
9448         (struct function): Remove ib_boundaries_block.
9449         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
9450         Use curr_insn_locator to initialize locator.
9451         (emit_line_note): Remove.
9452         * cfgexpand.c (expand_gimple_cond_expr): Update.
9453         (construct_exit_block): Likewise.
9454         (tree_expand_cfg): Initialize/finalize locators.
9455         * expr.c (expand_expr_real): Update.
9456         * cfglayout.c (line_locators_locs, line_locators_lines,
9457         file_locators_locs, file_locators_files): Remove.
9458         (set_block_levels): Move to cfgexpand.c.
9459         (insn_locators_initialize): Remove.
9460         (pass_insn_locators_initialize): Remove.
9461         (locations_locators_locs, locations_locators_vals): New static vars.
9462         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
9463         Likewise.
9464         (insn_locators_alloc, insn_locators_finalize,
9465         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
9466         New functions.
9467         (locator_location): New.
9468         (locator_line, locator_file): Rewrite.
9469         * rtl.h (emit_line_note): Kill.
9470         (insn_locators_alloc, insn_locators_finalize,
9471         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
9472         Declare.
9473         * tree-inline.c (initialize_cfun): Do not initialize
9474         ib_boundaries_block.
9475         * passes.c (pass_insn_locators_initialize): Remove.
9476
9477 2007-04-24  Daniel Franke  <franke.daniel@gmail.com>
9478
9479         * doc/invoke.texi: Removed leading '-' from option index entries.
9480
9481 2007-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
9482
9483         * tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_node):
9484         Use phi_nodes_ptr.
9485         (create_phi_node): Use set_phi_nodes.
9486         * omp-low.c (expand_omp_parallel): Use bb_stmt_list.
9487         * tree-if-conv.c (process_phi_nodes): Use set_phi_nodes.
9488         (combine_blocks):  Use bb_stmt_list and set_bb_stmt_list.
9489         * tree-flow-inline.h (phi_nodes, set_phi_nodes,
9490         (bsi_start, bsi_last): Use bb_stmt_list.
9491         (phi_nodes_ptr, bb_stmt_list, set_bb_stmt_list): New functions.
9492         * cfgexpand.c (expand_gimple_basic_block): Use bb_stmt_list.
9493         Traverse the statements using tsi iterator.
9494         * basic-block.h (struct basic_block_def): Fields stmt_list
9495         and phi_nodes moved to ...
9496         (struct tree_bb_info): ... new structure.
9497         * tree-cfg.c (create_bb): Allocate il.tree.  Use set_bb_stmt_list.
9498         (tree_merge_blocks): Use bb_stmt_list and set_bb_stmt_list.
9499         (remove_bb): Handle blocks with NULL stmt list.  Clear il.tree field.
9500         (tree_verify_flow_info): Verify that il.tree is not set for
9501         entry and exit block.
9502         (tree_split_block): Use set_bb_stmt_list.
9503
9504 2007-04-23  Mike Stump  <mrs@apple.com>
9505
9506         * config/i386/i386.c (ix86_tune_features
9507         [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
9508         nocona and core2.
9509
9510 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
9511
9512         * config/i386/i386.md (prefix_extra): New attribute.
9513         (length): Add prefix_extra.
9514
9515         * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
9516         (sse2_movntv2di): Likewise.
9517         (sse2_cvtps2dq): Likewise.
9518         (sse2_cvtpd2pi): Likewise.
9519         (sse2_cvttpd2pi): Likewise.
9520         (*sse2_cvtpd2ps): Likewise.
9521         (*add<mode>3): Likewise.
9522         (sse2_ssadd<mode>3): Likewise.
9523         (sse2_usadd<mode>3): Likewise.
9524         (*sub<mode>3): Likewise.
9525         (sse2_sssub<mode>3): Likewise.
9526         (sse2_ussub<mode>3): Likewise.
9527         (*mulv8hi3): Likewise.
9528         (*smulv8hi3_highpart): Likewise.
9529         (*umulv8hi3_highpart): Likewise.
9530         (sse2_umulv2siv2di3): Likewise.
9531         (sse2_pmaddwd): Likewise.
9532         (ashr<mode>3): Likewise.
9533         (lshr<mode>3): Likewise.
9534         (ashl<mode>3): Likewise.
9535         (sse2_ashlti3): Likewise.
9536         (sse2_lshrti3): Likewise.
9537         (*umaxv16qi3): Likewise.
9538         (*smaxv8hi3): Likewise.
9539         (*uminv16qi3): Likewise.
9540         (*sminv8hi3): Likewise.
9541         (sse2_eq<mode>3): Likewise.
9542         (sse2_gt<mode>3): Likewise.
9543         (*and<mode>3): Likewise.
9544         (sse2_nand<mode>3): Likewise.
9545         (*ior<mode>3): Likewise.
9546         (*xor<mode>3): Likewise.
9547         (sse2_packsswb): Likewise.
9548         (sse2_packssdw): Likewise.
9549         (sse2_packuswb): Likewise.
9550         (sse2_punpckhbw): Likewise.
9551         (sse2_punpcklbw): Likewise.
9552         (sse2_punpckhwd): Likewise.
9553         (sse2_punpcklwd): Likewise.
9554         (sse2_punpckhdq): Likewise.
9555         (sse2_punpckldq): Likewise.
9556         (sse2_punpckhqdq): Likewise.
9557         (sse2_punpcklqdq): Likewise.
9558         (*sse2_pinsrw): Likewise.
9559         (*sse2_pextrw): Likewise.
9560         (sse2_pshufd_1): Likewise.
9561         (sse2_uavgv16qi3): Likewise.
9562         (sse2_uavgv8hi3): Likewise.
9563         (sse2_psadbw): Likewise.
9564         (sse2_pmovmskb): Likewise.
9565         (*sse2_maskmovdqu): Likewise.
9566         (*sse2_maskmovdqu_rex64): Likewise.
9567         (sse4a_extrqi): Likewise.
9568         (sse4a_extrq): Likewise.
9569         (sse3_lddqu): Set prefix_rep.
9570         (sse3_addsubv4sf3): Likewise.
9571         (sse3_haddv4sf3): Likewise.
9572         (sse3_hsubv4sf3): Likewise.
9573         (sse_cvtss2si): Likewise.
9574         (sse_cvtss2si_2): Likewise.
9575         (sse_cvtss2siq): Likewise.
9576         (sse_cvtss2siq_2): Likewise.
9577         (sse_cvttss2si): Likewise.
9578         (sse_cvttss2siq): Likewise.
9579         (sse2_cvttps2dq): Likewise.
9580         (sse3_movshdup): Likewise.
9581         (sse3_movsldup): Likewise.
9582         (sse2_cvtsd2si): Likewise.
9583         (sse2_cvtsd2si_2): Likewise.
9584         (sse2_cvtsd2siq): Likewise.
9585         (sse2_cvtsd2siq_2): Likewise.
9586         (sse2_cvttsd2si): Likewise.
9587         (sse2_cvttsd2siq): Likewise.
9588         (*sse2_cvtpd2dq): Likewise.
9589         (*sse2_cvttpd2dq): Likewise.
9590         (sse2_pshuflw_1): Likewise.
9591         (sse2_pshufhw_1): Likewise.
9592         (sse4a_insertqi): Likewise.
9593         (sse4a_insertq): Likewise.
9594         (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
9595         (ssse3_phadddv4si3): Likewise.
9596         (ssse3_phaddswv8hi3): Likewise.
9597         (ssse3_phsubwv8hi3): Likewise.
9598         (ssse3_phsubdv4si3): Likewise.
9599         (ssse3_phsubswv8hi3): Likewise.
9600         (ssse3_pmaddubswv8hi3): Likewise.
9601         (ssse3_pmulhrswv8hi3): Likewise.
9602         (ssse3_pshufbv16qi3): Likewise.
9603         (ssse3_psign<mode>3): Likewise.
9604         (ssse3_palignrti): Likewise.
9605         (abs<mode>2): Likewise.
9606         (ssse3_phaddwv4hi3): Set prefix_extra.
9607         (ssse3_phadddv2si3): Likewise.
9608         (ssse3_phaddswv4hi3): Likewise.
9609         (ssse3_phsubwv4hi3): Likewise.
9610         (ssse3_phsubdv2si3): Likewise.
9611         (ssse3_phsubswv4hi3): Likewise.
9612         (ssse3_pmaddubswv4hi3): Likewise.
9613         (ssse3_pmulhrswv4hi3): Likewise.
9614         (ssse3_pshufbv8qi3): Likewise.
9615         (ssse3_psign<mode>3): Likewise.
9616         (ssse3_palignrdi): Likewise.
9617         (abs<mode>2): Likewise.
9618         (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
9619         (*vec_dupv2df): Set mode to V2DF instead of V4SF.
9620         (sse2_pmovmskb): Set mode to SI instead of V2DF.
9621
9622 2007-04-23  Nick Clifton  <nickc@redhat.com>
9623
9624         * params.def: Fix formatting of emacs local variables.
9625
9626 2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
9627
9628         * config/i386/sse.md (sse2_stored): Don't split to inter-unit
9629         move if inter-unit move isn't allowed.
9630         Don't split moving the first element of V2DI to DI to inter-unit
9631         move if inter-unit move isn't allowed.
9632
9633 2007-04-23  Richard Guenther  <rguenther@suse.de>
9634
9635         * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
9636         and CDI_POST_DOMINATORS separately.
9637
9638 2007-04-23  Nick Clifton  <nickc@redhat.com>
9639
9640         * c.opt (Wformat-contains-nul): Add warning attribute.
9641
9642 2007-04-23  Jan Hubicka  <jh@suse.cz>
9643
9644         * function.c (init_function_start): Don't init line number info.
9645         (expand_function_end): Update.
9646         (reset_block_changes, record_block_change, finalize_block_changes,
9647         check_block_change, free_block_changes): Kill.
9648         * function.h (reset_block_changes, record_block_change,
9649         finalize_block_changes, check_block_change, free_block_changes):
9650         Remove prototypes.
9651         (struct function): Remove ib_boundaries_block.
9652         * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
9653         Use curr_insn_locator to initialize locator.
9654         (emit_line_note): Remove.
9655         * cfgexpand.c (expand_gimple_cond_expr): Update.
9656         (construct_exit_block): Likewise.
9657         (tree_expand_cfg): Initialize/finalize locators.
9658         * expr.c (expand_expr_real): Update.
9659         * cfglayout.c (line_locators_locs, line_locators_lines,
9660         file_locators_locs, file_locators_files): Remove.
9661         (set_block_levels): Move to cfgexpand.c.
9662         (insn_locators_initialize): Remove.
9663         (pass_insn_locators_initialize): Remove.
9664         (locations_locators_locs, locations_locators_vals): New static vars.
9665         (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
9666         Likewise.
9667         (insn_locators_alloc, insn_locators_finalize,
9668         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
9669         New functions.
9670         (locator_location): New.
9671         (locator_line, locator_file): Rewrite.
9672         * rtl.h (emit_line_note): Kill.
9673         (insn_locators_alloc, insn_locators_finalize,
9674         set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
9675         Declare.
9676         * tree-inline.c (initialize_cfun): Do not initialize
9677         ib_boundaries_block.
9678         * passes.c (pass_insn_locators_initialize): Remove.
9679
9680 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9681
9682         PR middle-end/31448
9683         * expr.c (reduce_to_bit_field_precision): Handle
9684         CONST_INT rtx's.
9685
9686 2007-04-22  Uros Bizjak  <ubizjak@gmail.com>
9687
9688         PR tree-optimization/24659
9689         * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
9690         OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
9691         (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
9692         * genopinit.c (optabs): Rename vec_pack_mod_optab
9693         to vec_pack_trunc_optab.
9694         * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
9695         early for scalar floating point operands for NOP_EXPR.
9696         (vectorizable_type_promotion): Ditto.
9697         * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
9698         vec_pack_trunc_optab.
9699         (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
9700
9701         * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
9702         * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
9703         Rename from VEC_PACK_MOD_EXPR.
9704         (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
9705         * expr.c (expand_expr_real_1): Ditto.
9706         * tree-inline.c (estimate_num_insns_1): Ditto.
9707         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
9708
9709         * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
9710         (vec_unpacks_lo_v4sf): Ditto.
9711         (vec_pack_trunc_v2df): Ditto.
9712         (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
9713         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
9714         (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
9715
9716         * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
9717         vec_pack_mod_v8hi.
9718         (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
9719
9720         * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
9721         Rename from VEC_PACK_MOD_EXPR.  This expression also represent
9722         packing of floating point operands.
9723         [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
9724         represent unpacking of floating point operands.
9725         * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
9726         [vec_unpacks_hi]: Ditto.
9727         [vec_unpacks_lo]: Ditto.
9728
9729 2007-04-22  Jan Hubicka  <jh@suse.cz>
9730
9731         * final.c (rest_of_handle_final): Call
9732         targetm.asm_out.constructor/targetm.asm_out.destructor
9733         * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
9734         proper priority via decl_*_priority_insert.
9735         * c-common.c (c_expand_body): Likewise.
9736
9737 2007-04-22  Richard Guenther  <rguenther@suse.de>
9738
9739         PR tree-optimization/29789
9740         * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
9741         (rewrite_reciprocal): New helper split out from
9742         determine_invariantness_stmt.
9743         (rewrite_bittest): Likewise.
9744         (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
9745         A & (1 << B) if (1 << B) is loop invariant but (A >> B)
9746         is not.
9747
9748 2007-04-22  Revital Eres  <eres@il.ibm.com>
9749
9750         * loop-unroll.c (var_to_expand): New field to support also
9751         insns of the form x = something + x.
9752         (analyze_insn_to_expand_var): Use it.
9753         (expand_var_during_unrolling): Likewise.
9754
9755 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
9756
9757         * predict.c: Include pointer-set.h.
9758         (bb_predictions): New variable.
9759         (tree_predicted_by_p, tree_predict_edge,
9760         remove_predictions_associated_with_edge): Use bb_predictions map
9761         instead of bb->predictions.
9762         (clear_bb_predictions, assert_is_empty): New functions.
9763         (combine_predictions_for_bb): Use bb_predictions map.  Call
9764         clear_bb_predictions.
9765         (tree_estimate_probability): Create and free bb_predictions map.
9766         * Makefile.in (predict.o): Add pointer-set.h dependency.
9767         * basic-block.h (struct basic_block_def): Remove predictions
9768         field.
9769         * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
9770
9771 2007-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
9772
9773         PR target/31480
9774         * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
9775         is null.
9776
9777 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9778
9779         * timevar.c (timevar_print): Change reference of --disable-checking to
9780         --enable-checking=release.  Also warn if assert checking is disabled.
9781
9782 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9783
9784         PR C/30265
9785         * c-gimplifier.c (gimplify_compound_literal_expr): Mark the
9786         decl as addressable if the compound literal was marked as
9787         addressable.
9788         Mark the decl as a gimple register if it is a complex or
9789         vector decl and does not live in memory.
9790
9791 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9792
9793         * tree.h (GIMPLE_TUPLE_P): Also true for PHI_NODEs.
9794         (GENERIC_NEXT): New function macro.
9795         (PHI_CHAIN): Use phi_node's new chain variable.
9796         (tree_phi_node): Change tree_common to tree_base
9797         and add the chain field.
9798         * tree-phinodes.c (make_phi_node): Don't set
9799         TREE_TYPE on the new node.
9800         * c-decl.c (lang_tree_node): Use GENERIC_NEXT
9801         instead of checking GIMPLE_TUPLE_P in chain_next.
9802         * tree-vect-transform.c
9803         (get_initial_def_for_induction): Look at
9804         PHI_RESULT_TREE for the type of the phi node.
9805         (update_vuses_to_preheader): Use PHI_CHAIN
9806         instead of TREE_CHAIN on the phi node.
9807         * tree-ssa-structalias.c (compute_points_to_sets):
9808         Likewise.
9809         (ipa_pta_execute): Likewise.
9810
9811 2007-04-21  Richard Guenther  <rguenther@suse.de>
9812
9813         PR middle-end/31136
9814         * fold-const.c (fold_unary): Call fold_convert_const on the
9815         original tree.
9816
9817 2007-04-21  Alexandre Oliva  <aoliva@redhat.com>
9818
9819         * gcse.c (store_killed_in_insn): Handle PARALLELs.
9820         (store_killed_in_pat): New.
9821
9822 2007-04-20  Richard Henderson  <rth@redhat.com>
9823
9824         PR target/31628
9825         * config/i386/i386.c (type_has_variadic_args_p): Look for any
9826         TREE_LIST with a void_type_node value, not void_list_node exactly.
9827
9828 2007-04-21  Douglas Gregor  <doug.gregor@gmail.com>
9829
9830         * doc/standards.texi: Re-arrange into language-specific
9831         subsections. Add a C++ section, documenting which standards we
9832         support.
9833
9834 2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
9835
9836         * tree-ssa-structalias.c (delete_points_to_sets): Free graph->complex.
9837         * tree-ssa-operands.c (finalize_ssa_vuse_ops): Free new_ops.
9838
9839 2007-04-20  Daniel Jacobowitz  <dan@codesourcery.com>
9840
9841         * config/rs6000/sysv4.h (STARTFILE_DEFAULT_SPEC): Include
9842         ecrti.o and crtbegin.o.
9843         (LIB_DEFAULT_SPEC): Include -lc.
9844         (ENDFILE_DEFAULT_SPEC): Include crtend.o and ecrtn.o.
9845
9846 2007-04-20  Richard Henderson  <rth@redhat.com>
9847
9848         PR target/28623
9849         * config/alpha/alpha.c (get_unaligned_address): Remove extra_offset
9850         argument; update all callers.
9851         (get_unaligned_offset): New.
9852         * config/alpha/alpha.md (extendqidi2, extendhidi2): Don't use
9853         get_unaligned_address, just pass on the address directly.
9854         (unaligned_extendqidi): Use gen_lowpart instead of open-coding
9855         the subreg in the helper patterns.
9856         (unaligned_extendqidi_le): Use get_unaligned_offset.
9857         (unaligned_extendqidi_be, unaligned_extendhidi_le): Likewise.
9858         (unaligned_extendhidi_be): Likewise.
9859         (unaligned_extendhidi): Tidy.
9860         * config/alpha/alpha-protos.h: Update.
9861
9862 2007-04-20  Richard Henderson  <rth@redhat.com>
9863
9864         * config/alpha/alpha.h (CPP_SPEC, CPP_SUBTARGET_SPEC): Remove.
9865         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove.
9866         * config/alpha/linux.h (CPP_SPEC): Undef before redefine.
9867         * config/alpha/linux-elf.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
9868         * config/alpha/freebsd.h (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
9869         (CPP_SPEC): Don't include %(cpp_subtarget).
9870         * config/alpha/netbsd.h (CPP_SPEC): Rename CPP_SUBTARGET_SPEC.
9871         (EXTRA_SPECS): Rename SUBTARGET_EXTRA_SPECS.
9872         * config/alpha/osf.h (CPP_SPEC, EXTRA_SPECS): Similarly.
9873
9874 2007-04-20  Jakub Jelinek  <jakub@redhat.com>
9875
9876         * config/i386/i386.c (bdesc_2arg): Use ORDERED rather than UNORDERED
9877         for __builtin_ia32_cmpordss.
9878
9879         PR tree-optimization/31632
9880         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
9881         and arg1 for optimizations of comparison against min/max values.
9882         Fold arg0 to arg1's type for optimizations of comparison against
9883         min+1 and max-1 values.
9884
9885 2007-04-19  Bernd Schmidt  <bernd.schmidt@analog.com>
9886
9887         * reload.c (combine_reloads): When trying to use a dying register,
9888         check whether it's uninitialized and don't use if so.
9889
9890 2007-04-19  Brooks Moses  <brooks.moses@codesourcery.com>
9891
9892         * fold-const.c: Remove prototypes for native_encode_expr and
9893         native_interpret_expr.
9894         (native_encode_expr): Make non-static.
9895         (native_interpret_expr): Likewise.
9896         * tree.h: Add prototypes for the above.
9897
9898 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
9899
9900         * config/rs6000/spe.md (*frob_tf_ti, *frob_ti_tf, *frob_ti_tf_2,
9901         *mov_si<mode>_e500_subreg0, *mov_si<mode>_e500_subreg0_2,
9902         *mov_sitf_e500_subreg8, *mov_sitf_e500_subreg8_2, spe_extenddftf2,
9903         spe_fix_trunctfsi2_internal, spe_negtf2_internal, cmptfeq_gpr,
9904         tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr, tsttflt_gpr):
9905         Add length attributes.
9906
9907 2007-04-19  Janis Johnson  <janis187@us.ibm.com>
9908
9909         * ginclude/float.h: Check that __STDC_WANT_DEC_FP__ is defined,
9910         not that it is 1.
9911
9912         * c-cppbuiltin.c (c_cpp_builtins): Remove definition of
9913         __STDC_WANT_DEC_FP__.
9914
9915 2007-04-19  Joseph Myers  <joseph@codesourcery.com>
9916
9917         * configure.ac: Allow both powerpc*-*-linux* and powerpc*-*-gnu*
9918         for long double compatibility.
9919         * configure: Regenerate.
9920
9921 2007-04-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
9922
9923         PR rtl-optimization/29841
9924         * cfgbuild.c (control_flow_insn_p): Return TRUE for unconditional
9925         trap instructions.
9926         * sched-deps.c (sched_analyze_insn): Prevent all non-jump instructions
9927         that may cause control flow transfer from being moved.
9928
9929 2007-04-18  Jan Hubicka  <jh@suse.cz>
9930
9931         * fold-const.c (div_if_zero_remainder): Do signed divide for pointer
9932         types.
9933
9934 2007-04-18  Eric Christopher  <echristo@apple.com>
9935
9936         * config/rs6000/darwin.md (load_macho_picbase): Use link register
9937         only. Update operands.
9938         * config/rs6000/rs6000.c (rs6000_emit_prologue): Update caller.
9939         * config/rs6000/rs6000.md (builtin_setjmp_receiver): Ditto. Move from
9940         link register to pic register.
9941
9942 2007-04-18  Dirk Mueller  <dmueller@suse.de>
9943
9944         PR diagnostic/31227
9945         * tree-vrp.c (search_for_addr_array): New.
9946         (check_array_bounds): Suppress warning about
9947         address taken of array refs if its not de-referenced.
9948
9949 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
9950
9951         * tree-vectorizer.c (destroy_loop_vec_info): Set loop->aux to NULL.
9952         * tree-vect-analyze.c (vect_analyze_loop_form): Set loop->aux.
9953
9954         * tree-vectorizer.h (NITERS_KNOWN_P): New.
9955         * tree-vect-analyze.c (vect_analyze_loop_form): Call NITERS_KNOWN_P
9956         instead of LOOP_VINFO_INT_NITERS to avoid having to geneate loop_info.
9957
9958         * tree-vect-analyze.c (vect_determine_vectorization_factor): Add
9959         dump print.
9960         (vect_analyze_operations): Fix indenetation.  Fix a comment.  Fix a
9961         print message.
9962         (vect_analyze_scalar_cycles): Fix indentation.
9963         (vect_enhance_data_refs_alignment): Fix check in case of peeling.
9964         (vect_mark_relevant): Include phis in relevance analysis.
9965
9966         * tree-vect-transform.c (vect_transform_loop): Add an assert.
9967
9968 2007-04-18  Anatoly Sokolov <aesok@post.ru>
9969
9970         * config/avr/avr.c (ptrreg_to_str): Replace error() with
9971         output_operand_lossage().
9972
9973 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
9974
9975         * tree-vect-transform.c (get_initial_def_for_reduction): Clean away
9976         the unused code for reduction without adjust-in-epilog to simplify the
9977         function.
9978
9979 2007-04-18  Wolfgang Gellerich  <gellerich@de.ibm.com>
9980
9981         * config/s390/s390.h (S390_TDC_POSITIVE_ZERO): New constant.
9982         (S390_TDC_NEGATIVE_ZERO): New constant.
9983         (S390_TDC_POSITIVE_NORMALIZED_NUMBER): New constant.
9984         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): New constant.
9985         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): New constant.
9986         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): New constant.
9987         (S390_TDC_POSITIVE_INFINITY): New constant.
9988         (S390_TDC_NEGATIVE_INFINITY): New constant.
9989         (S390_TDC_POSITIVE_QUIET_NAN): New constant.
9990         (S390_TDC_NEGATIVE_QUIET_NAN): New constant.
9991         (S390_TDC_POSITIVE_SIGNALING_NAN): New constant.
9992         (S390_TDC_NEGATIVE_SIGNALING_NAN): New constant.
9993         (S390_TDC_INFINITY): New constant.
9994         * config/s390/s390.c (s390_canonicalize_comparison): Renamed
9995         UNSPEC_CMPINT to UNSPEC_CCU_TO_INT, added a UNSPEC_CCU_TO_INT-like
9996         optimization for UNSPEC_CCZ_TO_INT.
9997         * config/s390/s390.md ("*TDC_insn_<mode>"): New insn.
9998         ("*ccz_to_int"): New insn.
9999         ("isinf<mode>2"): New insn.
10000         (UNSPEC_CMPINT): Renamed to UNSPEC_CCU_TO_INT.
10001         (UNSPEC_CCU_TO_INT): New constant, replaces UNSPEC_CMPINT.
10002         (UNSPEC_CCZ_TO_INT): New constant.
10003
10004 2007-04-18  Richard Guenther  <rguenther@suse.de>
10005
10006         PR tree-optimization/19431
10007         PR tree-optimization/21463
10008         * tree-pass.h (pass_phiprop): Declare.
10009         * passes.c (init_optimization_passes): New phiprop pass.
10010         * tree-ssa-forwprop.c (struct phiprop_d): New structure.
10011         (phivn_valid_p): New helper function.
10012         (phiprop_insert_phi): Likewise.
10013         (propagate_with_phi): Likewise.
10014         (tree_ssa_phiprop): New propagator propagating loads
10015         through phi nodes if profitable.
10016
10017 2007-04-18  Dorit Nuzman  <dorit@il.ibm.com>
10018
10019         * tree-vect-analyze.c (process_use): New function.
10020         (vect_mark_stmts_to_be_vectorized): Factor out code to process_use.
10021         Check phis in all bbs.
10022         * tree-vectorizer.c (vect_is_simple_use): Remove a no longer relavant
10023         assert.
10024
10025 2007-04-18  Bernd Schmidt  <bernd.schmidt@analog.com>
10026
10027         * reload1.c (eliminte_regs_in_insn): Use REG_EQUIV notes the same way
10028         we use REG_EQUAL.
10029
10030 2007-04-17  Anatoly Sokolov <aesok@post.ru>
10031
10032         PR target/30483
10033         * config/avr/avr.c (ptrreg_to_str): Replace gcc_unreachable() with
10034         error().
10035
10036 2007-04-17  H.J. Lu  <hongjiu.lu@intel.com>
10037
10038         * config/i386/sse.md (sse_vmaddv4sf3): Use register_operand
10039         on "0".
10040         (sse_vmmulv4sf3): Likewise.
10041         (sse2_vmaddv2df3): Likewise.
10042         (sse2_vmmulv2df3): Likewise.
10043
10044 2007-04-17  Zdenek Dvorak  <dvorakz@suse.cz>
10045
10046         PR rtl-optimization/31360
10047         * cfgloopanal.c (target_small_cost, target_pres_cost): Removed.
10048         (target_reg_cost): New.
10049         (init_set_costs): Initialize target_reg_cost.  Add comments
10050         regarding the rationale of the costs.
10051         (global_cost_for_size): Renamed to...
10052         (estimate_reg_pressure_cost): ... and simplify.  Decrease importance
10053         of register pressure.
10054         * tree-ssa-loop-ivopts.c (ivopts_global_cost_for_size): Use
10055         estimate_reg_pressure_cost.  Add number of ivs.
10056         (determine_set_costs): Dump target_reg_cost.
10057         * loop-invariant.c (gain_for_invariant):  Use
10058         estimate_reg_pressure_cost.  Removed n_inv_uses argument.
10059         (best_gain_for_invariant, find_invariants_to_move): Remove
10060         n_inv_uses.
10061         * cfgloop.h (target_small_cost, target_pres_cost): Removed.
10062         (target_reg_cost): Declare.
10063         (global_cost_for_size): Declaration removed.
10064         (estimate_reg_pressure_cost): Declare.
10065
10066 2007-04-17  Peter Bergner  <bergner@vnet.ibm.com>
10067
10068         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Force TDmode
10069         regnos into even/odd register pairs.
10070         * config/rs6000/rs6000.h [SLOW_UNALIGNED_ACCESS]: Treat DDmode and
10071         TDmode similar to the other floating point modes.
10072         [SECONDARY_MEMORY_NEEDED]: Treat DDmode similar to DFmode.
10073         * config/rs6000/dfp.md (negdd2, absdd2, negtd2, abstd2): New
10074         define_expand's.
10075         (negdd2_fpr, absdd2_fpr, nabsdd2_fpr, negtd2_fpr, abstd2_fpr,
10076         nabstd2_fpr, movdd_hardfloat64_mfpgpr): New define_insn's.
10077         (movdd_hardfloat64): Use TARGET_MFPGPR.
10078
10079 2007-04-17  Bernd Schmidt  <bernd.schmidt@analog.com>
10080
10081         * reload1.c (delete_output_reload): Don't count output in n_inherited.
10082
10083         Revert
10084         2005-01-05  Richard Henderson  <rth@redhat.com>
10085         PR rtl-opt/10692
10086         * reload1.c (do_input_reload): Restrict the optimization deleteing
10087         a previous output reload to RELOAD_FOR_INPUT.
10088
10089 2007-04-17  Dorit Nuzman  <dorit@il.ibm.com>
10090
10091         * tree-vectorizer.h (stmt_vec_info_type): Add enum value
10092         induc_vec_info_type.
10093         (vectorizable_induction): New function declaration.
10094         * tree-vect-transform.c (get_initial_def_for_induction): No need to
10095         check if already vectorized.  Find first place in BB where new stmts
10096         can be inserted.  Takes only one argument.
10097         (vectorizable_induction): New function.
10098         (vect_transform_stmt): Add case for induc_vec_info_type to call
10099         vectorizable_induction.
10100         (vect_transform_loop): Consider phis for vectorization.
10101         * tree-vect-analyze.c (vect_determine_vectorization_factor): Simplify
10102         condition.
10103         (analyze_operations): Call vectorizable_induction when analyzing phis.
10104         Fix comment.
10105         (vect_mark_stmts_to_be_vectorized): Remove redundant checks.
10106         (vect_mark_relevant): Include phis in relevance analysis.
10107         (vect_mark_stmts_to_be_vectorize): Likewise.
10108         * tree-vect-patterns.c (widened_name_p): Remove obsolete asserts.
10109
10110 2007-04-16  Lawrence Crowl  <crowl@google.com>
10111
10112         * doc/invoke.texi (Debugging Options): Add documentation for the
10113         -femit-struct-debug options -femit-struct-debug-baseonly,
10114         -femit-struct-debug-reduced, and
10115         -femit-struct-debug-detailed[=...].
10116
10117         * c-opts.c (c_common_handle_option): Add
10118         OPT_femit_struct_debug_baseonly, OPT_femit_struct_debug_reduced,
10119         and OPT_femit_struct_debug_detailed_.
10120         * c.opt: Add specifications for
10121         -femit-struct-debug-baseonly, -femit-struct-debug-reduced,
10122         and -femit-struct-debug-detailed[=...].
10123         * opts.c (set_struct_debug_option): Parse the
10124         -femit-struct-debug-... options.
10125         * opts.c (matches_main_base, main_input_basename,
10126         main_input_baselength, base_of_path, matches_main_base): Add
10127         variables and functions to compare header base name to compilation
10128         unit base name.
10129         * opts.c (should_emit_struct_debug): Add to determine to emit a
10130         structure based on the option.
10131         (dump_struct_debug) Also disabled function to debug this
10132         function.
10133         * opts.c (handle_options): Save the base name of the
10134         compilation unit.
10135
10136         * langhooks-def.h (LANG_HOOKS_GENERIC_TYPE_P): Define.
10137         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add.
10138         This hook indicates if a type is generic.  Set it by default
10139         to "never generic".
10140         * langhooks.h (struct lang_hooks_for_types): Add a new hook
10141         to determine if a struct type is generic or not.
10142         * cp/cp-tree.h (class_tmpl_impl_spec_p): Declare a C++ hook.
10143         * cp/tree.c (class_tmpl_impl_spec_p): Implement the C++ hook.
10144         * cp/cp-lang.c (LANG_HOOKS_GENERIC_TYPE_P): Override null C hook
10145         with live C++ hook.
10146
10147         * flags.h (enum debug_info_usage): Add an enumeration to describe
10148         a program's use of a structure type.
10149         * dwarf2out.c (gen_struct_or_union_type_die): Add a new parameter
10150         to indicate the program's usage of the type.  Filter structs based
10151         on the -femit-struct-debug-... specification.
10152         (gen_type_die): Split into two routines, gen_type_die and
10153         gen_type_die_with_usage.  gen_type_die is now a wrapper
10154         that assumes direct usage.
10155         (gen_type_die_with_usage): Replace calls to gen_type_die
10156         with gen_type_die_with_usage adding the program usage of
10157         the referenced type.
10158         (dwarf2out_imported_module_or_decl): Suppress struct debug
10159         information using should_emit_struct_debug when appropriate.
10160
10161 2007-04-16  Ian Lance Taylor  <iant@google.com>
10162
10163         PR tree-optimization/31522
10164         * tree-vrp.c (vr_phi_edge_counts): New static variable.
10165         (vrp_initialize): Allocate vr_phi_edge_counts.
10166         (vrp_visit_phi_node): Don't push to infinity if we saw a new
10167         executable edge.  Drop test for all constants.
10168         (vrp_finalize): Free vrp_phi_edge_counts.
10169
10170         * doc/cpp.texi (Common Predefined Macros): Clarify description of
10171         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
10172
10173         * tree-ssa-propagate.c (cfg_blocks_add): Insert blocks with fewer
10174         predecessors at head rather than tail.
10175
10176 2007-04-16  Matthias Klose  <doko@debian.org>
10177
10178         * config/alpha/linux.h (CPP_SPEC): Define.
10179         * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Extend.
10180
10181 2007-04-16  Aldy Hernandez  <aldyh@redhat.com>
10182
10183         * function.h: Remove sequence_stack extern declaration.
10184
10185 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
10186
10187         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Change to 64 on
10188         TARGET_FIDOA.
10189         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Change to 64 if __mfido__ is
10190         defined.
10191
10192 2007-04-16  Anatoly Sokolov <aesok@post.ru>
10193
10194         * config/avr/avr.c (avr_arch_types): Rearranging  array.
10195         (enum avr_arch): Add.
10196         (avr_mcu_types): Use avr_arch enumeration constants instead of
10197         numbers.
10198         * config/avr/avr.h (LINK_SPEC): Simplify.
10199
10200 2007-04-16  Kazu Hirata  <kazu@codesourcery.com>
10201
10202         * config/m68k/m68k.c (m68k_libcall_value,
10203         m68k_function_value): Use macros for register names more.
10204
10205         * config/m68k/m68k.h (FRAME_POINTER_REGNUM): Use A6_REG
10206         instead.
10207         (M68K_REGNAME): Use A6_REG.
10208         * config/m68k/m68k.md (FP_REG): Rename to A6_REG.
10209
10210 2007-04-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
10211
10212         PR middle-end/28071
10213         * sched-int.h (struct deps): Split field 'pending_lists_length' into
10214         'pending_read_list_length' and 'pending_write_list_length'.  Update
10215         comment.
10216         * sched-deps.c (add_insn_mem_dependence): Change signature.  Update
10217         to handle two length counters instead of one.  Update all uses.
10218         (flush_pending_lists, sched_analyze_1, init_deps): Update to handle
10219         two length counters instead of one.
10220         * sched-rgn.c (propagate_deps): Update to handle two length counters
10221         instead of one.
10222
10223 2007-04-16  H.J. Lu  <hongjiu.lu@intel.com>
10224
10225         PR target/31582
10226         * config/i386/i386.c (ix86_expand_vec_set_builtin): Make a
10227         copy of source, pass it to ix86_expand_vector_set and return
10228         it as target.
10229
10230 2007-04-16  David Ung  <davidu@mips.com>
10231             Joseph Myers  <joseph@codesourcery.com>
10232
10233         * config/mips/mips.h (PROCESSOR_74KC, PROCESSOR_74KF,
10234         PROCESSOR_74KX, TUNE_74K, GENERATE_MADD_MSUB): Define.
10235         * config/mips/mips.c (mips_cpu_info_table, mips_rtx_cost_data):
10236         Add 74K processor information.
10237         * config/mips/mips.md: Include 74k.md.
10238         (cpu): Add 74kc,74kf,74kx.
10239         (ISA_HAS_MADD_MSUB): Change to GENERATE_MADD_MSUB throughout.
10240         * config/mips/74k.md: New.
10241         * doc/invoke.texi (MIPS Options): Document 74K support.
10242
10243 2007-04-16  Dorit Nuzman  <dorit@il.ibm.com>
10244
10245         * tree-vect-analyze.c (vect_analyze_operations): Reorganize calls to
10246         vectorizable_* functions.
10247         * tree-vect-transform.c (vectorizable_call): Add check for
10248         STMT_VINFO_RELEVANT_P, STMT_VINFO_DEF_TYPE and STMT_VINFO_LIVE_P.
10249         (vectorizable_store): likewise.
10250         (vectorizable_conversion): Add check for STMT_VINFO_DEF_TYPE.
10251         Add comments.
10252         (vectorizable_operation, vectorizable_type_demotion): Likewise.
10253         (vectorizable_type_promotion, vectorizable_load): Likewise.
10254         (vectorizable_live_operation, vectorizable_condition): Likewise.
10255         (vectorizable_assignment): Add check for STMT_VINFO_DEF_TYPE and
10256         STMT_VINFO_LIVE_P.
10257         (vect_transform_stmt): Reorganize calls to vectorizable_* functions.
10258
10259 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
10260
10261         * config/m68k/linux.h (FUNCTION_VALUE_REGNO_P): Use macros for
10262         register numbers more.
10263         * config/m68k/m68k.h (STACK_POINTER_REGNUM,
10264         FRAME_POINTER_REGNUM, STATIC_CHAIN_REGNUM,
10265         M68K_STRUCT_VALUE_REGNUM, FUNCTION_VALUE, LIBCALL_VALUE,
10266         FUNCTION_VALUE_REGNO_P): Likewise.
10267         * config/m68k/m68kelf.h (M68K_STRUCT_VALUE_REGNUM,
10268         STATIC_CHAIN_REGNUM): Likewise.
10269         * config/m68k/m68kemb.h (FUNCTION_VALUE_REGNO_P): Likewise.
10270         * config/m68k/netbsd-elf.h (M68K_STRUCT_VALUE_REGNUM,
10271         STATIC_CHAIN_REGNUM, FUNCTION_VALUE_REGNO_P): Likewise.
10272         * config/m68k/m68k.md (FP_REG): New.
10273
10274 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
10275
10276         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Prefer 32-bit
10277         alignment on fido.
10278
10279 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
10280
10281         * config/i386/i386.c, config/s390/s390.c, config/s390/s390.md,
10282         tree-ssa-loop-niter.c, tree-ssa-structalias.c, tree-vrp.c: Fix
10283         comment typos.
10284
10285 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
10286
10287         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Ignore
10288         cold loops.
10289
10290 2007-04-14  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10291
10292         PR c/31520
10293         * c-decl.c (finish_decl): Grab the type of the decl after the call
10294         to store_init_value.
10295
10296 2007-04-14  Steven Bosscher  <steven@gcc.gnu.org>
10297
10298         * common.opt (fforward-propagate): Fix "Optimization" annotation.
10299
10300 2007-04-14  Jakub Jelinek  <jakub@redhat.com>
10301
10302         PR c++/25874
10303         * omp-low.c (expand_omp_parallel): If child_cfun->cfg, free
10304         dominators, post dominators and cleanup cfg before returning.
10305
10306 2007-04-14  Bernd Schmidt  <bernd.schmidt@analog.com>
10307
10308         * config/bfin/bfin.h (MODES_TIEABLE_P): Allow more modes to be tied.
10309         * config/bfin/bfin.md (movsi_insn): Delete two unused alternatives.
10310
10311 2007-04-14  Kazu Hirata  <kazu@codesourcery.com>
10312
10313         * config.gcc: Recognize fido.
10314         * config/m68k/m68k-devices.def (fidoa): New.
10315         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define
10316         __mfido__.
10317         (FL_FIDOA, TARGET_FIDOA): New.
10318         * config/m68k/m68k.opt (mfidoa): New.
10319
10320 2007-04-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10321
10322         PR middle-end/31322
10323         * dwarf2out.c (output_call_frame_info): Call assemble_external_libcall
10324         when a personality function is used.
10325
10326 2007-04-13  Bob Wilson  <bob.wilson@acm.org>
10327
10328         * config/xtensa/xtensa.c (xtensa_expand_builtin): Use CALL_EXPR_FN.
10329
10330 2007-04-13  Mike Stump  <mrs@apple.com>
10331
10332         * config/darwin-c.c (handle_c_option): Handle -fapple-kext here so
10333         we can...
10334         * config/darwin.opt (fapple-kext): Make C++ only.
10335         * config/darwin.c (darwin_override_options): Remove code to ensure
10336         -fapple-kext is given for C++ only.
10337
10338 2007-04-13  Richard Sandiford  <richard@codesourcery.com>
10339
10340         * config/mips/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
10341         * config/mips/mips.c (override_options): Call
10342         SUBTARGET_OVERRIDE_OPTIONS, if defined.
10343
10344 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
10345
10346         * config/i386/i386.opt (msvr3-shlib): Removed.
10347
10348         * doc/invoke.texi: Remove -msvr3-shlib.
10349
10350 2007-04-13  H.J. Lu  <hongjiu.lu@intel.com>
10351
10352         * config/i386/i386.opt (mpopcnt): Replace "popcount" instruction
10353         with "popcnt" instruction.
10354
10355 2007-04-13  Richard Guenther  <rguenther@suse.de>
10356
10357         PR tree-optimization/21258
10358         * tree-vrp.c (compare_case_labels): New helper.
10359         (find_switch_asserts): New function.
10360         (find_assert_locations): Call it for SWITCH_EXPRs.
10361
10362 2007-04-13  Uros Bizjak  <ubizjak@gmail.com>
10363
10364         * config/i386/i386.h (X87_FLOAT_MODE_P): Check for TARGET_80387.
10365         * config/i386/i386.md (*cmpfp0): Remove check for TARGET_80387, this
10366         check is now implied in X87_FLOAT_MODE_P.
10367         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
10368         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
10369         (fix_trunc<mode>_i386_fisttp): Ditto.
10370         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
10371         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
10372         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
10373         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
10374         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
10375         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
10376         (unnamed_splitters): Ditto.
10377         * config/i386/i386.c (function_value_32): Generate FIRST_FLOAT_REG
10378         for X87_FLOAT_MODE_P mode.  Override FIRST_FLOAT_REG with
10379         FIRST_SSE_REG for local functions when SSE math is enabled or
10380         for functions with sseregparm attribute.
10381         (standard_80387_constant_p): Return -1 if mode is not
10382         X87_FLOAT_MODE_P.
10383         (ix86_cc_mode): Assert that scalar mode is not DECIMAL_FLOAT_MODE_P.
10384         (ix86_expand_compare): Ditto.
10385         (ix86_expand_carry_flag_compare): Ditto.
10386         (ix86_expand_int_movcc): Check for SCALAR_FLOAT_MODE_P instead
10387         of FLOAT_MODE_P for cmp_mode and assert that cmp_mode is not
10388         DECIMAL_FLOAT_MODE_P.
10389         (ix86_preferred_output_reload_class): Use X87_FLOAT_MODE_P instead
10390         of SCALAR_FLOAT_MODE_P.
10391         (ix86_rtx_costs) [PLUS] Remove FLOAT_MODE_P and fall through to ...
10392         [MINUS]: ... here.  Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P
10393         checks before FLOAT_MODE_P.
10394         [MULT]: Add SSE_FLOAT_MODE_P and X87_FLOAT_MODE_P checks
10395         before FLOAT_MODE_P.
10396         [DIV]: Ditto.
10397         [NEG]: Ditto.
10398         [ABS]: Ditto.
10399         [SQRT]: Ditto.
10400         [FLOAT_EXTEND]: Use SSE_FLOAT_MODE_P.
10401
10402 2007-04-12  Paolo Bonzini  <bonzini@gnu.org>
10403             Charles Wilson  <libtool@cwilson.fastmail.fm>
10404
10405         * Makefile.in (stamp-as, stamp-collect-ld, stamp-nm): Remove.
10406         (libgcc.mvars): Don't depend on them.
10407         * configure.ac (as, collect-ld, nm): Create from exec-tool.in.
10408         * exec-tool.in: New.
10409
10410 2007-04-12  Brooks Moses  <brooks.moses@codesourcery.com>
10411
10412         * doc/invoke.text (--help): Document --help=common.
10413
10414 2007-04-12  Thomas Neumann  <tneumann@users.sourceforge.net>
10415
10416         * stub-objc.c (objc_build_keyword_decl): Avoid C++ keywords.
10417
10418 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10419
10420         * Makefile.in (insn-emit.o): Depend on $(INTEGRATE_H).
10421         * genemit.c (main): Emit #include "integrate.h".
10422         * config/mips/mips-protos.h (SYMBOL_HALF): New mips_symbol_type.
10423         (LOADGP_RTP): New mips_loadgp_style.
10424         * config/mips/mips.h: Include config/vxworks-dummy.h.
10425         (TARGET_RTP_PIC): New macro.
10426         (TARGET_USE_GOT): Return true for TARGET_RTP_PIC.
10427         (TARGET_USE_PIC_FN_ADDR_REG): Return true for TARGET_VXWORKS_RTP.
10428         (ASM_OUTPUT_ADDR_DIFF_ELT): Emit function-relative case tables
10429         for TARGET_RTP_PIC.
10430         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Define.  Pass down
10431         -mvxworks-pic when using -mrtp and a PIC option.
10432         * config/mips/mips.c (mips_classify_symbol): Return SYMBOL_GOT_DISP
10433         for RTP PIC.
10434         (mips_symbolic_constant_p, mips_symbolic_address_p)
10435         (mips_symbol_insns): Handle SYMBOL_HALF.
10436         (override_options): Warn about -G and -mrtp being used together.
10437         Initialize mips_lo_relocs[SYMBOL_HALF].
10438         (mips_current_loadgp_style): Return LOADGP_RTP for RTP PIC.
10439         (mips_emit_loadgp): Handle LOADGP_RTP.
10440         (mips_in_small_data_p): Return false for TARGET_VXWORKS_RTP.
10441         * config/mips/mips.md (loadgp_rtp): New insn and splitter.
10442         (tablejump): Handle function-relative case table entries if
10443         TARGET_RTP_PIC.
10444         * config/mips/predicates.md (symbol_ref_operand): New predicate.
10445
10446 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10447
10448         * config/mips/mips.md (load_call<mode>): Allow any general register.
10449         destination.
10450         (sibcall_value_internal, sibcall_value_multiple_internal)
10451         (call_value_internal, call_value_split, call_value_multiple_internal)
10452         (call_value_multiple_split): Remove constraints from operand 0.
10453
10454 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10455
10456         * config/mips/mips-protos.h: In comments, refer to loadgp_absolute
10457         rather than loadgp_noshared.
10458         * config/mips/mips.c (mips_emit_loadgp): Use gen_loadgp_absolute
10459         instead of gen_loadgp_noshared.  Use gen_loadgp_newabi instead of
10460         gen_loadgp.
10461         * config/mips/mips.md (loadgp): Rename to...
10462         (loadgp_newabi): ...this.
10463         (loadgp_noshared): Rename to...
10464         (loadgp_absolute): ...this.
10465
10466 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10467
10468         * config/mips/mips.c (mips_ok_for_lazy_binding_p): Always return
10469         false for locally-binding symbols.
10470         (mips_dangerous_for_la25_p): Check mips_global_symbol_p.
10471
10472 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10473
10474         * config/mips/mips-protos.h (SYMBOL_GOT_LOCAL): Rename to...
10475         (SYMBOL_GOT_PAGE_OFST): ...this.
10476         (SYMBOL_GOT_GLOBAL): Rename to...
10477         (SYMBOL_GOT_DISP): ...this.
10478         (SYMBOL_GOTOFF_GLOBAL): Rename to...
10479         (SYMBOL_GOTOFF_DISP): ...this.  Update comments accordingly.
10480         * config/mips/mips.c (mips_global_symbol_p): New function.
10481         (mips_symbol_binds_local_p): Likewise.
10482         (mips_classify_symbol): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP
10483         and SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST.  Use
10484         mips_global_symbol_p and mips_symbol_binds_local_p.
10485         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
10486         (override_options): Rename SYMBOL_GOT_GLOBAL to SYMBOL_GOT_DISP,
10487         SYMBOL_GOT_LOCAL to SYMBOL_GOT_PAGE_OFST and SYMBOL_GOTOFF_GLOBAL to
10488         SYMBOL_GOTOFF_DISP.
10489         (mips_ok_for_lazy_binding_p): New function.
10490         (mips_load_call_address, mips_expand_call): Use it.
10491         (mips_dangerous_for_la25_p): Likewise.
10492         * config/mips/mips.md (*xgot_hi<mode>, *xgot_lo<mode>)
10493         (*got_disp<mode>): Use got_disp_operand instead of
10494         global_got_operand.  Use SYMBOL_GOTOFF_DISP instead of
10495         SYMBOL_GOTOFF_GLOBAL.
10496         (*got_page<mode>): Use got_page_ofst_operand instead of
10497         local_got_operand.
10498         * config/mips/predicates.md (const_call_insn_operand): Use
10499         SYMBOL_GOT_DISP instead of SYMBOL_GOT_GLOBAL.
10500         (global_got_operand): Rename to...
10501         (got_disp_operand): ...this and use SYMBOL_GOT_DISP instead of
10502         SYMBOL_GOT_GLOBAL.
10503         (local_got_operand): Rename to...
10504         (got_page_ofst_operand): ...this and use SYMBOL_GOT_PAGE_OFST instead
10505         of SYMBOL_GOT_LOCAL.
10506
10507 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10508
10509         * config/mips/mips.h (TARGET_SPLIT_CALLS): Check
10510         TARGET_CALL_CLOBBERED_GP.
10511         (TARGET_SIBCALLS): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
10512         (TARGET_USE_GOT, TARGET_CALL_CLOBBERED_GP): New macros.
10513         (TARGET_CALL_SAVED_GP, TARGET_USE_PIC_FN_ADDR_REG): Likewise.
10514         (STARTING_FRAME_OFFSET): Check TARGET_CALL_CLOBBERED_GP instead
10515         of TARGET_ABICALLS && !TARGET_NEWABI.
10516         (MIPS_CALL): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
10517         * config/mips/mips.c (mips_load_call_address): Check
10518         TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
10519         (mips_global_pointer): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
10520         Check TARGET_CALL_SAVED_GP instead of TARGET_NEWABI.
10521         (mips_save_reg_p): Check TARGET_CALL_SAVED_GP instead of
10522         TARGET_ABICALLS && TARGET_NEWABI.
10523         (mips_current_loadgp_style): Check TARGET_USE_GOT instead of
10524         TARGET_ABICALLS.
10525         (mips_expand_prologue): Check TARGET_OLDABI instead of !TARGET_NEWABI.
10526         (mips_expand_epilogue): Check TARGET_CALL_SAVED_GP instead of
10527         TARGET_ABICALLS && TARGET_NEWABI.
10528         (mips_output_mi_thunk): Check TARGET_USE_GOT instead of
10529         TARGET_ABICALLS.  Check TARGET_CALL_SAVED_GP instead of
10530         TARGET_NEWABI.  Use TARGET_USE_PIC_FN_ADDR_REG to decide
10531         whether indirect calls must use $25.
10532         (mips_extra_live_on_entry): Check TARGET_GOT instead of
10533         TARGET_ABICALLS.
10534         * config/mips/mips.md (jal_macro): Check flag_pic and
10535         TARGET_CALL_CLOBBERED_GP instead of TARGET_ABICALLS and TARGET_NEWABI.
10536         (builtin_setjmp_setup, builtin_longjmp): Check TARGET_USE_GOT
10537         instead of TARGET_ABICALLS.
10538         (exception_receiver): Check TARGET_CALL_CLOBBERED_GP instead of
10539         TARGET_ABICALLS && TARGET_OLDABI.
10540         (load_call<mode>): Check TARGET_USE_GOT instead of TARGET_ABICALLS.
10541         (sibcall): In the comment above the define_insn, mention
10542         TARGET_USE_PIC_FN_ADDR_REG instead of TARGET_ABICALLS.
10543         * config/mips/constraints.md (c): Check TARGET_USE_PIC_FN_ADDR_REG
10544         instead of TARGET_ABICALLS.
10545
10546 2007-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
10547
10548         * doc/md.texi (Blackfin family constraints): Document PA and PB.
10549         * config/bfin/bfin.h (CONST_OK_FOR_P): Handle PA and PB.
10550         (MACFLAGS_MATCH_P): New macro.
10551         * config/bfin/bfin.c (print_operand): Handle MACFLAG_IS_M.
10552         (bfin_secondary_reload): Treat EVEN_AREGS and ODD_AREGS like AREGS.
10553         * config/bfin/bfin.md (MACFLAG_IS_M): New constant.  Renumber some of
10554         the other MACFLAG constants.
10555         (sum_of_accumulators, lshrpdi3, ashrpdi3): New patterns.
10556         (flag_machi): Tighten constraints.  Renumber some of the operands.
10557         (flag_machi_acconly): Tighten constraints.  Correct operand numbers in
10558         output template.
10559         (flag_machi_parts_acconly): New pattern.
10560         (flag_macinithi): Tighten constraints.  Allow any accumulator to be
10561         used.
10562         (flag_macinit1hi): Tighten constraints.
10563         (flag_mul_macv2hi_parts_acconly): New pattern.
10564
10565         * config/bfin/lib1funcs.asm (___umulsi3_highpart, __smulsi3_highpart):
10566         Use a more efficient implementation.
10567         * config/bfin/bfin.md (umulsi3_highpart, smulsi3_highpart): Emit
10568         inline sequences when not optimizing for size.
10569
10570         * config/bfin/bfin.md (movhi_low2high, movhi_high2high, movhi_low2low,
10571         movhi_high2low): Delete, merge functionality into...
10572         (packv2hi): ... this pattern.
10573
10574         2007-02-11  Jie Zhang  <jie.zhang@analog.com>
10575         * config/bfin/bfin.opt (msim): New option.
10576         (mcpu=): New option.
10577         * config/bfin/bfin-protos.h (enum bfin_cpu): New.
10578         (bfin_cpu_t): Typedef of enum bfin_cpu.
10579         (bfin_cpu_type): New declaration.
10580         * config/bfin/elf.h (STARTFILE_SPEC): Add support for
10581         -msim and -mcpu= options.
10582         (LIB_SPEC): Likewise.
10583         * config/bfin/bfin.c (bfin_cpu_type): Define.
10584         (bfin_handle_option): Handle -mcpu= option.
10585         * config/bfin/bfin.h (DEFAULT_CPU_TYPE): Define as BFIN_CPU_BF532.
10586         (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF531__, __ADSPBF532__,
10587         __ADSPBF533__ or __ADSPBF537__ according to the cpu type.
10588
10589 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10590
10591         * config.gcc (*-*-vxworks*): Don't add to tm_files in this stanza.
10592         (arm-wrs-vxworks, mips-wrs-vxworks, powerpc-wrs-vxworks)
10593         (powerpc-wrs-vxworksae): Use ${tm_file}.
10594         (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add svr4.h
10595         after elfos.h.  Remove i386/sysv4.h and add i386/vx-common.h.
10596         * config/i386/vx-common.h: New file.
10597
10598 2007-04-12  Richard Sandiford  <richard@codesourcery.com>
10599
10600         * config/vxworks.h (VXWORKS_STARTFILE_SPEC): Use -l:crt0.o instead
10601         of crt0.o%s.
10602
10603 2007-04-12  Andreas Krebbel  <krebbel1@de.ibm.com>
10604
10605         * config/s390/s390.md ("trunctddd2"): Use TDmode for the target of
10606         ldxtr.
10607
10608 2007-04-12  Douglas Gregor  <doug.gregor@gmail.com>
10609
10610         PR c++/31078
10611         PR c++/31103
10612         * c-common.c (c_build_qualified_type): Set canonical type
10613         appropriately.
10614
10615 2007-04-12  Richard Guenther  <rguenther@suse.de>
10616
10617         * tree-pretty-print.c (dump_generic_node): Print ARRAY_REF
10618         lower bound and element size if lower bound is not zero
10619         or either of the ARRAY_REF operands is set.
10620
10621 2007-04-12  Richard Guenther  <rguenther@suse.de>
10622
10623         PR tree-optimization/24689
10624         PR tree-optimization/31307
10625         * fold-const.c (operand_equal_p): Compare INTEGER_CST array
10626         indices by value.
10627         * gimplify.c (canonicalize_addr_expr): To be consistent with
10628         gimplify_compound_lval only set operands two and three of
10629         ARRAY_REFs if they are not gimple_min_invariant.  This makes
10630         it never at this place.
10631         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
10632
10633 2007-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10634
10635         * pa.c (pa_som_asm_init_sections): Ensure that cfun->machine is not
10636         null before emitting a .nsubspa directive.
10637
10638 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
10639
10640         * tree-ssa-alias.c (dump_mem_ref_stats): Do not call
10641         need_to_partition_p if there are no memory statements in the
10642         function.
10643
10644 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
10645
10646         * tree-data-ref.c (chrec_steps_divide_constant_p): Removed.
10647         (gcd_of_steps_may_divide_p): New function.
10648         (analyze_miv_subscript): Use gcd_of_steps_may_divide_p.
10649
10650 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
10651
10652         * reload.c (find_reloads_toplev, find_reloads_address,
10653         find_reloads_address_1, find_reloads_subreg_address): Use rtx_equal_p,
10654         not a pointer equality test, to decide if we need to call
10655         push_reg_equiv_alt_mem.
10656
10657 2007-04-11  Sebastian Pop  <sebastian.pop@inria.fr>
10658
10659         * tree-data-ref.c (affine_function_zero_p, constant_access_functions,
10660         insert_innermost_unit_dist_vector, add_distance_for_zero_overlaps):
10661         New.
10662         (build_classic_dist_vector): Call add_distance_for_zero_overlaps.
10663
10664 2007-04-11  Zdenek Dvorak  <dvorakz@suse.cz>
10665
10666         * tree-data-ref.c (add_multivariate_self_dist): Force the distance
10667         vector to be positive.
10668
10669 2007-04-11  Diego Novillo  <dnovillo@redhat.com>
10670
10671         PR 30735
10672         PR 31090
10673         * doc/invoke.texi: Document --params max-aliased-vops and
10674         avg-aliased-vops.
10675         * tree-ssa-operands.h (get_mpt_for, dump_memory_partitions,
10676         debug_memory_partitions): Move to tree-flow.h
10677         * params.h (AVG_ALIASED_VOPS): Define.
10678         * tree-ssa-alias.c (struct mp_info_def): Remove.  Update all
10679         users.
10680         (mp_info_t): Likewise.
10681         (get_mem_sym_stats_for): New.
10682         (set_memory_partition): Move from tree-flow-inline.h.
10683         (mark_non_addressable): Only clear the set of symbols for the
10684         partition if it exists.
10685         (dump_memory_partitions): Move from tree-ssa-operands.c
10686         (debug_memory_partitions): Likewise.
10687         (need_to_partition_p): New.
10688         (dump_mem_ref_stats): New.
10689         (debug_mem_ref_stats): New.
10690         (dump_mem_sym_stats): New.
10691         (debug_mem_sym_stats): New.
10692         (update_mem_sym_stats_from_stmt): New.
10693         (compare_mp_info_entries): New.
10694         (mp_info_cmp): Call it.
10695         (sort_mp_info): Change argument to a list of mem_sym_stats_t
10696         objects.
10697         (get_mpt_for): Move from tree-ssa-operands.c.
10698         (find_partition_for): New.
10699         (create_partition_for): Remove.
10700         (estimate_vop_reduction): New.
10701         (update_reference_counts): New.
10702         (build_mp_info): New.
10703         (compute_memory_partitions): Refactor.
10704         Document new heuristic.
10705         Call build_mp_info, update_reference_counts,
10706         find_partition_for and estimate_vop_reduction.
10707         (compute_may_aliases): Populate virtual operands before
10708         calling debugging dumps.
10709         (delete_mem_sym_stats): New.
10710         (delete_mem_ref_stats): New.
10711         (init_mem_ref_stats): New.
10712         (init_alias_info): Call it.
10713         (maybe_create_global_var): Remove alias_info argument.
10714         Get number of call sites and number of pure/const call sites
10715         from gimple_mem_ref_stats().
10716         (dump_alias_info): Call dump_memory_partitions first.
10717         (dump_points_to_info_for): Show how many times a pointer has
10718         been dereferenced.
10719         * opts.c (decode_options): For -O2 set --param
10720         max-aliased-vops to 500.
10721         For -O3 set --param max-aliased-vops to 1000 and --param
10722         avg-aliased-vops to 3.
10723         * fortran/options.c (gfc_init_options): Remove assignment to
10724         MAX_ALIASED_VOPS.
10725         * tree-flow-inline.h (gimple_mem_ref_stats): New.
10726         * tree-dfa.c (dump_variable): Dump memory reference
10727         statistics.
10728         Dump NO_ALIAS* settings.
10729         (referenced_var_lookup): Tidy.
10730         (mem_sym_stats): New.
10731         * tree-ssa-copy.c (may_propagate_copy): Return true if DEST
10732         and ORIG are different SSA names for a memory partition.
10733         * tree-ssa.c (delete_tree_ssa): Call delete_mem_ref_stats.
10734         * tree-flow.h (struct mem_sym_stats_d): Define.
10735         (mem_sym_stats_t): Define.
10736         (struct mem_ref_stats_d): Define.
10737         (struct gimple_df): Add field mem_ref_stats.
10738         (enum noalias_state): Define.
10739         (struct var_ann_d): Add bitfield noalias_state.
10740         (mem_sym_stats, delete_mem_ref_stats, dump_mem_ref_stats,
10741         debug_mem_ref_stats, debug_memory_partitions,
10742         debug_mem_sym_stats): Declare.
10743         * tree-ssa-structalias.c (update_alias_info): Update call
10744         sites, pure/const call sites and asm sites in structure
10745         returned by gimple_mem_ref_stats.
10746         Remove local variable IS_POTENTIAL_DEREF.
10747         Increase NUM_DEREFS if the memory expression is a potential
10748         dereference.
10749         Call update_mem_sym_stats_from_stmt.
10750         If the memory references memory, call
10751         update_mem_sym_stats_from_stmt for all the direct memory
10752         symbol references found.
10753         (intra_create_variable_infos): Set noalias_state field for
10754         pointer arguments according to the value of
10755         flag_argument_noalias.
10756         * tree-ssa-structalias.h (struct alias_info): Remove fields
10757         num_calls_found and num_pure_const_calls_found.
10758         (update_mem_sym_stats_from_stmt): Declare.
10759         * params.def (PARAM_MAX_ALIASED_VOPS): Change description.
10760         Set default value to 100.
10761         (PARAM_AVG_ALIASED_VOPS): Define.
10762
10763 2007-04-11  Richard Guenther  <rguenther@suse.de>
10764
10765         PR middle-end/31530
10766         * simplify-rtx.c (simplify_binary_operation_1): Do not simplify
10767         a * -b + c as c - a * b if we honor sign dependent rounding.
10768
10769 2007-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
10770
10771         * config/bfin/bfin-protos.h (bfin_expand_movmem): Renamed from
10772         bfin_expand_strmov.
10773         * config/bfin/bfin.c (bfin_expand_prologue, bfin_delegitimize_address,
10774         bfin_function_ok_for_sibcall, split_load_immediate): Remove unused
10775         variables.
10776         (initialize_trampoline): Don't use old-style function definition.
10777         (bfin_secondary_reload): Mark IN_P argument as unused.
10778
10779 2007-04-10  Sebastian Pop  <sebastian.pop@inria.fr>
10780
10781         PR tree-optimization/31343
10782         * tree-chrec.h (chrec_zerop): Moved before build_polynomial_chrec.
10783         (build_polynomial_chrec): Return a scalar when the evolution is zero.
10784         * testsuite/gcc.dg/vect/pr31343.c: New.
10785
10786 2007-04-10  Eric Christopher  <echristo@apple.com>
10787
10788         * config/i386/i386.h (X87_FLOAT_MODE_P): New.
10789         * config/i386/i386.md (*cmpfp0): Use.
10790         (*cmpfp_u, *cmpfp_<mode>, *cmpfp_i_i387): Ditto.
10791         (*cmpfp_iu_387, fix_trunc<mode>_fisttp_i386_1): Ditto.
10792         (fix_trunc<mode>_i386_fisttp): Ditto.
10793         (fix_trunc<mode>_i387_fisttp_with_temp): Ditto.
10794         (*fix_trunc<mode>_i387_1, fix_truncdi_i387): Ditto.
10795         (fix_truncdi_i387_with_temp, fix_trunc<mode>_i387): Ditto.
10796         (fix_trunc<mode>_i387_with_temp, *fp_jcc_1_387): Ditto.
10797         (*fp_jcc_2_387, *fp_jcc_5_387, *fp_jcc_6_387): Ditto.
10798         (*fp_jcc_7_387, *fp_jcc_8<mode>_387): Ditto.
10799         (unnamed_splitters): Ditto.
10800         * config/i386/i386.c (output_fix_trunc): Assert that
10801         we're not being passed a TFmode operand.
10802
10803 2007-04-10  Zdenek Dvorak  <dvorakz@suse.cz>
10804
10805         PR tree-optimization/31526
10806         * tree-inline.c (copy_cfg_body): Use last_basic_block instead of
10807         n_basic_blocks to find newly added blocks.
10808
10809 2007-04-10  Uros Bizjak  <ubizjak@gmail.com>
10810
10811         * config/i386/i386.md (fix_trunc<mode>di_sse): Remove "x" from "xm"
10812         alternative.
10813         (fix_trunc<mode>si_sse): Ditto.
10814         (*floatsisf2_mixed, *floatsisf2_sse): Ditto.
10815         (*floatsidf2_mixed, *floatsidf2_sse): Ditto.
10816         (*floatdisf2_mixed, *floatdisf2_sse): Ditto.
10817         (*floatdidf2_mixed, *floatdidf2_sse): Ditto.
10818         (floathi<mode>2): Rename from floathisf2 and floathidf2. Macroize
10819         expander using SSEMODEF mode macro.
10820         (floatsi<mode>2): Rename from floatsisf2 and floashidf2. Macroize
10821         expander using SSEMODEF mode macro.
10822         (*floathi<mode>2_i387): Rename from *floathisf2_i387 and
10823         *floathidf2_i387. Macroize insn using X87MODEF12 mode macro.
10824         (*floatsi<mode>2_i387): Rename from *floatsisf2_i387 and
10825         *floatsidf2_i387. Macroize insn using X87MODEF12 mode macro.
10826         (*floatdi<mode>2_i387): Rename from *floatdisf2_i387 and
10827         *floatdidf2_i387. Macroize insn using X87MODEF12 mode macro.
10828         (float<mode>xf2): Rename from floathixf2, floatsixf2 and floatdixf2.
10829         Macroize insn using X87MODEF mode macro.
10830
10831 2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
10832
10833         * config/i386/sse.md (sse2_pinsrw): Removed.
10834         (sse2_pextrw): Renamed to ...
10835         (*sse2_pextrw): This.
10836
10837 2007-04-09  Jan Hubicka  <jh@suse.cz>
10838
10839         PR target/27869
10840         * config/i386/sse.md
10841         (sse_vmaddv4sf3, sse_vmmulv4sf3): Remove '%' modifier.
10842         (sse_vmsmaxv4sf3_finite, sse_vmsminv4sf3_finite): Remove.
10843         (sse2_vmaddv2df3, sse2_vmmulv2df3): Remove '%' modifier.
10844         (sse2_vmsmaxv2df3_finite, sse2_vmsminv2df3_finite): Remove.
10845
10846 2007-04-09  Jan Hubicka  <jh@suse.cz>
10847
10848         * tree-ssa-ccp (maybe_fold_offset_to_component_ref): Recurse into
10849         multiple fields of union.
10850
10851 2007-04-09  Zdenek Dvorak  <dvorakz@suse.cz>
10852
10853         * cfgloopmanip.c (create_preheader): Do not use loop_preheader_edge.
10854         (create_preheaders): Check that loops are available.
10855         (fix_loop_structure): Clean up, improve comments.
10856         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa):
10857         Check that loops are available.  Set LOOP_CLOSED_SSA to the loops
10858         state flags.
10859         * tree-scalar-evolution.c (scev_finalize): Clear scalar_evolution_info.
10860         * predict.c (tree_estimate_probability): Do not call
10861         calculate_dominance_info.  Call create_preheaders.
10862         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Only call
10863         rewrite_into_loop_closed_ssa if LOOP_CLOSED_SSA is set in loops state
10864         flags.
10865         * cfgloop.c (loop_preheader_edge): Assert that loops have preheaders.
10866         * cfgloop.h (LOOP_CLOSED_SSA): New constant.
10867         * tree-cfg.c (tree_split_edge): Make an assert more precise.
10868         * tree-ssa-threadedge.c (thread_across_edge): Comment the function
10869         arguments.
10870
10871 2007-04-08  Jan Hubicka  <jh@suse.cz>
10872
10873         * tree.h (maybe_fold_offset_to_component_ref): Declare.
10874         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Export.
10875         * fold-const.c (fold_unary): Use it.
10876
10877 2007-04-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10878
10879         * varasm.c (assemble_variable): Remove call to
10880         lang_hooks.decls.prepare_assemble_variable.
10881         * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill.
10882         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE.
10883         * langhooks.h (lang_hooks_for_decls): Remove
10884         prepare_assemble_variable.
10885
10886 2007-04-08  Mike Stump  <mrs@apple.com>
10887
10888         * config/i386/i386.c: Use inc/dec on Core2.
10889
10890 2007-04-08  Steven Bosscher  <steven@gcc.gnu.org>
10891
10892         * langhooks.c (lhd_tree_inlining_add_pending_fn_decls,
10893         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
10894         lhd_tree_inlining_end_inlining): Remove.
10895         * langhooks.h (struct lang_hooks_for_tree_inlining): Remove then
10896         add_pending_fn_decls, anon_aggr_type_p, start_inlining, and
10897         end_inlining hooks.
10898         * langhooks-def.h (lhd_tree_inlining_add_pending_fn_decls,
10899         lhd_tree_inlining_anon_aggr_type_p, lhd_tree_inlining_start_inlining,
10900         lhd_tree_inlining_end_inlining): Remove prototypes.
10901         (LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
10902         LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
10903         LANG_HOOKS_TREE_INLINING_START_INLINING,
10904         LANG_HOOKS_TREE_INLINING_END_INLINING): Remove.
10905
10906         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Do
10907         not set it.
10908
10909 2007-04-08  Anatoly Sokolov <aesok@post.ru>
10910
10911         PR target/29932
10912         * config/avr/predicates.md (io_address_operand): Delete predicate.
10913         (low_io_address_operand): Don't use 'mode' argument.
10914         (higth_io_address_operand): Rename ...
10915         (high_io_address_operand): ... to this. Don't use 'mode' argument.
10916         * config/avr/avr.md (*sbix_branch_tmp, *sbix_branch_tmp_bit7): Adjust
10917         for above change.
10918
10919 2007-04-07  Daniel Berlin  <dberlin@dberlin.org>
10920
10921         Revert change removing staticp.
10922
10923 2007-04-07  Anatoly Sokolov <aesok@post.ru>
10924
10925         PR target/30289
10926         * config/avr/avr.md (*clrmemqi, *clrmemhi): Mark operand 4 as
10927         earlyclobber.
10928
10929 2007-04-07  Bruce Korb  <bkorb@gnu.org>
10930
10931         * c.opt: Add -Wformat-contains-nul.
10932         * c-format.c (set_Wformat):  Set warn_format_contains_nul to the
10933           -Wformat setting.
10934         (check_format_info_main): Check OPT_Wformat_contains_nul before emitting
10935         the NUL byte warning.
10936
10937 2007-04-07  H.J. Lu  <hongjiu.lu@intel.com>
10938
10939         * config/i386/i386.c (ix86_handle_option): Handle SSSE3.
10940
10941 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
10942
10943         * tree.c (staticp): No longer use staticp langhook.
10944         * langhooks.c (lhd_staticp): Removed.
10945         * langhooks.h (struct lang_hooks): Remove staticp.
10946         * c-common.c (c_staticp): Remove.
10947         * c-common.h (c_staticp): Ditto.
10948         * langhooks-defs.h (lhd_staticp): Ditto.
10949         (LHD_HOOKS_STATICP): Ditto
10950         * tree.h (gcc_assert_lowered): New macro.
10951
10952 2007-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
10953
10954         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Add and use
10955         argument "reliable".
10956         (infer_loop_bounds_from_ref, infer_loop_bounds_from_array):
10957         Add argument "reliable".  Propagate it through calls.
10958         (infer_loop_bounds_from_undefined):  Derive number of iterations
10959         estimates from references in blocks that do not dominate loop latch.
10960         (gcov_type_to_double_int): New function.
10961         (estimate_numbers_of_iterations_loop): Use gcov_type_to_double_int
10962         and expected_loop_iterations_unbounded.
10963         * cfgloopanal.c (expected_loop_iterations_unbounded): New function.
10964         (expected_loop_iterations): Use expected_loop_iterations_unbounded.
10965         * tree-data-ref.c (estimated_loop_iterations): Export.
10966         (get_references_in_stmt): Fix -- do not return addresses of local
10967         objects.
10968         * cfgloop.h (expected_loop_iterations_unbounded,
10969         estimated_loop_iterations): Declare.
10970
10971 2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
10972
10973         * tree-sra.c (sra_build_elt_assignment): Initialize min/maxshift.
10974
10975 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
10976
10977         * config/i386/i386.md (extend<mode>xf2): Rename from extendsfxf2
10978         and extenddfxf2. Macroize expander using X87MODEF12 mode macro.
10979         (*truncdfsf_mixed, *truncdfsf_i387, *truncdfsf2_i387_1):
10980         Use output_387_reg_move().
10981         (*truncxf<mode>2): Rename from *truncxfsf2 and truncxfdf2. Macroize
10982         expander using X87MODEF12 mode macro.
10983         (*truncxfsf2_mixed): Combine alternatives, ignore "r" alternative when
10984         choosing register preferences.  Use output_387_reg_move().
10985         (*truncxfdf2_mixed): Combine alternatives, use "r" alternative
10986         instead of "x".  Use output_387_reg_move().
10987         (*truncxf<mode>2_i387_noop): Rename from *truncxfsf2_i387_noop and
10988         *truncxfdf2_i387_noop.  Macroize insn using X87MODEF12 mode macro.
10989         (*truncxf<mode>2_i387): Rename from *truncxfsf2_i387 and
10990         *truncxfdf2_i387.  Macroize insn using X87MODEF12 mode macro.
10991         Use output_387_reg_move().
10992         (*truncxf?f_mixed splitter): Macroize splitter using X87MODEF12
10993         mode macro.
10994         (*truncxf?f_i387 splitter): Ditto.
10995
10996 2007-04-06  Daniel Berlin  <dberlin@dberlin.org>
10997
10998         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
10999         LANG_HOOKS_SAFE_FROM_P.
11000         * expr.c (safe_from_p): Remove langhook call.
11001         * langhooks.h (lang_hooks): Remove safe_from_p.
11002         (lhd_safe_from_p): Remove prototype.
11003         * langhooks.c (lhd_safe_from_p): Remove.
11004
11005 2007-04-06  Jan Hubicka  <jh@suse.cz>
11006
11007         * cgraphunit.c (decide_is_function_needed): Do not keep always_inline
11008         functions.
11009
11010 2007-04-06  Uros Bizjak  <ubizjak@gmail.com>
11011
11012         * config/i386/i386.c (output_387_reg_move): Handle memory operand[0].
11013         * config/i386/i386.md (*movsf_1, *movdf_nointeger,
11014         *movdf_integer_rex64, *movdf_integer, *movxf_nointeger,
11015         *movxf_integer): Use output_387_reg_move() for x87 reg->mem
11016         alternative.
11017         (*extendsfdf2_mixed, *extendsfdf2_i387, *extendsfxf2_i387,
11018         *extenddfxf2_i387, *truncdfsf_fast_mixed): Ditto.
11019
11020 2007-04-05  Richard Henderson  <rth@redhat.com>
11021
11022         * config/alpha/alpha.c (print_operand) [+]: Remove.
11023         (alpha_end_function): Print nop if call at end of function.
11024         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Remove +.
11025         * config/alpha/alpha.md (UNSPEC_LDGP1): New.
11026         (call_osf_1_er_noreturn, call_value_osf_1_er_noreturn): New.
11027         (call_osf_2_er_nogp, call_value_osf_2_er_nogp): New.
11028         (call_osf_2_er, call_value_osf_2_er): Merge the ldgp highpart into
11029         the call pattern. Update peepholes to match.
11030
11031 2007-04-05  Janis Johnson  <janis187@us.ibm.com>
11032
11033         * doc/extend.texi (Other Builtins): Add decimal float variants
11034         of signbit.
11035         * builtins.def: Ditto.
11036         * builtins.c (expand_builtin): Ditto.
11037
11038 2007-04-05  Uros Bizjak  <ubizjak@gmail.com>
11039             H.J. Lu  <hongjiu.lu@intel.com>
11040
11041         PR target/31478
11042         * config/i386/sse.md (sse2_umulv2siv2di3): Use V4SImode instead
11043         of V8HImode when calling ix86_binary_operator_ok.
11044         (sse2_pmaddwd): Call ix86_binary_operator_ok.
11045         (sdot_prodv8hi): Operands 1 and 2 must be register.
11046
11047 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
11048
11049         * tree-sra.c (try_instantiate_multiple_fields): Needlessly
11050         initialize align to silence bogus warning.
11051
11052 2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
11053
11054         PR middle-end/22156
11055         * tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
11056         all_no_warning.
11057         (struct sra_walk_fns): Remove use_all parameter from use.
11058         (sra_hash_tree): Handle BIT_FIELD_REFs.
11059         (sra_elt_hash): Don't hash bitfld blocks.
11060         (sra_elt_eq): Skip them in parent compares as well.  Handle
11061         BIT_FIELD_REFs.
11062         (sra_walk_expr): Don't maintain or pass down use_all_p.
11063         (scan_use): Remove use_all parameter.
11064         (scalarize_use): Likewise.  Re-expand assignment to
11065         BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
11066         output, and re-scalarize after output.  Don't mark anything
11067         for no warning.
11068         (scalarize_ldst): Adjust.
11069         (scalarize_walk_gimple_modify_statement): Likewise.
11070         (build_element_name_1): Handle BIT_FIELD_REFs.
11071         (instantiate_element): Don't warn for any element whose parent
11072         is used as a whole.
11073         (instantiate_missing_elements_1): Return the sra_elt.
11074         (canon_type_for_field): New.
11075         (try_instantiate_multiple_fields): New.
11076         (instantiate_missing_elemnts): Use them.
11077         (mark_no_warning): Removed.
11078         (generate_one_element_ref): Handle BIT_FIELD_REFs.
11079         (REPLDUP, sra_build_elt_assignment): New.
11080         (generate_copy_inout): Use them.
11081         (generate_element_copy): Likewise.  Handle bitfld differences.
11082         (generate_element_zero): Don't recurse for blocks.  Use
11083         sra_build_elt_assignment.
11084         (generate_one_element_int): Take elt instead of var.  Use
11085         sra_build_elt_assignment.
11086         (generate_element_init_1): Adjust.
11087         (scalarize_use, scalarize_copy): Use REPLDUP.
11088         (scalarize_ldst): Move assert before dereference.
11089         (dump_sra_elt_name): Handle BIT_FIELD_REFs.
11090
11091 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
11092
11093         * regmove.c: Fix unused variable warnings due to previous commit.
11094
11095 2007-04-05  Steven Bosscher  <steven@gcc.gnu.org>
11096
11097         * regmove.c (STACK_GROWS_DOWNWARD): Don't boolean-ize.
11098         (regmove_bb_head): Remove.
11099         (copy_src_to_dest): Don't update regmove_bb_head and BB_HEAD.
11100         (regmove_optimize): Don't do unnecessary CFG fixes for non-existing
11101         problems with fixup_match_1.
11102         Don't initialize/free regmove_bb_head.
11103
11104         (reg_is_remote_constant_p): If an insn is in the same basic block
11105         but not before INSN, consider it remote, too.
11106
11107 2007-04-05  Anatoly Sokolov <aesok@post.ru>
11108
11109         PR target/25448
11110         * config/avr/avr.c (avr_handle_fndecl_attribute): Use the
11111         DECL_ASSEMBLER_NAME, not the DECL_NAME.
11112
11113 2007-04-05  H.J. Lu  <hongjiu.lu@intel.com>
11114
11115         * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Reformat.
11116         (CONDITIONAL_REGISTER_USAGE): Likewise.
11117
11118 2007-04-04  Richard Henderson  <rth@redhat.com>
11119
11120         * config/alpha/lib1funcs.asm: Remove unused file.
11121
11122 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
11123
11124         PR other/31356
11125         * opts.c (print_specific_help): Fix --help=<language>
11126         header line.
11127         (common_handle_option): Support --help=common.
11128
11129 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
11130
11131         PR other/31353
11132         * gcc.c (main): Do not run the linker if
11133         print_subprocess_help indicates that it shouldn't be
11134         run.
11135
11136 2007-04-04  Brooks Moses  <brooks.moses@codesourcery.com>
11137
11138         PR doc/31355
11139         * doc/invoke.texi (--help=): Document <languages> value, fix
11140         formatting in tables of values.
11141
11142 2007-04-04  Danny Smith  <dannysmith.users.sourceforge.net>
11143
11144         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Don't ignore
11145         dllimport attribute of virtual methods.
11146
11147 2007-04-04  Chen Liqin  <liqin@sunnorth.com.cn>
11148
11149         * config/score/crti.asm: Change _bss_start to __bss_start.
11150         * config/score/score.h (CONDITIONAL_REGISTER_USAGE): Added.
11151         (OUTGOING_REG_PARM_STACK_SPACE) update.
11152         * config/score/score.opt: add options to make backend support
11153         score5, score5u, score7 and score7d.
11154         * config/score/score.md: Likewise.
11155         * config/score/misc.md: Likewise.
11156         * config/score/mac.md: Likewise.
11157         * doc/invoke.texi: Likewise.
11158         * doc/md.texi: update constraints define.
11159
11160 2007-04-03  Richard Henderson  <rth@redhat.com>
11161
11162         * expr.c (store_expr): If get_signed_or_unsigned_type doesn't yield
11163         an appropriate type, use the mode instead.
11164
11165 2007-04-03  Richard Sandiford  <richard@codesourcery.com>
11166
11167         * config.gcc (mips-wrs-vxworks): Add vx-common.h to tm_file.
11168         Set the default --with-arch setting to mips2.
11169         * config/mips/t-vxworks (MULTILIB_OPTIONS, MULTILIB_MATCHES)
11170         (MULTILIB_EXCEPTIONS): Redefine with new multilibs.
11171         (MULTILIB_OSDIRNAMES): Delete.
11172         (MULTILIB_DIRNAMES): Define.
11173         * config/mips/vxworks.h (LINK_SPEC): Add VXWORKS_LINK_SPEC.
11174         (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Define.
11175         (TARGET_OS_CPP_BUILTINS): Incorporate old SUBTARGET_CPP_SPEC
11176         definitions, except for _WRS_R3K_EXC_SUPPORT.  Call
11177         VXWORKS_OS_CPP_BUILTINS.
11178         (SUBTARGET_CPP_SPEC): Redefine to VXWORKS_ADDITIONAL_CPP_SPEC.
11179         (MIPS_DEBUGGING_INFO): Undefine.
11180         (FUNCTION_PROFILER): Define to VXWORKS_FUNCTION_PROFILER.
11181
11182 2007-04-03  Jakub Jelinek  <jakub@redhat.com>
11183
11184         PR middle-end/30704
11185         * fold-const.c (native_encode_real): Encode real.c provided longs
11186         as a series of 32-bit native integers.
11187         (native_interpret_real): Interpret buffer as a series of 32-bit
11188         native integers.
11189
11190 2007-04-03  Richard Guenther  <rguenther@suse.de>
11191
11192         * genpreds.c (write_insn_constraint_len): Write function
11193         optimized for CONSTRAINT_LEN implementation.
11194         (write_tm_preds_h): Output insn_constraint_len inline and
11195         use it for CONSTRAINT_LEN.
11196         (write_insn_preds_c): Don't output insn_constraint_len.
11197         * doc/md.texi (define_register_constraint): Document multi-letter
11198         constraints shall have the same length if they start with the same
11199         letter.
11200
11201 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
11202
11203         PR target/31175
11204         * config/i386/i386.md (isinf<mode>2): Expand only when
11205         TARGET_C99_FUNCTIONS is set.
11206
11207 2007-04-03  Uros Bizjak  <ubizjak@gmail.com>
11208
11209         * config.gcc (i[34567]86-*-linux*): Add i386/t-crtpc to tm-file.
11210         (x86_64-*-linux*): Ditto.
11211         * config/i386/i386.opt (mpc): New option.
11212         * config/i386/i386.c (overrride_options): Handle
11213         ix87_precision_string.
11214         * config/i386/crtprec.c: New file.
11215         * config/i386/t-crtpc: Ditto.
11216         * config/i386/linux.h (ENDFILE_SPEC): Add handling of -mpc32, -mpc64
11217         and -mpc80 options.
11218         * config/i386/linux64.h (ENDFILE_SPEC): Ditto.
11219         * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add
11220         crtprec32.o, crtprec64.o and crtprec80.o.
11221
11222         * doc/invoke.texi (Machine Dependent Options): Add -mpc32, -mpc64
11223         and -mpc80 options.
11224         (i386 and x86-64 Options): Document -mpc32, -mpc64 and -mpc80 options.
11225
11226 2007-04-02  Eric Christopher  <echristo@apple.com>
11227
11228         * doc/invoke.texi (i386 and x86-64 Options): Document -m64
11229         limitations on darwin.
11230
11231 2007-04-02  Anatoly Sokolov <aesok@post.ru>
11232
11233         PR target/31137
11234         * config/avr/avr.c (avr_rtx_costs): Add missing 'break' statements.
11235
11236 2007-04-02  Dave Korn  <dave.korn@artimi.com>
11237
11238         * doc/tm.texi (FUNCTION_MODE): Update and extend documentation.
11239
11240 2007-04-02  Dave Korn  <dave.korn@artimi.com>
11241
11242         * libgcc2.h (exception_descriptor): Don't forward-declare.
11243         (__get_eh_table_language, __get_eh_table_version): Delete
11244         prototypes of long-dead functions.
11245
11246 2007-04-01  Daniel Berlin  <dberlin@dberlin.org>
11247
11248         * ebitmap.h: New file
11249         * ebitmap.c: New file
11250         * Makefile.in (ebitmap.o): New target.
11251
11252 2007-04-01  Jan Hubicka  <jh@suse.cz>
11253
11254         * emit-rtl.c (emit_insn_before_setloc): Do not ICE when asked to emit
11255         before very first instruction.
11256
11257 2007-04-01  Jan Hubicka  <jh@suse.cz>
11258
11259         * ggc-page.c (ggc_print_statistics): Fix formatting string to avoid
11260         waring on 64bit hosts.
11261         * bitmap.h: Fix typo in bitmap_head_def.
11262
11263 2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
11264
11265         PR rtl-optimization/31391
11266         * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
11267         into a DELETED_LABEL note, and the label is in an empty basic
11268         block, update BB_END as well as BB_HEAD.
11269
11270 2007-04-01  Richard Henderson  <rth@redhat.com>
11271
11272         PR tree-optimization/31169
11273         * tree-vrp.c (extract_range_from_binary_expr) <RSHIFT_EXPR>: Drop
11274         to varying if the range is outside [0,  prec-1].
11275
11276 2007-04-01  Richard Sandiford  <richard@codesourcery.com>
11277
11278         PR target/31388
11279         * config/mips/mips.md (load_const_gp): New insn.
11280         * config/mips/mips.c (mips_split_symbol): Avoid using or creating
11281         the MIPS16 GP pseudo register if no_new_pseudos.
11282         (mips16_gp_pseudo_reg): Use gen_load_const_gp.
11283
11284 2007-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11285
11286         PR target/31364
11287         * config/rs6000/rs6000.md (call): Convert to LR hard reg for
11288         secureplt.
11289         (call_value): Likewise.
11290
11291 2007-03-31  Wolfgang Bangerth  <bangerth@dealii.org>
11292             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11293
11294         PR 14737
11295         * doc/invoke.texi: (optimization options): Reword description
11296         of -ffast-math. Document its primary purpose.
11297
11298 2007-03-31  Richard Guenther  <rguenther@suse.de>
11299
11300         * omp-low.c (splay-tree.h): Include.
11301         (lookup_decl): Replace splay-tree usage by pointer-map.
11302         (maybe_lookup_decl): Likewise.
11303         (new_omp_context): Likewise.
11304         (delete_omp_context): Likewise.
11305         * gimplify.c (splay-tree.h): Include.
11306         * tree-inline.c (insert_decl_map): Replace splay-tree usage by
11307         pointer-map.
11308         (remap_ssa_name): Likewise.
11309         (remap_decl): Likewise.
11310         (remap_type_1): Likewise.
11311         (remap_type): Likewise.
11312         (copy_body_r): Likewise.
11313         (expand_call_inline): Likewise.
11314         (clone_body): Likewise.
11315         (copy_tree_r): Likewise.
11316         (remap_save_expr): Likewise.
11317         (unsave_r): Likewise.
11318         (unsave_expr_now): Likewise.
11319         (tree_function_versioning): Likewise.
11320         (build_duplicate_type): Likewise.
11321         * tree-inline.h (pointer-set.h): Include instead of splay-tree.h.
11322         (struct copy_body_data): Replace splay-tree by pointer-map.
11323         * Makefile.in (TREE_INLINE_H): Depend on pointer-map.h,
11324         not $(SPLAY_TREE_H).
11325         (gimplify.o): Depend on $(SPLAY_TREE_H).
11326         (omp-low.p): Likewise.
11327
11328 2007-03-31  Anatoly Sokolov <aesok@post.ru>
11329
11330         * config/avr/predicates.md (even_register_operand,
11331         odd_register_operand): New predicates.
11332         * config/avr/avr.md (movw peephole2): New.
11333         (movw_r peephole2): New.
11334
11335 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
11336
11337         * tree.h (get_signed_or_unsigned_type): New.
11338         * fold-const.c (operand_equal_for_comparison_p): Use
11339         get_signed_or_unsigned_type instead of
11340         lang_hooks.types.signed_or_unsigned_type.
11341         * expr.c (store_expr): Ditto.
11342         * langhooks.c (get_signed_or_unsigned_type): New.
11343         (lhd_signed_or_unsigned_type): New.
11344         * langhooks.h (lhd_signed_or_unsigned_type): New.
11345         * langhooks-def.h (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Define.
11346
11347 2007-03-30  Richard Henderson  <rth@redhat.com>
11348
11349         * tree-ssa-loop-ivopts.c: Include target.h.
11350         (produce_memory_decl_rtl): Pass the rtx through encode_section_info.
11351         (get_address_cost): Force SYMBOL_FLAG_LOCAL set.
11352         (force_expr_to_var_cost): Use produce_memory_decl_rtl.
11353         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on TARGET_H.
11354
11355 2007-03-30  Richard Henderson  <rth@redhat.com>
11356             Kai Tietz  <kai.tietz@onevision.com>
11357
11358         * config/i386/cygming.h (DWARF2_DEBUGGING_INFO): Enable by
11359         default for 64-bit.
11360         (PREFERRED_DEBUGGING_TYPE): Prefer dwarf2 for 64-bit.
11361         (TARGET_64BIT_MS_ABI): New.
11362         (DBX_REGISTER_NUMBER): Handle 64-bit.
11363         (SIZE_TYPE, PTRDIFF_TYPE): Use long long for 64-bit.
11364         (LONG_TYPE_SIZE): Force to 32.
11365         (REG_PARM_STACK_SPACE): New.
11366         (OUTGOING_REG_PARM_STACK_SPACE): New.
11367         (REGPARM_MAX, SSE_REGPARM_MAX): New.
11368         (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
11369         (STACK_BOUNDARY): Use 128 for 64-bit.
11370         * config/i386/cygwin.asm: Use push/ret to preserve call stack.
11371         Add 64-bit implementation.
11372         * config/i386/gthr-win32.c (__gthr_win32_key_create): Mark dtor
11373         argument unused.
11374         * config/i386/i386.c (x86_64_ms_abi_int_parameter_registers): New.
11375         (override_options): Set ix86_cmodel for TARGET_64BIT_MS_ABI.
11376         Warn for -mregparm, -mrtd in 64-bit mode; force ix86_regparm
11377         for 64-bit; use TARGET_SUBTARGET64_DEFAULT.
11378         (ix86_handle_cconv_attribute): Don't warn when ignoring if
11379         TARGET_64BIT_MS_ABI.
11380         (ix86_function_arg_regno_p): Handle TARGET_64BIT_MS_ABI.
11381         (ix86_pass_by_reference): Likewise.
11382         (ix86_function_value_regno_p): Likewise.
11383         (ix86_build_builtin_va_list): Likewise.
11384         (ix86_va_start, ix86_gimplify_va_arg): Likewise.
11385         (function_arg_advance_ms_64): New.
11386         (function_arg_advance): Call it.
11387         (function_arg_ms_64): New.
11388         (function_arg): Call it.
11389         (function_value_ms_64): New.
11390         (ix86_function_value_1): Call it.
11391         (return_in_memory_ms_64): New.
11392         (ix86_return_in_memory): Call it.
11393         (setup_incoming_varargs_ms_64): New.
11394         (ix86_setup_incoming_varargs): Call it.
11395         (ix86_expand_prologue): Handle 64-bit stack probing.
11396         (legitimize_pic_address): Handle TARGET_64BIT_MS_ABI.
11397         (output_pic_addr_const): Likewise.
11398         (x86_this_parameter): Likewise.
11399         (x86_output_mi_thunk): Likewise.
11400         (x86_function_profiler): Likewise.
11401         (TARGET_STRICT_ARGUMENT_NAMING): New.
11402         * config/i386/i386.h (TARGET_SUBTARGET64_DEFAULT): New.
11403         (TARGET_64BIT_MS_ABI): New.
11404         (CONDITIONAL_REGISTER_USAGE): Handle TARGET_64BIT_MS_ABI.
11405         * config/i386/i386.md (allocate_stack_worker): Remove.
11406         (allocate_stack_worker_32): Rename from allocate_stack_worker_1;
11407         describe the clobber of eax without a match_scratch.
11408         (allocate_stack_worker_postreload): Remove.
11409         (allocate_stack_worker_64): Rename from allocate_stack_worker_rex64;
11410         describe the clobbers of rax, r10, r11 properly; use __chkstk symbol.
11411         (allocate_stack_worker_rex64_postreload): Remove.
11412         (allocate_stack): Handle 64-bit.
11413         * config/i386/i386elf (TARGET_SUBTARGET_DEFAULT): Remove.
11414         * config/i386/mingw32.h (TARGET_VERSION): Set correctly for 64-bit.
11415         (EXTRA_OS_CPP_BUILTINS): Handle 64-bit.
11416         (STANDARD_INCLUDE_DIR): Handle TARGET_64BIT_DEFAULT.
11417         (STANDARD_STARTFILE_PREFIX_1): Likewise.
11418         * config/i386/unix.h (TARGET_SUBTARGET64_DEFAULT): New.
11419         * config.build (x86_64-*-mingw*): New host.
11420         * config.host (x86_64-*-mingw*): New host.
11421         * config.gcc (x86_64-*-mingw*): New target.
11422         * gthr-win32.h (__gthread_key_create): Mark dtor unused.
11423
11424 2007-03-30  Richard Henderson  <rth@redhat.com>
11425             Kai Tietz  <kai.tietz@onevision.com>
11426
11427         * c-pragma.c (struct def_pragma_macro_value): New.
11428         (struct def_pragma_macro): New.
11429         (pushed_macro_table): New.
11430         (dpm_hash, dpm_eq): New.
11431         (handle_pragma_push_macro, handle_pragma_pop_macro): New.
11432         (init_pragma): Install them.
11433         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): New.
11434
11435 2007-03-30  Anatoly Sokolov <aesok@post.ru>
11436
11437         * config/avr/avr.c (avr_override_options): Clear
11438         'flag_delete_null_pointer_checks'.
11439
11440 2007-03-30  Paolo Carlini  <pcarlini@suse.de>
11441
11442         PR c++/26099
11443         * c-common.h (enum rid): Add RID_HAS_NOTHROW_ASSIGN,
11444         RID_HAS_NOTHROW_CONSTRUCTOR, RID_HAS_NOTHROW_COPY,
11445         RID_HAS_TRIVIAL_ASSIGN, RID_HAS_TRIVIAL_CONSTRUCTOR,
11446         RID_HAS_TRIVIAL_COPY, RID_HAS_TRIVIAL_DESTRUCTOR,
11447         RID_HAS_VIRTUAL_DESTRUCTOR, RID_IS_ABSTRACT, RID_IS_BASE_OF,
11448         RID_IS_CONVERTIBLE_TO, RID_IS_CLASS, RID_IS_EMPTY, RID_IS_ENUM,
11449         RID_IS_POD, RID_IS_POLYMORPHIC, RID_IS_UNION, as
11450         C++ extensions.
11451         * doc/extend.texi (Extensions to the C++ Language): Add Type Traits.
11452
11453 2007-03-30  Steven Bosscher  <steven@gcc.gnu.org>
11454
11455         * regmove.c: Move all of pass_stack_adjustments from here...
11456         * combine-stack-adj.c: ...to this new file.
11457         * Makefile.in: Add rules for combine-stack-adj.o.
11458
11459 2007-03-30  Zdenek Dvorak  <dvorakz@suse.cz>
11460
11461         PR tree-optimization/31383
11462         * tree-data-ref.c (affine_function_equal_p): Do not require the
11463         vectors to have the same length.
11464
11465 2007-03-30  Jan Hubicka  <jh@suse.cz>
11466
11467         PR middle-end/30700
11468         * dwarf2out.c (reference_to_unused): Ask cgraph for functions
11469         availablility; add more sanity checking; ask varpool only about
11470         VAR_DECL.
11471
11472 2007-03-29  Richard Henderson  <rth@redhat.com>
11473
11474         * unwind-generic.h (_sleb128_t, _uleb128_t): Don't use HAVE_LONG_LONG
11475         to decide, but __SIZEOF_LONG_LONG__.
11476
11477 2007-03-29  Richard Henderson  <rth@redhat.com>
11478
11479         * emutls.c (struct __emutls_array): New.
11480         (emutls_destroy): Use it instead of casting element 0 from void*.
11481         (__emutls_get_address): Likewise.
11482
11483 2007-03-29  Richard Henderson  <rth@redhat.com>
11484
11485         * varasm.c (initializer_constant_valid_p): Don't deny
11486         DECL_DLLIMPORT_P on functions.
11487
11488         * config/i386/cygming.h: Remove function declarations.
11489         (SUBTARGET_ENCODE_SECTION_INFO): Don't undef first.
11490         (ASM_OUTPUT_LABELREF): Remove.
11491         (COMMON_ASM_OP): Remove.
11492         (ASM_OUTPUT_COMMON): Remove.
11493         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
11494         (ASM_DECLARE_OBJECT_NAME): Use i386_pe_maybe_record_exported_symbol.
11495         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11496         * config/i386/i386-interix.h (SUBTARGET_ENCODE_SECTION_INFO):
11497         Rename from TARGET_ENCODE_SECTION_INFO.
11498         * config/i386/netware.h: Likewise.
11499         * config/i386/i386-protos.h: Update.
11500         * config/i386/i386.c (ix86_function_ok_for_sibcall): Turn ifdef
11501         of TARGET_DLLIMPORT_DECL_ATTRIBUTES into straight if.
11502         (legitimate_constant_p): Reject dllimports.
11503         (dllimport_map, get_dllimport_decl): New.
11504         (legitimize_dllimport_symbol): New.
11505         (legitimize_address, ix86_expand_move): Use it.
11506         (TARGET_BINDS_LOCAL_P): Redefine for TARGET_DLLIMPORT_DECL_ATTRIBUTES.
11507         * config/i386/i386.h (DLL_IMPORT_EXPORT_PREFIX): Remove.
11508         (SYMBOL_FLAG_DLLIMPORT, SYMBOL_REF_DLLIMPORT_P): New.
11509         (SYMBOL_FLAG_DLLEXPORT, SYMBOL_REF_DLLEXPORT_P): New.
11510         * config/i386/predicates.md (constant_call_address_operand): Only
11511         accept symbols; reject dllimport_p symbols.
11512         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Use
11513         i386_pe_maybe_record_exported_symbol.
11514         * config/i386/winnt.c (DLL_IMPORT_PREFIX, DLL_EXPORT_PREFIX): Remove.
11515         (i386_pe_determine_dllexport_p): Rename from i386_pe_dllexport_p.
11516         (i386_pe_determine_dllimport_p): Rename from i386_pe_dllimport_p;
11517         trust the setting of DECL_DLLIMPORT_P.
11518         (i386_pe_dllexport_name_p, i386_pe_dllimport_name_p): Remove.
11519         (i386_pe_mark_dllexport, i386_pe_mark_dllimport): Remove.
11520         (gen_stdcall_or_fastcall_suffix): Return NULL if no change required;
11521         tidy the argument scanning loop.
11522         (i386_pe_encode_section_info): Set SYMBOL_FLAG_DLLIMPORT and
11523         SYMBOL_FLAG_DLLEXPORT in SYMBOL_REF_FLAGS.
11524         (i386_pe_strip_name_encoding): Remove.
11525         (i386_pe_binds_local_p): New.
11526         (i386_pe_strip_name_encoding_full): Use default_strip_name_encoding.
11527         (i386_pe_output_labelref): Remove.
11528         (i386_pe_asm_output_aligned_decl_common): New.
11529         (i386_pe_maybe_record_exported_symbol): Rename from
11530         i386_pe_record_exported_symbol; check for dllexported symbols.
11531
11532 2007-03-29  Zack Weinberg  <zack@mrtock.ucsd.edu>
11533
11534         * gengtype.c (oprintf): Mostly revert changes from 2007-03-26;
11535         add comment explaining why vsnprintf cannot be used.
11536
11537 2007-03-29  Douglas Gregor  <doug.gregor@gmail.com>
11538
11539         PR tree-optimization/30666
11540         * tree.c (build_complex_type): When creating type names for DWARF2
11541         debug info, create TYPE_DECLs for TYPE_NAME instead of
11542         IDENTIFIER_NODEs.
11543         (build_common_tree_nodes_2): Use build_complex_type when building
11544         predefined complex types, to preserve canonical types.
11545
11546 2007-03-29  Steven Bosscher  <steven@gcc.gnu.org>
11547
11548         * ifcvt.c (struct noce_if_info): Add then_else_reversed field.
11549         (noce_get_alt_condition): Look at it to determine whether to
11550         reverse the condition or not.
11551         (noce_get_condition): Substitute the truth for lies.
11552         (noce_find_if_block): Set the then_else_reversed field.
11553
11554 2007-03-29  Lars Poeschel <larsi@wh2.tu-dresden.de>
11555
11556         * config/fr30/fr30.md (movdi): Do not accept immediates as the
11557         destination of this insn.
11558         * config/fr30/fr30.c (fr30_move_double): Use emit_move_insn rather
11559         than calling gen_rtx_SET directly.  Use r0 to hold the value of
11560         'address + 4' rather than a stack based temporary which can be
11561         mis-optimized away.
11562
11563 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
11564
11565         * config/s390/s390.c (s390_secondary_input_reload_class,
11566         s390_secondary_output_reload_class): Functions removed.
11567         (s390_secondary_reload): New function.
11568         (TARGET_SECONDARY_RELOAD): Target macro defined.
11569         * config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS,
11570         SECONDARY_OUTPUT_RELOAD_CLASS): Macro definitions removed.
11571         * config/s390/s390.md ("reload_outti", "reload_outdi",
11572         "reload_indi", "reload_insi", "reload_out<mode>", "reload_in<mode>",
11573         "reload_out<mode>"): Expanders removed.
11574         ("reload<mode>_plus", "reload<mode>_nonoffmem_in",
11575         "reload<mode>_nonoffmem_out"): Expanders added.
11576
11577 2007-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
11578
11579         * regmove.c (optimize_reg_copy_1): Don't perform DEST->SRC repair
11580         action if SRC->DEST replacement failed anyway.
11581
11582 2007-03-28  Mike Stump  <mrs@apple.com>
11583
11584         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Add.
11585         * config/darwin.h (MAX_OFILE_ALIGNMENT): Fix.
11586         * config/rs6000/darwin.h (ASM_OUTPUT_ALIGNED_COMMON): Removed #undef.
11587
11588 2007-03-28  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
11589
11590         * config.gcc: Accept barcelona as a variant of amdfam10.
11591         * config/i386/i386.c (override_options): Likewise.
11592         * doc/invoke.texi: Likewise.
11593
11594 2007-03-28  Eric Botcazou  <ebotcazou@adacore.com>
11595
11596         * tree-dfa.c (get_ref_base_and_extent): Do not expect positive
11597         offsets for BIT_FIELD_REF and COMPONENT_REF.
11598
11599 2007-03-28  Richard Guenther  <rguenther@suse.de>
11600
11601         * tree.c (is_global_var): Move ...
11602         * tree-flow-inline.h (is_global_var): ... here.
11603         * tree.h (is_global_var): Remove declaration.
11604
11605 2007-03-28  Uros Bizjak  <ubizjak@gmail.com>
11606
11607         * config/i386/i386.h (X86_TUNE_PROMOTE_HIMODE_IMUL): New tuning
11608         option.
11609         (TARGET_TUNE_PROMOTE_HIMODE_IMUL): New define. Use new tuning option.
11610         * config/i386/i386.c (ix86_tune_features): Initialize new
11611         tuning option.
11612         * config/i386/predicates.md (promotable_binary_operator): Use
11613         TARGET_TUNE_PROMOTE_HIMODE_IMUL.
11614
11615 2007-03-28  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
11616
11617         PR target/31380
11618         * config/i386/sse.md (uminv16qi3): Use UMIN instead of UMAX.
11619
11620 2007-03-28  Lars Poeschel <larsi@wh2.tu-dresden.de>
11621
11622         * config/fr30/fr30.md (movsi_internal): Change destination
11623         constraint from m to V and add m to the end.
11624
11625 2007-03-28  Christian Bruel  <christian.bruel@st.com>
11626
11627         * config/sh/sh.md (movsi_i): Fix type attribute.
11628
11629 2007-03-28  Christian Bruel  <christian.bruel@st.com>
11630
11631         * config/sh/sh.md (movsi_ie): Fix memory constraints attribute length.
11632         (movsf_ie): Likewise.
11633
11634 2007-03-28  Christian Bruel  <christian.bruel@st.com>
11635
11636         * config.gcc: Add sh4-300 to multilib.
11637         * config/sh/t-mlib-sh4-300: New file.
11638
11639 2007-03-28  Andreas Krebbel  <krebbel1@de.ibm.com>
11640
11641         * config/s390/s390.md ("fix_trunc<mode>di2"): New expander.
11642         ("fix_trunc<DFP:mode>di2_dfp"): New insn definition renamed from
11643         fix_trunc<mode>di2.
11644         ("fixuns_truncdddi2", "fixuns_trunctddi2"): Use
11645         fix_trunc<DFP:mode>di2_dfp instead of fix_trunc<mode>di2.
11646         ("fix_truncdfsi2", "fix_truncsfsi2", "fixuns_truncdddi2",
11647         "fixuns_trunctddi2"): Whitespace fix.
11648
11649 2007-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
11650
11651         * config/sh/sh.h (CALL_COOKIE_RET_TRAMP_SHIFT): Move after
11652         the definition of struct sh_args.
11653         (CALL_COOKIE_RET_TRAMP, CALL_COOKIE_STACKSEQ_SHIFT,
11654         CALL_COOKIE_INT_REG_GET): Likewise.
11655
11656 2007-03-28  Steven Bosscher  <steven@gcc.gnu.org>
11657
11658         * ifcvt.c (cond_exec_find_if_block): Return FALSE if no
11659         transformations are applied successfully.
11660
11661 2007-03-27  Douglas Gregor  <doug.gregor@gmail.com>
11662
11663         * tree.c (tree_contains_struct): Permit 512 tree codes.
11664         * tree.h (tree_contains_struct): Ditto.
11665         (MAX_TREE_CODES): Ditto.
11666         (struct tree_base): Make CODE 16 bits, instead of 8 bits. Add
11667         SPARE member to store remaining padding bits.
11668
11669 2007-03-27  Anatoly Sokolov <aesok@post.ru>
11670
11671         * config/avr/avr.c (avr_mcu_types): Move at90usb82 device to 'avr4'
11672         architecture.
11673
11674 2007-03-27  Janis Johnson  <janis187@us.ibm.com>
11675
11676         * configure.ac: Fix assembler test for powerpc*-linux decimal float.
11677         * configure: Regenerate.
11678
11679         * configure: Regenerate using the correct version of autoconf.
11680
11681 2007-03-27  Anatoly Sokolov  <aesok@post.ru>
11682
11683         * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack
11684         pointer regs.
11685         * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__"
11686         regs to "__SP_L__" and "__SP_H__".
11687
11688 2007-03-27  Richard Guenther  <rguenther@suse.de>
11689
11690         * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and
11691         computations with it with a HOST_WIDE_INT variable.
11692
11693 2007-03-26  Mike Stump  <mrs@apple.com>
11694
11695         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Add
11696         objective-c-header, objective-c++-header and objc++-cpp-output
11697         support.
11698         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
11699
11700 2007-03-26  Richard Henderson  <rth@redhat.com>
11701
11702         PR target/31361
11703         * config/i386/i386.c (IX86_BUILTIN_PSLLDQ128, IX86_BUILTIN_PSLLW128,
11704         IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128, IX86_BUILTIN_PSRAW128,
11705         IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128, IX86_BUILTIN_PSRLD128,
11706         IX86_BUILTIN_PSRLQ128): New.
11707         (ix86_init_mmx_sse_builtins): Add them.
11708         (ix86_expand_builtin): Expand them.
11709         * config/i386/sse.md (ashr<mode>3, lshr<mode>3, ashl<mode>3): Make
11710         operand 2 be TImode.
11711         * config/i386/emmintrin.h (_mm_slli_epi64, _mm_srai_epi16,
11712         _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32,
11713         _mm_srli_epi64): Mark __B const.
11714         (_mm_srli_si128, _mm_srli_si128): Fix disabled inline versions.
11715         (_mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, _mm_sra_epi16,
11716         _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, _mm_srl_epi64): Use
11717         new two-vector shift builtins.
11718
11719 2007-03-26  Ian Lance Taylor  <iant@google.com>
11720
11721         PR tree-optimization/31345
11722         * tree-vrp.c (extract_range_from_binary_expr): Turn ranges like
11723         [+INF, +INF(OVF)] into VARYING.
11724
11725 2007-03-26  Zack Weinberg  <zackw@panix.com>
11726
11727         * gengtype-parse.c: New file.
11728         * gengtype-yacc.y: Delete.
11729         * gengtype-lex.l: Don't include gengtype-yacc.h.
11730         Define YY_DECL and yyterminate appropriately for recursive
11731         descent parser.  yylval is now a string out-parameter to yylex.
11732         (HWS, EOID): New shorthand.
11733         (IWORD): Add a couple more types.
11734         (yylex): Add a setup stanza.  Remove the complex rules for
11735         detecting GTY'ed types and typedefs; replace with simple
11736         keyword detectors.  Adjust everything for the changed
11737         definition of yylval.  Ignore all pp-directives, not just #define.
11738         (yyerror): Delete.
11739         (parse_file): Rename yybegin; do not call yyparse.
11740         (yyend): New.
11741         * gengtype.c (xasprintf): Export again.
11742         (this_file): New.  Use everywhere __FILE__ was being used.
11743         (get_lang_bitmap): Special case types defined in gengtype.c.
11744         (do_typedef, new_structure): Suppress definition of certain types.
11745         (new_structure): Improve diagnostics of duplicate definitions.
11746         Make sure location_s is associated with input.h.
11747         (nreverse_pairs, define_location_structures): New functions.
11748         (main): Improve tagging of kludge types.  Remove old kludges
11749         for input.h types; use define_location_structures.
11750         * gengtype.h: Update prototypes.  Define token codes here.
11751         * Makefile.in: Remove all references to gengtype-yacc.
11752         Add rules for gengtype-parse.o.  Adjust rules for gengtype-lex.o
11753         and gengtype.
11754         * bitmap.h (struct bitmap_head_def): Coalesce definitions,
11755         add GTY((skip)) to the field that's only conditionally there.
11756         * doc/install.texi: Document that Bison is no longer required
11757         unless building treelang.
11758
11759         * gengtype.c: Don't include gtyp-gen.h.
11760         (srcdir): Declare here.
11761         (base_files, lang_dir_names): Allocate dynamically.
11762         (gt_files, num_gt_files, num_lang_dirs): New globals.
11763         (measure_input_list, read_input_line, read_input_list)
11764         (set_lang_bitmap): New functions.
11765         (get_base_file_bitmap): Rename get_lang_bitmap and drastically
11766         simplify, relying on read_input_list to set up the bitmaps.
11767         (main): Arguments are no longer unused.  Check for correct number
11768         of command line arguments, set srcdir and srcdir_len, then call
11769         read_input_list, before doing anything else.  No need to worry
11770         about duplicates in main loop.
11771         * configure.ac: Simplify the calculation of all_gtfiles.
11772         Put language tags in there.  Don't set or substitute
11773         all_gtfiles_files_langs or all_gtfiles_files_frags.
11774         * Makefile.in: Revamp the way gengtype is invoked, now that it
11775         takes a file on its command line with a much simpler format.
11776         Remove or replace with gtyp-input.list all references to gtyp-gen.h.
11777         (GTFILES): Remove duplicates and C source files.
11778         * c-config-lang.in, cp/config-lang.in, objc/config-lang.in
11779         * objcp/config-lang.in: Add c-pragma.h to gtfiles.
11780         * configure: Regenerate.
11781
11782         * gengtype.h: Remove all type definitions to gengtype.c; leave
11783         only definitions of options_p, type_p, and pair_p as opaque
11784         pointers.  Update prototypes.
11785         * gengtype.c: Many type definitions moved here from gengtype.h.
11786         Consolidate type definitions at the top of the file.
11787         (xvasprintf): Delete.
11788         (xasprintf): Make static.
11789         (create_nested_pointer_option): Add 'next' parameter.
11790         (create_field_all, create_field_at): New functions.
11791         (create_field): Now a thin wrapper around create_field_all.
11792         (create_optional_field): Rename create_optional_field_ and add
11793         line argument.  Original name is now a macro which supplies
11794         __LINE__.
11795         (oprintf): Use vsnprintf directly.
11796         (close_output_files): Use fatal rather than perror/exit.
11797         (note_def_vec, note_def_vec_alloc): Use create_field_at.
11798         (main): Set progname.  Don't use exit.
11799         * gengtype-yacc.y (struct_fields): Use create_field_at.
11800         (option, optionseqopt): Delete.
11801         (optionseq): Consolidate productions from option here so we
11802         can use the first argument to create_option.
11803
11804         * gengtype-lex.l: Distinguish unions from structures in the
11805         token type.  Don't call find_structure; return the tag as a string.
11806         * gengtype-yacc.y: Add new token types ENT_TYPEDEF_UNION and
11807         ENT_UNION.  Type of these, ENT_TYPEDEF_STRUCT, and ENT_STRUCT is
11808         string.  Reorganize typedef_struct production accordingly.
11809         Use create_nested_ptr_option.
11810         * gengtype.c (create_nested_ptr_option): New function.
11811         * gengtype.h: Declare it.
11812
11813         * gengtype.h (struct type): Replace 'sc' with boolean, scalar_is_char.
11814         (string_type): Don't declare.
11815         (do_scalar_typedef): Declare.
11816         (create_scalar_type): Update prototype.
11817         * gengtype.c (string_type): Make static.
11818         (scalar_nonchar, scalar_char): New.
11819         (do_scalar_typedef): Export.  Always use scalar_nonchar for the type.
11820         (resolve_typedef): Use scalar_nonchar for error recovery.
11821         (create_scalar_type): Remove name_len field.  Return scalar_char
11822         or scalar_nonchar as appropriate.
11823         (adjust_field_type): Look at scalar_is_char boolean to decide whether
11824         to use string_type.
11825         (throughout): Use scalar_nonchar instead of calling
11826         create_scalar_type, whenever possible.
11827         (main): Initialize scalar_char and scalar_nonchar before calling
11828         gen_rtx_next.
11829         * gengtype-lex.l: Adjust for removal of second argument to
11830         create_scalar_type.  Use yylval.s instead of yylval.t when
11831         returning SCALAR.
11832         * gengtype-yacc.y: Type of SCALAR is string.  Call
11833         create_scalar_type from type:SCALAR rule.  Adjust for removal of
11834         second argument to create_scalar_type.
11835
11836         * vec.h: Remove all #if IN_GENGTYPE blocks.
11837         Add comment saying that changes may require adjustments to gengtype.
11838         * gengtype.c: Don't include coretypes.h or tm.h.
11839         Add comment to inclusion of errors.h.
11840         (note_def_vec, note_def_vec_alloc): New functions.
11841         * gengtype.h: Declare new functions.
11842         * gengtype-lex.l: Don't include coretypes.h.
11843         (YY_INPUT, macro_input, push_macro_expansion, mangle_macro_name):
11844         Delete.
11845         (update_lineno): Remove unnecessary prototype.
11846         (DEF_VEC_* rules): Simplify using note_def_vec / note_def_vec_alloc.
11847         (VEC rule): Just return VEC_TOKEN.
11848         * gengtype-yacc.y (VEC_TOKEN): New token type.
11849         (type): Add a production for VEC(a,b).
11850         * Makefile.in: Update dependencies.
11851
11852         * gengtype-lex.l: Remove rules for parsing pointer-to-function
11853         typedefs that use the old PARAMS macro.
11854
11855         * gengtype-lex.l: Remove all rules and states relating to yacc
11856         input files.
11857         * gengtype-yacc.y: Similarly.
11858         * gengtype.c (note_yacc_type): Delete function.
11859         * gengtype.h: Update prototypes.
11860
11861 2007-03-26  Joseph Myers  <joseph@codesourcery.com>
11862
11863         * tree-pretty-print.c (dump_generic_node): Report precision of
11864         unnamed integer types.
11865
11866 2007-03-26  Steven Bosscher  <steven@gcc.gnu.org>
11867
11868         * ifcvt.c (noce_try_store_flag_constants): Don't check
11869         no_new_pseudos here.
11870         (noce_try_store_flag_constants): Don't check no_new_pseudos.
11871         (noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove_arith,
11872         noce_try_cmove_arith, noce_try_minmax, noce_try_abs,
11873         noce_try_sign_mask): Likewise.
11874         (if_convert): Check no_new_pseudos here.
11875
11876         (cond_exec_process_if_block, noce_process_if_block, find_if_block):
11877         Remove prototypes.
11878         (struct noce_if_info): Add then_bb, else_bb, join_bb members.
11879         (noce_get_condition): Handle new then_else_reversed argument.
11880         (noce_init_if_info): Remove, fold into noce_find_if_block.
11881         (noce_process_if_block): Take a struct noce_if_info as the
11882         argument.  Don't set up one based on ce_if_info.  Update pointer
11883         references accordingly.
11884         (cond_move_process_if_block): Likewise.
11885         (process_if_block): Removed.
11886         (find_if_block): Removed.  Move functionality two new functions,
11887         noce_find_if_block and cond_exec_find_if_block.
11888         (noce_find_if_block): New function.  Be aware of IF-THEN-JOIN
11889         blocks and the symmetric IF-ELSE-JOIN case.
11890         (cond_exec_find_if_block): Also new function mostly based on old
11891         find_if_block and process_if_block.
11892         (find_if_header): Replace find_if_block call with separately
11893         guarded calls to noce_find_if_block and cond_exec_find_if_block.
11894         (find_cond_trap): Update noce_get_condition call.
11895         (dead_or_predicable): Likewise.
11896
11897 2007-03-26  Jakub Jelinek  <jakub@redhat.com>
11898
11899         * config/i386/i386.c (IX86_BUILTIN_CMPNEPD, IX86_BUILTIN_CMPNESD):
11900         Remove.
11901         (IX86_BUILTIN_PSLLW128, IX86_BUILTIN_PSLLD128, IX86_BUILTIN_PSLLQ128,
11902         IX86_BUILTIN_PSRAW128, IX86_BUILTIN_PSRAD128, IX86_BUILTIN_PSRLW128,
11903         IX86_BUILTIN_PSRLD128, IX86_BUILTIN_PSRLQ128): Remove.
11904         (ix86_init_mmx_sse_builtins): Remove v8hi_ftype_v8hi_v2di and
11905         v4si_ftype_v4si_v2di.  Remove __builtin_ia32_psllw128,
11906         __builtin_ia32_pslld128, __builtin_ia32_psllq128,
11907         __builtin_ia32_psrlw128, __builtin_ia32_psrld128,
11908         __builtin_ia32_psrlq128, __builtin_ia32_psraw128 and
11909         __builtin_ia32_psrad128 builtins.
11910
11911 2007-03-26  Uros Bizjak  <ubizjak@gmail.com>
11912
11913         * reg-stack.c (replace_reg): Use IN_RANGE macro in gcc_assert().
11914         * config/i386/constraints.md
11915         (define_constraint "I"): Use IN_RANGE macro.
11916         (define_constraint "J"): Ditto.
11917         (define_constraint "K"): Ditto.
11918         (define_constraint "M"): Ditto.
11919         (define_constraint "N"): Ditto.
11920         (define_constraint "O"): Ditto.
11921         * config/i386/predicates.md
11922         (define_predicate "register_no_elim_operand"): Use IN_RANGE macro.
11923         (define_predicate "const_0_to_3_operand"): Ditto.
11924         (define_predicate "const_0_to_7_operand"): Ditto.
11925         (define_predicate "const_0_to_15_operand"): Ditto.
11926         (define_predicate "const_0_to_63_operand"): Ditto.
11927         (define_predicate "const_0_to_255_operand"): Ditto.
11928         (define_predicate "const_1_to_31_operand"): Ditto.
11929         (define_predicate "const_2_to_3_operand"): Ditto.
11930         (define_predicate "const_4_to_7_operand"): Ditto.
11931
11932 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
11933
11934         * config/rs6000/rs6000.c (rs6000_emit_prologue): Always clobber LR
11935         in SImode for save_world.
11936         * config/rs6000/altivec.md (save_world, restore_world): Convert to
11937         LR hard reg.
11938
11939 2007-03-25  Dorit Nuzman  <dorit@il.ibm.com>
11940
11941         PR tree-optimization/30784
11942         * fold-const.c (fold_ternary): Handle CONSTRUCTOR in case
11943         BIT_FIELD_REF.
11944
11945 2007-03-25  Revital Eres  <eres@il.ibm.com>
11946
11947         * tree-if-conv.c (if_convertible_gimple_modify_stmt_p):
11948           Fold movement_possibility function into it.
11949
11950 2007-03-25  David Edelsohn  <edelsohn@gnu.org>
11951
11952         * config/rs6000/darwin.md (load_macho_picbase): Ignore operand 0.
11953         (load_macho_picbase_{si,di}): Convert to LR hard reg.
11954         (call_indirect_nonlocal_darwin64): Same.
11955         (call_nonlocal_darwin64): Same.
11956         (call_value_indirect_nonlocal_darwin64): Same.
11957         (call_value_nonlocal_darwin64): Same.
11958         (sibcall_nonlocal_darwin64): Same.
11959         (sibcall_value_nonlocal_darwin64): Same.
11960         (sibcall_symbolic_64): Same.
11961         (sibcall_value_symbolic_64): Same.
11962         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove
11963         LR pseudo.
11964         (rs6000_emit_load_toc_table): Same.
11965         * config/rs6000/altivec.md (restore_world): Convert to LR hard reg.
11966         * config/rs6000/rs6000.md (mulh_call): Convert to LR hard reg.
11967         (mull_call): Same.
11968         (divss_call): Same.
11969         (divus_call): Same.
11970         (quoss_call): Same.
11971         (quous_call): Same.
11972         (load_toc_v4_pic_si): Same
11973         (load_toc_v4_PIC_1): Same.
11974         (load_toc_v4_PIC_1b): Same.
11975         (call_indirect_aix{32,64}): Same.
11976         (call_value_indirect_aix{32,64}): Same.
11977         (call): Same.
11978         (call_value): Same.
11979         (call_local{32,64}): Same.
11980         (call_value_local{32,64}): Same.
11981         (call_indirect_nonlocal_aix{32,64}): Same.
11982         (call_nonlocal_aix{32,64}): Same.
11983         (call_value_indirect_nonlocal_aix{32,64}): Same.
11984         (call_value_nonlocal_aix{32,64}): Same.
11985         (call_indirect_nonlocal_sysv<mode>): Same.
11986         (call_nonlocal_sysv<mode>): Same.
11987         (call_value_indirect_nonlocal_sysv<mode>): Same.
11988         (call_value_nonlocal_sysv<mode>): Same.
11989         (sibcall): Same.
11990         (sibcall_local{32,64}): Same.
11991         (sibcall_value_local{32,64}): Same.
11992         (sibcall_nonlocal_aix{32,64}): Same.
11993         (sibcall_value_nonlocal_aix{32,64}): Same.
11994         (sibcall_nonlocal_sysv<mode>): Same.
11995         (sibcall_value): Same.
11996         (sibcall_value_nonlocal_sysv<mode>): Same.
11997
11998 2007-03-24  Paul Brook  <paul@codesourcery.com>
11999
12000         * config/arm/lib1funcs.asm (div0): Use ARM_FUNC_START and do_push.
12001         * config/arm/linux-eabi.h: Remove legacy syscall hack.
12002
12003 2007-03-24  Richard Henderson  <rth@redhat.com>
12004
12005         * config/ia64/constraints.md: New file.
12006         * config/ia64/predicates.md: Replace CONST_OK_FOR_? with
12007         satisfies_constraint_?.
12008         * config/ia64/ia64.c (ia64_move_ok, ia64_legitimate_constant_p,
12009         ia64_reload_gp, spill_restore_mem, ia64_expand_prologue,
12010         ia64_expand_epilogue, ia64_split_return_addr_rtx, ia64_rtx_costs,
12011         ia64_output_mi_thunk): Likewise.
12012         (ia64_const_ok_for_letter_p): Remove.
12013         (ia64_const_double_ok_for_letter_p): Remove.
12014         (ia64_extra_constraint): Remove.
12015         * config/ia64/ia64.h (REG_CLASS_FROM_LETTER): Remove.
12016         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L,
12017         CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O, CONST_OK_FOR_P,
12018         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_G,
12019         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT,
12020         EXTRA_MEMORY_CONSTRAINT): Remove.
12021         * config/ia64/ia64.md: Include constriants.md.  Replace
12022         CONST_OK_FOR_? with satisfies_constraint_?.
12023
12024 2007-03-23  Michael Meissner  <michael.meissner@amd.com>
12025             H.J. Lu  <hongjiu.lu@intel.com>
12026
12027         * config/dfp-bit.h (DPD_BID_NAME): New macro to give either the
12028         DPD or BID name.
12029         (name macros): Use DPD_BID_NAME to convert names properly.
12030
12031         * optabs.c (DECIMAL_PREFIX): Prefix string to use for the current
12032         decimal floating point format.
12033         (init_floating_libfuncs): Change decimal functions so that they
12034         have a "bid_" prefix if the decimal system uses the BID format,
12035         and "dpd_" prefix if the decimal system uses the DPD format.
12036         (init_interclass_conv_libfuncs): Ditto.
12037         (init_intraclass_conv_libfuncs): Ditto.
12038
12039         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
12040         using the BID format.
12041
12042         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
12043         whether we are using the BID decimal format.
12044         * configure: Regenerate.
12045
12046         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
12047         the compiler has decimal floating point enabled.  Define
12048         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
12049         instead of DPD.
12050
12051         * config.in (ENABLE_DECIMAL_BID_FORMAT): New macro to say we are
12052         using the BID format.
12053
12054         * configure.ac (ENABLE_DECIMAL_BID_FORMAT): Set to 1/0 to say
12055         whether we are using the BID decimal format.
12056         * configure: Regenerate.
12057
12058         * c-cppbuiltin.c (c_cpp_builtins): Define __STDC_WANT_DEC_FP__ if
12059         the compiler has decimal floating point enabled.  Define
12060         __DECIMAL_BID_FORMAT__ if BID decimal floating point is used
12061         instead of DPD.
12062
12063         * doc/install.texi (--enable-decimal-float): Document BID and DPD
12064         options, and that it is enabled for i386/x86_64 systems.
12065
12066         * Makefile.in (enable_decimal_float): New.
12067         (DECNUMFMT): New.
12068         (DECNUMINC): Add  -I$(DECNUMFMT).
12069         (DECNUM_H): Mov decimal32.h, decimal64.h and decimal128.h
12070         to $(DECNUMFMT) from $(DECNUM).
12071
12072         * configure.ac: Support * --enable-decimal-float={no,yes,bid,dpd}.
12073         Substitute enable_decimal_float.
12074         * configure: Regenerated.
12075
12076         PR other/30529
12077         * config/dfp-bit.c (__dec_byte_swap): Use uint32_t instead of
12078         unsigned long.
12079
12080         * configure.ac: Enable decimal float for x86_64-*-linux*.
12081         * configure: Regenerated.
12082
12083         PR other/30530
12084         * dfp.c (decimal_real_arithmetic): Use decimal128FlipSign and
12085         decimal128ClearSign to flip and clear the sign bit in decimal128.
12086         (decimal_real_maxval): Set decimal128SetSign to set the sign
12087         bit in decimal128.
12088
12089 2007-03-23  Ian Lance Taylor  <iant@google.com>
12090
12091         * fold-const.c (fold_binary): Correct warning for X - c >= X.
12092
12093 2007-03-23  Ian Lance Taylor  <iant@google.com>
12094
12095         * tree-dump.c (dump_files): Correct comment.
12096
12097 2007-03-23  Ian Lance Taylor  <iant@google.com>
12098
12099         * tree-vrp.c (operand_less_p): Ignore fold overflow warnings.
12100
12101 2007-03-23  Steven Bosscher  <steven@gcc.gnu.org>
12102
12103         * tracer.c (tracer): Don't take FLAGS argument.  Assert we are
12104         in cfglayout mode.  Don't go into and out of cfglayout mode.
12105         Link the blocks in the order of the constructed traces.
12106         (rest_of_handle_tracer): Adjust call to tracer.
12107         * loop-init.c (rtl_loop_init): Assert we are in cfglayout mode.
12108         Don't go into cfglayout mode.
12109         (rtl_loop_done): Don't go out of cfglayout mode.
12110         * cfglayout.c (relink_block_chain): New function, split out from...
12111         (fixup_reorder_chain): ...here.  Remove redundant checking.
12112         (cfg_layout_finalize): Don't clear the header, footer, and aux
12113         fields here, move the code to do so to relink_block_chain.  Likewise
12114         for free_original_copy_tables.
12115         * rtl.h (tracer): Update prototype.
12116         * bb-reorder.c (reorder_basic_blocks): Don't take FLAGS argument.
12117         Assert we are in cfglayout mode.  Don't go into and out of cfglayout
12118         mode.  Use relink_block_chain to serialize the CFG according to the
12119         new basic block order.  Move targetm.cannot_modify_jumps_p check from
12120         here...
12121         (gate_handle_reorder_blocks): ...to here.
12122         (duplicate_computed_gotos): Move targetm.cannot_modify_jumps_p check
12123         from here...
12124         (gate_duplicate_computed_gotos): ...to here.
12125         (rest_of_handle_reorder_blocks): Don't see if anything has changed,
12126         something always changes when going into and out of cfglayout mode.
12127         Perform an expensive cfg cleanup while going into cfglayout mode.
12128         Always update liveness information on HAVE_conditional_execution
12129         targets.  Reserialize the basic blocks and go out of cfglayout mode.
12130         * reg-stack.c: Include cfglayout.h.
12131         (rest_of_handle_stack_regs): Go into and out of cfglayout mode around
12132         the call to reorder_basic_blocks.
12133         * basic-block.h (reorder_basic_blocks): Update prototype.
12134         (relink_block_chain): New prototype.
12135         * passes.c (pass_outof_cfg_layout_mode): Move after cse2.
12136
12137 2007-03-23  Joseph Myers  <joseph@codesourcery.com>
12138
12139         * config/mips/mips.md (type, hazard, *movdi_32bit,
12140         *movdi_gp32_fp64, *movdi_64bit, *movsi_internal, movcc,
12141         *movhi_internal, *movqi_internal, *movsf_hardfloat,
12142         *movdf_hardfloat_64bit, *movdf_hardfloat_32bit, *movdf_softfloat,
12143         movv2sf_hardfloat_64bit, load_df_low, load_df_high, store_df_high,
12144         mthc1, mfhc1): Change xfer instruction type to mfc and mtc, as
12145         applicable.
12146         (movcc): Change first xfer to multi.
12147         * config/mips/24k.md, config/mips/4100.md, config/mips/4300.md,
12148         config/mips/5000.md, config/mips/5400.md, config/mips/5500.md,
12149         config/mips/5k.md, config/mips/7000.md, config/mips/9000.md,
12150         config/mips/generic.md: Change reservations using "xfer" to use
12151         "mfc,mtc".
12152         * config/mips/sb1.md (ir_sb1_mtxfer): Use "mtc" instead of
12153         using match_operand.
12154         (ir_sb1_mfxfer): Use "mfc" instead of using match_operand.
12155         * config/mips/sr71k.md (ir_sr70_xfer_from): Use "mfc" instead of
12156         examining mode.
12157         (ir_sr70_xfer_to): Use "mtc" instead of examining mode.
12158
12159 2007-03-22  Richard Henderson  <rth@redhat.com>
12160
12161         * config/i386/i386.c: Remove unnecessary function declarations.
12162         Move targetm definition, and all related macros, to the end of
12163         the file.  Resort some functions to put definitions before uses.
12164         (ix86_attribute_table): Make static.  Move to end of file.
12165         (ix86_gimplify_va_arg): Make static.
12166
12167 2007-03-22  Richard Henderson  <rth@redhat.com>
12168
12169         * config/i386/i386.c (ix86_function_regparm): Early exit for 64-bit;
12170         don't increase local_regparm with force_align_arg_pointer check.
12171         (ix86_function_sseregparm): Assert 32-bit.
12172         (type_has_variadic_args_p): New.
12173         (ix86_return_pops_args): Early exit for 64-bit.  Reindent; use
12174         type_has_variadic_args_p.
12175         (ix86_function_arg_regno_p): Use == 0 instead of ! test for eax.
12176         (init_cumulative_args): Remove TARGET_DEBUG_ARG.  Remove zero_cum;
12177         use memset instead.  Do maybe_vaarg check first; skip attribute
12178         tests if true; skip attribute tests for 64-bit.
12179         (construct_container): Remove TARGET_DEBUG_ARG.
12180         (function_arg_advance_32, function_arg_advance_64): Split out ...
12181         (function_arg_advance): ... from here.
12182         (function_arg_32, function_arg_64): Split out ...
12183         (function_arg): ... from here.
12184         (ix86_pass_by_reference): Tidy.
12185         (ix86_function_value_regno_p): Rearrange w/ switch on regno.
12186         (function_value_32): New, from parts of ix86_function_value
12187         and ix86_value_regno.
12188         (function_value_64): New, from parts of ix86_function_value
12189         and ix86_libcall_value.
12190         (ix86_function_value_1): New.
12191         (ix86_function_value, ix86_libcall_value): Use it.
12192         (return_in_memory_32, return_in_memory_64): Split out ...
12193         (ix86_return_in_memory): ... from here.
12194         (ix86_struct_value_rtx): Skip for 64-bit.
12195         (ix86_libcall_value, ix86_value_regno): Remove.
12196         (setup_incoming_varargs_64): Split out ...
12197         (ix86_setup_incoming_varargs): ... from here.
12198         (ix86_va_start): Remove TARGET_DEBUG_ARG.
12199         (legitimate_address_p, legitimize_address): Remove TARGET_DEBUG_ADDR.
12200         * config/i386/i386-protos.h (ix86_function_value): Remove.
12201         * config/i386/i386.opt (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Remove.
12202
12203 2007-03-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12204
12205         PR other/23572
12206         * c-lex.c (interpret_float): On overflow, emit pedantic warning if
12207         infinities not supported, otherwise emit warning if -Woverflow. On
12208         underflow, emit warning if -Woverflow.
12209         * real.c (real_from_string): Return -1 if underflow, +1 if overflow
12210         and 0 otherwise.
12211         * real.h (real_from_string): Update declaration
12212
12213 2007-03-22  Kai Tietz  <kai.tietz@onevision.com>
12214             Richard Henderson  <rth@redhat.com>
12215
12216         * defaults.h (OUTGOING_REG_PARM_STACK_SPACE): Provide default.
12217         * calls.c (compute_argument_block_size, expand_call,
12218         emit_library_call_value_1): Don't ifdef OUTGOING_REG_PARM_STACK_SPACE.
12219         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
12220         * function.c (STACK_DYNAMIC_OFFSET): Likewise.
12221         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Update.
12222         * config/alpha/unicosmk.h, config/bfin/bfin.h, config/iq2000/iq2000.h,
12223         config/mips/mips.h, config/mn10300/mn10300.h, config/mt/mt.h,
12224         config/pa/pa.h, config/rs6000/rs6000.h, config/score/score.h,
12225         config/spu/spu.h, config/v850/v850.h (OUTGOING_REG_PARM_STACK_SPACE):
12226         Set to 1.
12227
12228 2007-03-22  Joseph Myers  <joseph@codesourcery.com>
12229
12230         * c-incpath.c (add_sysroot_to_chain): New.
12231         (merge_include_chains): Add sysroot argument.  Call
12232         add_sysroot_to_chain if sysrooted.
12233         (register_include_chains): Update call to merge_include_chains.
12234         * doc/cppopts.texi: Document use of '=' in include directory
12235         arguments.
12236
12237 2007-03-22  Uros Bizjak  <ubizjak@gmail.com>
12238
12239         * config/i386/i386.md (cmp<mode>): Rename from cmpsf and cmpdf.
12240         Macroize expander using SSEMODEF mode macro.  Use SSE_FLOAT_MODE_P.
12241         (*cmpfp_<mode>): Rename from *cmpfp_sf and *cmpfp_df. Macroize
12242         insn pattern using X87MODEF12 mode macro.
12243
12244 2007-03-21  Seongbae Park <seongbae.park@gmail.com>
12245
12246         * regmove.c (regmove_optimize): Use reg_mentioned_p
12247         instead of reg_overlap_mentioned_p for DST.
12248
12249 2007-03-21  Mike Stump  <mrs@apple.com>
12250
12251         * c.opt: Fixup for Objective-C/C++.
12252
12253 2007-03-21  Steve Ellcey  <sje@cup.hp.com>
12254
12255         * explow.c (convert_memory_address): Fold memory reference when
12256         POINTERS_EXTEND_UNSIGNED < 0
12257
12258 2007-03-21  Richard Henderson  <rth@redhat.com>
12259
12260         PR target/31245
12261         * config/i386/emmintrin.h (__m128i, __m128d): Mark may_alias.
12262         * config/i386/mmintrin.h (__m64): Likewise.
12263         * config/i386/xmmintrin.h (__m128): Likewise.
12264
12265 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
12266
12267         * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Remove -D options.
12268         (VXWORKS_OS_CPP_BUILTINS): Define.
12269         * config/i386/vxworks.h (VXWORKS_CPU_DEFINE): Fold into...
12270         (TARGET_OS_CPP_BUILTINS): ...here.  Use VXWORKS_OS_CPP_BUILTINS.
12271
12272 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
12273
12274         * rtl.h (constant_pool_reference_p): Delete.
12275         (find_constant_src): Declare.
12276         * rtlanal.c (find_constant_src): New function.
12277         * simplify-rtx.c (constant_pool_reference_p): Delete.
12278         * config/i386/i386.md: Use find_constant_src instead of
12279         constant_pool_reference_p/avoid_constant_pool_reference pairs.
12280
12281 2007-03-21  Richard Sandiford  <richard@codesourcery.com>
12282
12283         * doc/invoke.texi (-fpie, -fPIE): Document __pie__ and __PIE__.
12284         * c-cppbuiltin.c (c_cpp_builtins): Define them.
12285
12286 2007-03-20  Mark Mitchell  <mark@codesourcery.com>
12287
12288         * config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
12289         * config/arm/arm.c (arm_elf_asm_cdtor): New function.
12290         (arm_elf_asm_constructor): Use it.
12291         (arm_elf_asm_destructor): New function.
12292
12293 2007-03-20  Bernd Schmidt  <bernd.schmidt@analog.com>
12294
12295         * jump.c (mark_jump_label): Treat SEQUENCE specially.
12296
12297 2007-03-20  Nathan Sidwell  <nathan@codesourcery.com>
12298
12299         * config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
12300
12301 2007-03-19  Andrew Haley  <aph@redhat.com>
12302
12303         PR tree-optimization/31264
12304         * tree-vrp.c (register_edge_assert_for_1): Don't look though
12305         VIEW_CONVERT_EXPRs.
12306
12307 2007-03-19  Paolo Bonzini  <bonzini@gnu.org>
12308
12309         PR rtl-optimization/30907
12310         * fwprop.c (forward_propagate_into): Never propagate inside a loop.
12311         (fwprop_init): Always call loop_optimizer_initialize.
12312         (fwprop_done): Always call loop_optimizer_finalize.
12313         (fwprop): We always have loop info now.
12314         (gate_fwprop_addr): Remove.
12315         (pass_fwprop_addr): Use gate_fwprop as gate.
12316
12317         PR rtl-optimization/30841
12318         * df-problems.c (df_ru_local_compute, df_rd_local_compute,
12319         df_chain_alloc): Call df_reorganize_refs unconditionally.
12320         * df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
12321         refs_organized to refs_organized_size.
12322         (df_ref_create_structure): Use refs_organized_size instead of
12323         bitmap_size if refs had been organized, and keep refs_organized_size
12324         up-to-date.
12325         * df.h (struct df_ref_info): Change refs_organized to
12326         refs_organized_size.
12327         (DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
12328         bitmap_size.
12329
12330 2007-03-19  Mark Mitchell  <mark@codesourcery.com>
12331
12332         * except.c (output_function_exception_table): Do not reference the
12333         EH personality routine for functions that do not require an
12334         exception table.
12335
12336 2007-03-20  Jakub Jelinek  <jakub@redhat.com>
12337
12338         PR c/30762
12339         * c-typeck.c (convert_for_assignment): Call comptypes for
12340         RECORD_TYPE or UNION_TYPE.
12341
12342         PR inline-asm/30505
12343         * reload1.c (reload): Do invalid ASM checking after
12344         cleanup_subreg_operands.
12345
12346 2007-03-19  Jeff Law  <law@redhat.com>
12347
12348         * tree-cfg.c (find_taken_edge): Tighten conditions for
12349         optimizing computed gotos.
12350
12351 2007-03-19  Michael Matz  <matz@suse.de>
12352
12353         * builtins.c (expand_builtin_sync_operation,
12354         expand_builtin_compare_and_swap,
12355         expand_builtin_lock_test_and_set): Care for extending CONST_INTs
12356         correctly.
12357
12358         * config/i386/sync.md (sync_double_compare_and_swapdi_pic,
12359         sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
12360         for operand 3.
12361
12362 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12363
12364         * doc/tm.texi: Add brackets around the return type of
12365         TARGET_SECONDARY_RELOAD.
12366
12367 2007-03-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12368         Richard Guenther  <rguenther@suse.de>
12369
12370         PR tree-optimization/31254
12371         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
12372         Use handled_component_p () where appropriate.  Continue
12373         propagating into the rhs if we propagated into an INDIRECT_REF
12374         on the lhs.
12375
12376 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12377
12378         * config/s390/s390.md (op_type attribute): RRR instruction type added.
12379         (FP, DFP, SD_SF, DD_DF, TD_TF): New mode macros.
12380         (xde, xdee): Mode attributes adjusted to support DFP modes.
12381         (RRer, f0, op1, Rf, bt, bfp, HALF_TMODE): New mode attributes added.
12382         ("cmp<mode>", "*cmp<mode>_css_0", "*cmp<mode>_ccs", TF move splitters,
12383         DF move splitters, "floatdi<mode>2", "add<mode>3", "*add<mode>3",
12384         "*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3", "*sub<mode>3",
12385         "*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3", "*mul<mode>3",
12386         "div<mode>3", "*div<mode>3", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
12387         "*negabs<mode>2_nocc", "copysign<mode>3"): Adjusted to support DFP
12388         numbers.
12389         ("*movtf_64", "*movtf_31", "*movdf_64dfp", "*movdf_64", "*movdf_31",
12390         "movsf"): Insn definitions removed.
12391         ("*mov<mode>_64", "*mov<mode>_31", "mov<mode>", "*mov<mode>_64dfp",
12392         "*mov<mode>_64", "*mov<mode>_31", "fix_trunc<DFP:mode>di2",
12393         "trunctddd2", "truncddsd2", "extendddtd2", "extendsddd2"): Insn
12394         definitions added.
12395         ("fixuns_truncdddi2", "fixuns_trunctddi2", "mov<mode>",
12396         "reload_in<mode>", "reload_out<mode>"): Expander added.
12397         ("movtf", "movdf", "reload_outtf", "reload_outdf", "reload_intf"):
12398         Expander removed.
12399
12400 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12401
12402         * config/s390/s390.md: Only non-functional changes.  Renamed
12403         FPR mode macro to BFP all over the file.
12404
12405 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12406
12407         * config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
12408         (op_type attribute): RRF instruction type added.
12409         (fT0): New mode attribute.
12410         ("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
12411         "*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
12412         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new
12413         instruction no secondary memory is needed when moving DFmode values
12414         between GPRs and FPRs.
12415
12416 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12417
12418         * config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
12419         inverted and documentation adjusted.
12420         ("mhard-dfp", "msoft-dfp"): New options.
12421         * config/s390/s390.c (s390_handle_arch_option): New architecture
12422         switch: z9-ec.
12423         (override_options): Sanity checks for the new options added.
12424         * config.gcc: New architecture switch: z9-ec.
12425         * config/s390/s390.h (processor_flags): PF_DFP added.
12426         (TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
12427         (TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
12428         when the bit is NOT set so remove it from the defaults.
12429
12430 2007-03-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12431
12432         * genemit.c (main): Print include statement for dfp.h.
12433         * dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
12434         is not available.
12435
12436 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
12437
12438         * config/cris/t-elfmulti (EXTRA_MULTILIB_PARTS): Do not define here.
12439
12440 2007-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
12441
12442         PR target/31022
12443         * config/sh/sh.c (sh_adjust_cost): Use the result of single_set
12444         instead of PATTERN.
12445
12446 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12447
12448         * pa.c (output_deferred_plabels, output_bb, output_millicode_call,
12449         attr_length_call, output_call, output_indirect_call): Cleanup
12450         formatting of targetm calls.
12451
12452 2007-03-19  Hans-Peter Nilsson  <hp@axis.com>
12453
12454         * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define to 1.
12455
12456 2007-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12457
12458         * pa.md: Add fpstore_load and store_fpload instruction types.  Provide
12459         reservation, bypass and anti-bypass descriptions for these
12460         instructions.  Update move patterns.
12461         * pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
12462         TYPE_FPSTORE.
12463
12464 2007-03-18  Dorit Nuzman  <dorit@il.ibm.com>
12465
12466         * tree-vect-transform.c (get_initial_def_for_induction): Replace
12467         GET_MODE_NUNITS with TYPE_VECTOR_SUBPARTS.
12468         (get_initial_def_for_reduction): Likewise.
12469
12470 2007-03-16  Daniel Berlin  <dberlin@dberlin.org>
12471
12472         Fix PR tree-optimization/29922
12473         * tree-ssa-pre.c (bb_bitmap_sets): Remove RVUSE_* members.
12474         (get_representative): Removed.
12475         (value_dies_in_block_x): Update for rvuse removal.
12476         (valid_in_sets): Update for renaming of vuses_dies_in_block_x.
12477         (compute_antic_aux): Handle when PHI nodes appear in
12478         non-single-successors.
12479         (dump_bitmap_of_names): Removed.
12480         (compute_antic_safe): Renamed and removed rvuse calculation.
12481         Calculate only antic safe.
12482         (insert_into_preds_of_block): Remove assert.
12483         (execute_pre): Update for renamed functions.
12484         (defer_or_phi_translate_block): New function.
12485
12486 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
12487
12488         * config/arm/arm.c, config/arm/thumb2.md, config/m68k/m68k.c,
12489         config/spu/spu.c, omega.h, passes.c, predict.c: Fix comment
12490         typos.
12491         * doc/cpp.texi, doc/extend.texi, doc/invoke.texi: Fix typos.
12492         Follow spelling conventions.
12493
12494         * tree-data-ref.h: Remove the prototype for analyze_array.
12495
12496 2007-03-17  Dorit Nuzman  <dorit@il.ibm.com>
12497
12498         PR tree-optimization/31041
12499         * tree-vect-transform.c (get_initial_def_for_induction): Call
12500         force_gimple_operand.
12501
12502 2007-03-17  Olga Golovanevsky  <olga@il.ibm.com>
12503
12504         * ipa-type-escape.c (look_for_casts) : Revert code to use
12505         handled_component_p due to ada test a-numaux.adb.
12506
12507 2007-03-17  Kazu Hirata  <kazu@codesourcery.com>
12508
12509         * final.c (final_scan_insn): Alter the condition of a
12510         conditional trap if we have nonstandard CC.
12511
12512 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
12513
12514         * configure.ac: Remove excess quoting from asm line 0 test.
12515         * configure: Rebuilt.
12516
12517 2007-03-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12518
12519         * doc/invoke.texi (-Wconversion): Document warnings specific to C++.
12520         * c-common.c (convert_and_check): Move warning logic to...
12521         (warnings_for_convert_and_check): ...here. Define.
12522         * c-common.h (warnings_for_convert_and_check): Declare.
12523
12524 2007-03-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12525
12526         * pa.c (attr_length_call): Partially revert change of 2007-03-09.
12527         (output_call): Likewise.
12528
12529 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
12530
12531         * config/vxworks.h (SUPPORTS_INIT_PRIORITY): Define.
12532
12533 2007-03-16  Richard Sandiford  <richard@codesourcery.com>
12534
12535         * config/vx-common.h (WINT_TYPE, WINT_TYPE_SIZE): Define.
12536
12537 2007-03-16  Uros Bizjak  <ubizjak@gmail.com>
12538
12539         * config/i386/i386.c (override_options): Add PTA_NO_SAHF to k8,
12540         opteron, athlon-64 and athlon-fx processor_alias_table entries.
12541
12542 2007-03-16  Sebastian Pop  <sebastian.pop@inria.fr>
12543
12544         PR tree-optimization/31183
12545         * tree-loop-linear.c (gather_interchange_stats, try_interchange_loops):
12546         Use double_int instead of unsigned int for representing access_strides.
12547         * testsuite/gcc.dg/tree-ssa/pr31183.c: New.
12548
12549 2007-03-16  Richard Guenther  <rguenther@suse.de>
12550
12551         PR tree-optimization/31146
12552         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Restructure
12553         to allow recursion of forward_propagate_addr_expr.
12554         (forward_propagate_addr_into_variable_array_index): Likewise.
12555         (forward_propagate_addr_expr): Likewise.
12556         (tree_ssa_forward_propagate_single_use_vars): Likewise.
12557         (forward_propagate_addr_expr_1): Recurse on simple copies
12558         instead of propagating into them.  Do so for useless conversions
12559         as well.
12560         (forward_propagate_addr_expr): Clean up unused statements after
12561         recursion.
12562
12563 2007-03-16  Richard Guenther  <rguenther@suse.de>
12564
12565         * builtins.c (expand_builtin_cexpi): Use the right argument
12566         for the expansion via cexp.
12567
12568 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
12569
12570         * configure.ac: Don't require ELF binutils to tolerate # 0 "".
12571         * configure: Rebuilt.
12572
12573 2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
12574
12575         PR debug/29906
12576         * dwarf2out.c (force_type_die): Adjust comment.
12577         (dwarf2out_imported_module_or_decl): Handle base AT_import types.
12578
12579 2007-03-15  DJ Delorie  <dj@redhat.com>
12580
12581         * config/frv/predicates.md (minmax_operator): Don't check operands
12582         here.
12583
12584 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
12585
12586         * tree-ssa-loop-niter.c (record_estimate): Add "upper" argument.
12587         Update constant estimates of number of iterations.
12588         (record_nonwrapping_iv): Add "upper" argument.  "data_size_bounds_p"
12589         argument renamed to "realistic".
12590         (compute_estimated_nb_iterations): Removed.
12591         (record_niter_bound): New function.
12592         (idx_infer_loop_bounds): For possible but unlikely tail arrays,
12593         call record_nonwrapping_iv with upper = false.
12594         (infer_loop_bounds_from_signedness): Pass upper argument to
12595         record_nonwrapping_iv.
12596         (estimate_numbers_of_iterations_loop): Do not call
12597         compute_estimated_nb_iterations.  Record estimate based on profile
12598         information.  Initialize the constant estimates of number of
12599         iterations.
12600         * tree-data-ref.c (estimated_loop_iterations): Return the recorded
12601         estimates.
12602         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Add dump when
12603         number of iterations is too small.
12604         * cfgloop.h (struct nb_iter_bound): Remove "realistic" field.
12605         (EST_NOT_AVAILABLE): Removed.
12606         (struct loop): Replace estimated_nb_iterations by any_upper_bound,
12607         nb_iterations_upper_bound, any_estimate and nb_iterations_estimate
12608         fields.
12609
12610 2007-03-15  Zdenek Dvorak  <dvorakz@suse.cz>
12611
12612         * tree-ssa-loop-niter.c (refine_bounds_using_guard, bound_difference):
12613         Handle NE_EXPR guards.
12614
12615 2007-03-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12616
12617         PR c++/24924
12618         * c-opts.c (c_common_post_options): Handle C++ post-processing here.
12619         Set also -pedantic-errors by default for the  preprocessor unless
12620         -fpermissive is given.
12621
12622 2007-03-15  Richard Guenther  <rguenther@suse.de>
12623
12624         PR middle-end/29719
12625         PR middle-end/31161
12626         * builtins.c (expand_builtin_cexpi): As a fallback if we
12627         don't have builtins for sincos or cexp create a function
12628         declaration for cexp and expand to a call to that.
12629         (expand_builtin_int_roundingfn): Always fall
12630         back to floor/ceil and its variants even if they may be
12631         not available.
12632
12633 2007-03-15  Steven Bosscher  <steven@gcc.gnu.org>
12634
12635         PR middle-end/31159
12636         * cfglayout.c (fixup_reorder_chain): Postpone deleting dead
12637         jump tables, move the call to delete_dead_jumptables from here...
12638         (cfg_layout_finalize): ...to here.  But rebuild jump labels first.
12639         * cfgrtl.c (cfg_layout_can_merge_blocks_p): When not optimizing,
12640         don't allow merging of blocks that try_redirect_by_replacing_jump
12641         also does not handle when not optimizing.
12642
12643 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
12644             Francois-Xavier Coudert  <coudert@clipper.ens.fr>
12645
12646         * config/i386/i386.md (x86_sahf_1): Correctly handle
12647         HAVE_AS_IX86_SAHF.
12648
12649 2007-03-15  Uros Bizjak  <ubizjak@gmail.com>
12650
12651         PR target/31167
12652         * config/i386/i386.md (*addti3_1, *addti3_1 splitter): Use
12653         x86_64_general_operand as operand[2] predicate.  Remove "iF"
12654         from operand constraints and use "e" constraint instead.
12655         (*subti3_1, *subti3_1 splitter): Ditto.
12656         (*negti2_1, *negti2_1 splitter): Use nonimmediate_operand as
12657         operand[1] predicate.
12658
12659 2007-03-14  Sebastian Pop  <sebastian.pop@inria.fr>
12660
12661         * tree-loop-linear.c (gather_interchange_stats): For multidimensional
12662         arrays, multiply the access strides by the size of the sub-array.
12663         * testsuite/gcc.dg/tree-ssa/ltrans-5.c: New.
12664
12665 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
12666
12667         * configure.ac (HAVE_AS_IX86_SAHF): On x86 targets check whether
12668         the configured assembler supports the sahf mnemonic.
12669         * configure: Regenerate.
12670         * config.in: Regenerate.
12671
12672         * config/i386/i386.md (x86_sahf_1): Depending on HAVE_AS_IX86_SAHF,
12673         emit "sahf" or ".byte\t0x9e" as asm template.
12674
12675 2007-03-14  Michael Meissner  <michael.meissner@amd.com>
12676
12677         PR 31018
12678         * config/i386/i386.h (X86_TUNE_SHORTEN_X87_SSE): New tuning
12679         option to replace hard coded TARGET_xxx in md file.
12680         (X86_TUNE_AVOID_VECTOR_DECODE): Ditto.
12681         (X86_TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
12682         (X86_TUNE_SLOW_IMUL_IMM8): Ditto.
12683         (X86_TUNE_MOVE_M1_VIA_OR): Ditto.
12684         (X86_TUNE_NOT_UNPAIRABLE): Ditto.
12685         (X86_TUNE_NOT_VECTORMODE): Ditto.
12686         (TUNE_SHORTEN_X87_SSE): Use new tuning option.
12687         (TUNE_AVOID_VECTOR_DECODE): Ditto.
12688         (TUNE_SLOW_IMUL_IMM32_MEM): Ditto.
12689         (TUNE_SLOW_IMUL_IMM8): Ditto.
12690         (TUNE_MOVE_M1_VIA_OR): Ditto.
12691         (TUNE_NOT_UNPAIRABLE): Ditto.
12692         (TUNE_NOT_VECTORMODE): Ditto.
12693
12694         * config/i386/i386.c (ix86_tune_features): Fill in new tuning
12695         options.
12696
12697         * config/i386/i386.md (fix_trunc?f?1_sse peephole2): Use new
12698         tuning options instead of hard coded TARGET_xxx.
12699         (fix ssemode peephole2's): Ditto.
12700         (imul peephole2's): Ditto.
12701         (movsi_or): Ditto.
12702         (movdi_or_rex64): Ditto.
12703         (move peephole2): Ditto.
12704         (not peephole2's): Ditto.
12705
12706 2007-03-14  Dirk Mueller  <dmueller@suse.de>
12707
12708         * c-common.h (empty_body_warning): Rename to empty_if_body_warning.
12709         * c-common.c (empty_if_body_warning): Rephrase diagnostic message.
12710         * c-parser.c (c_parser_if_body): Always add an empty statement in case
12711         of empty body.
12712         * c-parser.c (c_parser_do_statement): Warn about empty body in
12713         do/while statement.
12714         * c-typeck (c_finish_if_stmt): Call empty_if_body_warning.
12715         * doc/invoke.texi (-Wempty-body): Update documentation.
12716
12717 2007-03-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12718
12719         PR c/21438
12720         * c-common.h (warn_for_div_by_zero): Declare.
12721         * c-common.c (warn_for_div_by_zero): Define.
12722         * c-typeck.c (build_binary_op): Call warn_for_div_zero instead of
12723         warning.
12724
12725 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
12726
12727         * Makefile.in (PREPROCESSOR_DEFINES): Add directory terminators
12728         to PREFIX and STANDARD_PREFIX.
12729
12730 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
12731             Phil Edwards  <phil@codesourcery.com>
12732
12733         * gthr-vxworks.h: Add an extern "C" wrapper for C++.
12734         (__gthread_once_t): Remove busy field for RTPs.
12735         (__GTHREAD_ONCE_INIT): Update accordingly.
12736
12737 2007-03-14  Richard Sandiford  <richard@codesourcery.com>
12738
12739         * doc/invoke.texi: Document VxWorks options.
12740
12741 2007-03-14  Uros Bizjak  <ubizjak@gmail.com>
12742
12743         * doc/invoke.texi (i386 and x86-64 Options): Clarify -msahf option.
12744
12745 2007-03-13  Seongbae Park <seongbae.park@gmail.com>
12746
12747         PR tree-optimization/30590
12748         * tree-nrv.c (tree_nrv): Check for the partial update of the
12749         return value.
12750
12751 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
12752
12753         * flags.h (flag_random_seed): Remove declaration, in favor of...
12754         * toplev.h (get_random_seed, set_random_seed): ... these.
12755         * tree.c (get_file_function_name): Use the former.
12756         * opts.c (common_handle_option): Use the latter.
12757         * toplev.c
12758
12759 2007-03-13  Steven Bosscher  <steven@gcc.gnu.org>
12760
12761         PR middle-end/31127
12762         * cse.c (cse_find_path): Do not bail out if a basic block that
12763         we already visited now becomes part of a path that starts at a
12764         different basic block.  Just disallow this, to make sure we
12765         visit each basic block at most once.
12766
12767 2007-03-13  Jan Hubicka  <jh@suse.cz>
12768
12769         * ipa-inline.c (cgraph_maybe_hot_edge_p): Look for hot/cold
12770         attributes, when profile esitmate is present, calls with very low
12771         frequency are cold.
12772
12773 2007-03-13  Zdenek Dvorak  <dvorakz@suse.cz>
12774
12775         PR tree-optimization/30730
12776         PR tree-optimization/26900
12777         * tree-ssa-loop-niter.c: Include gmp.h.
12778         (bounds): New type.
12779         (mpz_set_double_int, get_type_bounds, mpz_to_double_int,
12780         split_to_var_and_offset, determine_value_range,
12781         bound_difference_of_offsetted_base, refine_bounds_using_guard,
12782         bound_difference, bounds_add, bounds_negate,
12783         number_of_iterations_ne_max, dump_affine_iv): New functions.
12784         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
12785         assert_loop_rolls_lt, assert_loop_rolls_le): Use bounds on the
12786         difference of initial and final value of control iv to validate
12787         results.
12788         (number_of_iterations_cond): Add loop parameter.  Determine bounds
12789         on the difference of the extremes of the control iv.  Add dumps.
12790         (expand_simple_operations): Handle phi nodes.
12791         (simplify_using_initial_conditions): Do not record used conditions.
12792         (number_of_iterations_exit): Pass loop to number_of_iterations_cond.
12793         Do not set additional_info.
12794         (implies_nonnegative_p, implies_ge_p): Removed.
12795         (derive_constant_upper_bound): Do not use parameter `additional'.
12796         (record_estimate): Parameter `additional' removed.  Parameter
12797         `i_bound' added.  Do not call derive_constant_upper_bound.
12798         (record_nonwrapping_iv): Use derive_constant_upper_bound to
12799         bound the number of iterations estimate.
12800         (estimate_numbers_of_iterations_loop): Pass the estimate from
12801         the number of iterations analysis to record_estimate.
12802         * tree.h (multiple_of_p): Declare.
12803         * tree-scalar-evolution.c (expression_expensive_p): Removed.
12804         (scev_const_prop): Do not check expression_expensive_p.
12805         * fold-const.c (multiple_of_p): Exported.
12806         * double-int.c (double_int_mask): Exported.
12807         * double-int.h (double_int_mask): Declare.
12808         * tree-flow.h (struct tree_niter_desc): Removed additional_info
12809         field.  Added max field.
12810
12811 2007-03-13  David Taylor  <taylor@candd.org>
12812
12813         PR driver/12448:
12814         * gcc.c (cpp_unique_options): If -MT or -MQ is seen, don't pass
12815         default -MQ.
12816
12817 2007-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12818
12819         PR target/31123
12820         * pa.md (vdepi_ior): Don't allow zero length deposit.  Likewise for
12821         two unamed patterns.
12822
12823 2007-03-13  Uros Bizjak  <ubizjak@gmail.com>
12824
12825         * config/i386/i386.opt (mcx16, msahf): New options.
12826         * config/i386/i386.c (x86_cmpxchg16b, x86_sahf): Remove.
12827         (ix86_tune_features) [X86_TUNE_USE_SAHF]: Enable for m_GENERIC.
12828
12829         * config/i386/driver-i386.c (bit_LAHF_LM): New define.
12830         (host_detect_local_cpu): Detect cx16 and lahf_lm cpuid bits.
12831         Output -mcx16 and -msahf options when corresponding bit is set.
12832
12833         * doc/invoke.texi (i386 and x86-64 Options): Document -mcx16
12834         and -msahf options.
12835
12836 2007-03-13  Alexandre Oliva  <aoliva@redhat.com>
12837
12838         * configure.ac: Test for assembler tolerance to # 0 "".
12839         * configure, config.in: Rebuilt.
12840         * final.c (final_scan_insn): Emit it if HAVE_AS_LINE_ZERO.
12841
12842 2007-03-13  Geoffrey Keating  <geoffk@apple.com>
12843
12844         * doc/invoke.texi (Spec Files): Update for '%{,' spec.
12845
12846         * config/rs6000/darwin-fallback.c: Compile file only on powerpc.
12847         (handle_syscall): Handle direct system calls.
12848         * config/rs6000/darwin.h (HAS_MD_FALLBACK_FRAME_STATE_FOR): Delete.
12849
12850 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
12851
12852         * doc/invoke.texi: Fix cpp.info cross-reference.
12853         * doc/passes.texi: Fix gcc.info cross-reference.
12854
12855 2007-03-12  Zdenek Dvorak  <dvorakz@suse.cz>
12856
12857         PR tree-optimization/30835
12858         * lambda-code.c (can_convert_to_perfect_nest): Check whether
12859         bb_for_stmt is not NULL before accessing it.
12860
12861 2007-03-12  Joseph Myers  <joseph@codesourcery.com>
12862
12863         * gcc.c (main): Handle target_sysroot_hdrs_suffix being NULL for
12864         some multilibs.
12865
12866 2007-03-12  Brooks Moses  <brooks.moses@codesourcery.com>
12867
12868         PR 30635
12869         * doc/install.texi: Document --enable-stage1-languages
12870
12871 2007-03-12  Steven Bosscher  <steven@gcc.gnu.org>
12872
12873         * tree-pass.h (pass_into_cfg_layout_mode,
12874         pass_outof_cfg_layout_mode): Declare.
12875         * cfglayout.c (into_cfg_layout_mode, outof_cfg_layout_mode,
12876         pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): New.
12877         * passes.c (pass_into_cfg_layout_mode): Schedule before jump2.
12878         (pass_outof_cfg_layout_mode): Schedule after pass_rtl_ifcvt.
12879
12880 2007-03-12  Seongbae Park <seongbae.park@gmail.com>
12881
12882         * c-decl.c (warn_variable_length_array): New function.
12883         Refactored from grokdeclarator to handle warn_vla
12884         and handle unnamed array case.
12885         (grokdeclarator): Refactored VLA warning case.
12886         * c.opt (Wvla): New flag.
12887         * doc/invoke.texi (Wvla): New warning.
12888
12889 2007-03-12  Richard Henderson  <rth@redhat.com>
12890
12891         * config/alpha/alpha.c (alpha_elf_section_type_flags): New.
12892         (TARGET_SECTION_TYPE_FLAGS): New.
12893
12894 2007-03-12  Richard Henderson  <rth@redhat.com>
12895
12896         * config/darwin.c (machopic_reloc_rw_mask): New.
12897         * config/darwin-protos.h (machopic_reloc_rw_mask): Declare.
12898         * config/darwin.h (TARGET_ASM_RELOC_RW_MASK): New.
12899
12900 2007-03-12  Mark Mitchell  <mark@codesourcery.com>
12901
12902         * cppdefault.c (cpp_EXEC_PREFIX): New variable.
12903         * cppdefault.h (cpp_PREFIX): Document.
12904         (cpp_PREFIX_len): Likewise.
12905         (cpp_EXEC_PREFIX): New variable.
12906         * Makefile.in (PREPROCESSOR_DEFINES): Add STANDARD_EXEC_PREFIX.
12907         * c-incpath.c (add_standard_paths): Correct logic for relocating
12908         paths within prefix.
12909
12910 2007-03-12  Uros Bizjak  <ubizjak@gmail.com>
12911
12912         * config/i386/i386.md (fixuns_trunc<mode>hi2): Implement from
12913         fixuns_truncsfhi2 and fixuns_truncdfhi2 using SSEMODEF
12914         mode macro.
12915         (fix_trunc<mode>di_sse): Implement from fix_truncsfdi_sse and
12916         fix_truncdfdi_sse using SSEMODEF mode macro.
12917         (fix_trunc<mode>si_sse): Implement from fix_truncsfsi_sse and
12918         fix_truncdfsi_sse using SSEMODEF mode macro.
12919         (fix_trunc?f?i_sse peephole2): Implement using SSEMODEF mode macro.
12920         (fix_trunc?f?i_sse K8 peephole2): Fix register constraint.
12921
12922 2007-03-12  Richard Sandiford  <richard@codesourcery.com>
12923
12924         * config.gcc (i[4567]86-wrs-vxworks, i[4567]86-wrs-vxworksae): Add
12925         elfos.h to tm_file.
12926
12927 2007-03-12  Olga Golovanevsky  <olga@il.ibm.com>
12928
12929         * tree.h : Add multiple_of_p declaration.
12930         * fold-const.c (multiple_of_p): Make multiple_of_p public.
12931         * ipa-type-escape.c (results_of_malloc): Redundant.
12932         (visited_stmts): New. Visited stmt for walk_use_def_chains.
12933         (cast_type): Extended with new members.
12934         (check_cast): Returns cast_type.
12935         (cast): New structure for data of walk_use_def_chains.
12936         (is_malloc_result, is_cast_from_non_pointer_1,
12937         is_cast_from_non_pointer,
12938         is_array_access_through_pointer_and_index): New functions.
12939         (look_for_casts): Returns cast types.
12940         (check_call): Returns void.
12941         (okay_pointer_operation): Use support of pointer plus index,
12942         pointer plus constant and allow all multiplications.
12943
12944 2007-03-11  Richard Guenther  <rguenther@suse.de>
12945
12946         PR tree-optimization/31115
12947         * tree-vrp.c (extract_range_from_binary_expr): Make sure
12948         the shift count is positive and non-anti-range for RSHIFT_EXPR.
12949         A shift count of zero is not special as with *_DIV_EXPR.
12950         (vrp_int_const_binop): Handle RSHIFT_EXPR for determining overflow
12951         direction.
12952
12953 2007-03-11  Ian Lance Taylor  <iant@google.com>
12954
12955         * tree-vrp.c (vrp_int_const_binop): Handle PLUS_EXPR and
12956         the *_DIV_EXPR codes correctly with overflow infinities.
12957
12958 2007-03-11  Ira Rosen  <irar@il.ibm.com>
12959
12960         * tree-data-ref.c (analyze_offset): Add a return value (bool) to
12961         indicate success/failure of the analysis. Add negation to subtrahend
12962         in case of subtraction. Fail if both operands contain constants.
12963         (create_data_ref): Fail if analyze_offset fails.
12964
12965 2007-03-11  Uros Bizjak  <ubizjak@gmail.com>
12966
12967         * config/i386/i386.md (frndintxf2): Rename to ...
12968         (rintxf2): ... this. Remove expander having same name.
12969         (rintsf2, rintdf2): Implement using SSEMODEF macro.
12970         (roundsf2, rounddf2): Ditto.
12971         (lrint<mode>di2, lrint<mode>si2): Implement using SSEMODEI24 macro.
12972         (lround<mode>di2, lround<mode>si2): Ditto.
12973
12974 2007-03-11  Steven Bosscher  <steven@gcc.gnu.org>
12975
12976         * lower-subreg.c: Include except.h.
12977         (decompose_multiword_subregs): Verify that the only control flow
12978         insns we can split are loads to multi-words pseudos.
12979         Handle breaking such blocks after splitting, instead of calling
12980         find_many_sub_basic_blocks.
12981
12982         * loop-unroll.c (split_edge_and_insert): Don't set BB_SUPERBLOCK
12983         on the new basic block.  Add a lengthy comment explaining why we
12984         thought this was necessary.
12985         * cfglayout.c (cfg_layout_finalize): Don't break superblocks.
12986
12987 2007-03-10  Mark Mitchell  <mark@codesourcery.com>
12988
12989         PR c++/30924
12990         * tree.c (walk_type_fields): Recurse into the element type of
12991         ARRAY_TYPEs if there is a pointer set.
12992
12993 2007-03-10  Dirk Mueller  <dmueller@suse.de>
12994
12995         * c-common.c (warn_logical_operator): Fix condition.
12996
12997 2007-03-10  Tobias Schl�ter  <tobi@gcc.gnu.org>
12998
12999         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Add missing
13000         quotation mark.
13001         * config/darwin.c (machopic_select_section): Remove superfluous
13002         argument in call to categorize_decl_for_section.  Remove unused
13003         variable shlib.
13004
13005 2007-03-10  Joseph Myers  <joseph@codesourcery.com>
13006
13007         * configure.ac (glibc_header_dir): Set using with_build_sysroot if
13008         defined.
13009         * configure: Regenerate.
13010
13011 2007-03-10  Uros Bizjak  <ubizjak@gmail.com>
13012
13013         PR target/31101
13014         * config/i386/i386.md (UNSPEC_C2_FLAG): New constant.
13015         (fpremxf4_i387, fprem1xf4_i387): Use UNSPEC_C2_FLAG.
13016         (fmodxf3, fmod<mode>3, remainderxf3, remainder<mode>3):
13017         Add LABEL_NUSES to emitted label.
13018         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Add
13019         branch probability value to emitted jump insn.
13020         * reg-stack.c (subst_stack_regs_pat)[UNSPEC]: Handle UNSPEC_C2_FLAG.
13021         Do not check life information and do not re-arrange input operands
13022         for UNSPEC_FSCALE_EXP, UNSPEC_FPREM_U and UNSPEC_FPREM1_U.
13023
13024 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
13025
13026         * config/sh/sh.c (sh_insn_length_adjustment): Adjust for
13027         the change of decode_asm_operands.
13028
13029 2007-03-10  Kaz Kojima  <kkojima@gcc.gnu.org>
13030
13031         * mode-switching.c (create_pre_exit): Skip blockage insn.
13032
13033 2007-03-09  Diego Novillo  <dnovillo@redhat.com>
13034
13035         * tree-pass.h (TODO_update_smt_usage): Remove.
13036         Update all users.
13037         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
13038         argument SOME.
13039         Update all users.
13040
13041 2007-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13042
13043         * pa.c (attr_length_call): Revise condition for long
13044         pc-relative branch.
13045         (output_call): Use "LONG_PIC_SDIFF" instruction sequence for long
13046         local calls on the SOM target.  Don't use "LONG_PIC_PCREL" call
13047         sequence on SOM target.
13048
13049 2007-03-09  Geoffrey Keating  <geoffk@apple.com>
13050
13051         * gcc.c: Document %{, in big comment at top.
13052         (input_suffix_matches): Remove special handling for .s and
13053         .S.
13054         (input_spec_matches): New.
13055         (handle_braces): Handle %{,.
13056         (validate_switches): ',' indicates a value which is not a switch.
13057         * config/alpha/osf.h (ASM_FINAL_SPEC): Use %{, rather than %{.
13058         to detect assembler input.
13059         * config/i386/sol2.h (CPP_SPEC): Likewise.
13060         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
13061         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
13062         * config/rs6000/lynx.h (ASM_SPEC): Likewise.
13063         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
13064         * config/i386/darwin.h (DARWIN_MINVERSION_SPEC): Objective-C plus
13065         -m64 causes deployment target to default to 10.5.
13066         * config/rs6000/darwin.h (DARWIN_MINVERSION_SPEC): Likewise.
13067
13068 2007-03-09  Richard Henderson  <rth@redhat.com>
13069
13070         PR target/26090
13071         * target.h (targetm.asm.out.reloc_rw_mask): New.
13072         * target-def.h (TARGET_ASM_RELOC_RW_MASK): New.
13073         (TARGET_ASM_OUT): Use it.
13074         * targhooks.c, targhooks.h (default_reloc_rw_mask): New.
13075         * varasm.c (categorize_decl_for_section): Remove shlib argument;
13076         use the new reloc_rw_mask target hook instead.
13077         (default_section_type_flags_1): Merge into...
13078         (default_section_type_flags): ... here.
13079         (decl_readonly_section_1): Merge into...
13080         (decl_readonly_section): ... here.
13081         (default_elf_select_section_1): Merge into...
13082         (default_elf_select_section): ... here.
13083         (default_unique_section_1): Merge into...
13084         (default_unique_section): ... here.
13085         (compute_reloc_for_rtx_1, compute_reloc_for_rtx): New.
13086         (default_select_rtx_section): Use it.
13087         (default_elf_select_rtx_section): Likewise.
13088         * output.h: Update to match.
13089         * doc/tm.texi (TARGET_ASM_RELOC_RW_MASK): New.
13090         * config/alpha/alpha.c (alpha_elf_reloc_rw_mask): New.
13091         (TARGET_ASM_RELOC_RW_MASK): New.
13092         * config/i386/i386.c (x86_64_elf_select_section): Adjust call
13093         to categorize_decl_for_section.
13094         (x86_64_elf_unique_section): Likewise.
13095         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
13096         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Remove.
13097         (TARGET_ASM_RELOC_RW_MASK): New.
13098         * config/ia64/ia64.c (ia64_rwreloc_select_section,
13099         ia64_rwreloc_unique_section, ia64_rwreloc_select_rtx_section): Remove.
13100         (ia64_hpux_reloc_rw_mask, ia64_reloc_rw_mask): New.
13101         (TARGET_RWRELOC): Remove.
13102         (ia64_section_type_flags): Adjust call to default_section_type_flags.
13103         * config/ia64/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
13104         * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Remove.
13105         (rs6000_elf_select_section, rs6000_elf_unique_section): Remove.
13106         (rs6000_elf_reloc_rw_mask, rs6000_xcoff_reloc_rw_mask): New.
13107         (rs6000_xcoff_select_section): Use decl_readonly_section.
13108         (rs6000_xcoff_section_type_flags): Use default_section_type_flags.
13109         * config/rs6000/sysv4.h (TARGET_ASM_RELOC_RW_MASK): New.
13110         (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): Remove.
13111         (TARGET_SECTION_TYPE_FLAGS): Remove.
13112         * config/rs6000/xcoff.h (TARGET_ASM_RELOC_RW_MASK): New.
13113
13114 2007-03-09  Roger Sayle  <roger@eyesopen.com>
13115
13116         * fold-const.c (fold_comparison): Remove compile-time evaluation of
13117         complex constant equality/inequality comparisons for here.
13118         (fold_binary) <EQ_EXPR>: Simplify complex comparisons that are
13119         known at compile-time or can be simplified to a scalar comparison.
13120         (fold_relational_const): Move compile-time evaluation of complex
13121         constant equality/inequality comparisons to here.
13122
13123 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
13124
13125         PR rtl-optimization/30643
13126         * cse.c (cse_insn): Recompute dest_hash after insert_regs for
13127         dest_addr_elt.
13128         (fold_rtx): Recurse, like before 2006-11-03.
13129
13130 2007-03-09  DJ Delorie  <dj@redhat.com>
13131
13132         * config/m32c/t-m32c (m32c-pragma.o): Add TM_H dependency to
13133         m32c-pragma.o.
13134
13135 2007-03-09  Aldy Hernandez  <aldyh@redhat.com>
13136
13137         PR tree-optimization/30375
13138         * tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
13139         LHS of statements is not the same.
13140         * testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
13141
13142 2007-03-09  Chao-ying Fu  <fu@mips.com>
13143
13144         * doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
13145         REV 2.
13146         * doc/invoke.texi (-mdspr2): Document new option.
13147         * config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
13148         New unspec for DSP REV 2.
13149         (<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
13150         these instructions are extended in DSP REV 2.
13151         (mips-dspr2.md): Include.
13152         * config/mips/mips.opt (mdspr2): New option.
13153         * config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
13154         MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
13155         MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
13156         (override_options): Check TARGET_DSPR2 to enable MASK_DSP.
13157         (CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
13158         (dsp_bdesc): Add DSP REV 2 builtins.  Remove 32-bit only DSP builtins.
13159         (dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
13160         and 2 builtins.
13161         (bdesc_map): Add one field of unsupported_target_flags.
13162         (bdesc_arrays):  Update entries to have extra fields.  Add
13163         dsp_32only_bdesc.
13164         (mips_init_builtins): Initialize new function types.
13165         Check unsupported_target_fileds to filter out builtins.
13166         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
13167         TARGET_DSPR2.
13168         (ASM_SPEC): Pass mdspr2 to the assembler.
13169         * config/mips/mips-dspr2.md: New file.
13170
13171 2007-03-09  Sa Liu  <saliu@de.ibm.com>
13172
13173         * config/rs6000/altivec.md: Fix vcond patterns using if_then_else.
13174
13175 2007-03-09  Ian Lance Taylor  <iant@google.com>
13176
13177         * opts.c (common_handle_option): Treat -Wstrict-overflow (with no
13178         argument) like -Wstrict-overflow=2.
13179         * doc/invoke.texi (Warning Options): Update documentation.
13180
13181 2007-03-09  Dirk Mueller  <dmueller@suse.de>
13182
13183         PR c++/17946
13184         * doc/invoke.texi (-Wlogical-op): Document.
13185         * common.opt (-Wlogical-op): New.
13186         * c-common.h (warn_logical_operator): Declare.
13187         * c-common.c (warn_logical_operator): Define.
13188         * c-typeck.c (parser_build_binary_op): Call
13189         warn_logical_operator.
13190
13191 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
13192
13193         * rtl.h (gen_rtx_ASM_INPUT): Use "" instead of NULL file name.
13194         * final.c (final_scan_insn): Test for non-"" file name.
13195
13196 2007-03-09  Sebastian Pop  <sebastian.pop@inria.fr>
13197
13198         * doc/loop.texi: Document the Omega linear constraints solver.
13199         * doc/invoke.texi: Document -fcheck-data-deps, omega-max-vars,
13200         omega-max-geqs, omega-max-eqs, omega-max-wild-cards,
13201         omega-hash-table-size, omega-max-keys, and
13202         omega-eliminate-redundant-constraints.
13203         * tree-pass.h (pass_check_data_deps): Declared.
13204         * omega.c: New.
13205         * omega.h: New.
13206         * timevar.def (TV_CHECK_DATA_DEPS): Declared.
13207         * tree-ssa-loop.c (check_data_deps, gate_check_data_deps,
13208         pass_check_data_deps): New.
13209         * tree-data-ref.c (init_data_ref): Remove declaration.
13210         (dump_data_dependence_relation): Dump DDR_INNER_LOOP.
13211         (analyze_array): Renamed init_array_ref, move up initializations.
13212         (init_data_ref): Renamed init_pointer_ref.  Moved before its call.
13213         Removed arguments that are set to NULL.
13214         (analyze_indirect_ref): Correct indentation, correct call to
13215         init_pointer_ref.
13216         (object_analysis): Call init_array_ref instead of analyze_array.
13217         (initialize_data_dependence_relation): Initialize DDR_INNER_LOOP.
13218         (access_functions_are_affine_or_constant_p): Use DR_ACCESS_FNS instead
13219         of DR_ACCESS_FNS_ADDR.
13220         (init_omega_eq_with_af, omega_extract_distance_vectors,
13221         omega_setup_subscript, init_omega_for_ddr_1, init_omega_for_ddr,
13222         ddr_consistent_p): New.
13223         (compute_affine_dependence): Check consistency of ddrs when
13224         flag_check_data_deps is passed.
13225         (analyze_all_data_dependences): Uncomment.
13226         (tree_check_data_deps): New.
13227         * tree-data-ref.h: Include omega.h.
13228         (DR_ACCESS_FNS_ADDR): Removed.
13229         (data_dependence_relation): Add inner_loop.
13230         (DDR_INNER_LOOP): New.
13231         * common.opt (fcheck-data-deps): New.
13232         * tree-flow.h (tree_check_data_deps): Declare.
13233         * Makefile.in (TREE_DATA_REF_H): Depend on omega.h.
13234         (OBJS-common): Depend on omega.o.
13235         (omega.o): Define.
13236         * passes.c (pass_check_data_deps): Scheduled.
13237         * params.def (PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
13238         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
13239         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS,
13240         PARAM_VECT_MAX_VERSION_CHECKS,
13241         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS): New.
13242
13243 2007-03-09  Richard Guenther  <rguenther@suse.de>
13244
13245         PR tree-optimization/30904
13246         PR middle-end/31058
13247         * tree-vrp.c (extract_range_from_binary_expr): Handle RSHIFT_EXPR
13248         the same way as *_DIV_EXPR.
13249
13250 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
13251
13252         * recog.c (decode_asm_operands): No mixed declarations and code.
13253
13254 2007-03-09  Alexandre Oliva  <aoliva@redhat.com>
13255
13256         * rtl.def (ASM_INPUT): Add location.
13257         * rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
13258         (ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
13259         (decode_asm_operands): Add loc operand.
13260         (gen_rtx_ASM_INPUT, gen_rtx_ASM_INPUT_loc): Define.
13261         * stmt.c (expand_asm): Rename to...
13262         (expand_asm_loc): ... this.  Add locus argument.  Pass it on to
13263         gen_rtx_ASM_INPUT_loc.
13264         (expand_asm_expr): Adjust.
13265         * recog.c (decode_asm_operands): Add loc operand.
13266         (check_asm_operands, extract_insn): Adjust.
13267         * reload1.c (maybe_fix_stack_asms): Likewise.
13268         * final.c (asm_insn_count): Likewise.
13269         (final_scan_insn): Output # line before and after asm.
13270
13271 2007-03-09  Daniel Berlin  <dberlin@dberlin.org>
13272
13273         * tree-ssa-structalias.c (variable_info): Remove
13274         finished_solution.
13275         (new_var_info): Ditto.
13276         (shared_bitmap_info_t): New structure.
13277         (shared_bitmap_table): New variable.
13278         (shared_bitmap_hash): New function.
13279         (shared_bitmap_eq): Ditto
13280         (shared_bitmap_lookup): Ditto.
13281         (shared_bitmap_add): Ditto.
13282         (merge_smts_into): Change to take bitmap directly.
13283         (find_what_p_points_to): Rewrite to use shared bitmap hashtable.
13284         (init_alias_vars): Init shared bitmap hashtable.
13285         (delete_points_to_sets): Delete shared bitmap hashtable.
13286         * tree-ssa-operands.c (add_virtual_operand): Partially revert the
13287         is_aliased removal as a change that was still necessary was
13288         deleted.
13289
13290 2007-03-09  Uros Bizjak  <ubizjak@gmail.com>
13291
13292         * config/i386/i386.h (override_options): Conditionally disable
13293         x86_sahf for 64bit targets only.
13294
13295 2007-03-08  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13296
13297         PR C/31072
13298         * c-decl.c (merge_decls): Don't call make_var_volatile.
13299         * varasm.c (make_var_volatile): Remove.
13300         * output.h (make_var_volatile): Remove.
13301
13302 2007-03-08  Zdenek Dvorak  <dvorakz@suse.cz>
13303
13304         PR tree-optimization/31085
13305         * tree-ssa-address.c (create_mem_ref): Fix test of type of base.
13306
13307 2007-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13308
13309         * builtins.def (lceil, lceilf, lceill, lfloor, lfloorf, lfloorl,
13310         llceil, llceilf, llceill, llfloor, llfloorf, llfloorl): Mark with
13311         ATTR_CONST_NOTHROW_LIST.
13312
13313         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
13314         FIX_TRUNC_EXPR.
13315
13316 2007-03-08  Diego Novillo  <dnovillo@redhat.com>
13317
13318         * doc/tree-ssa.texi: Remove documentation for V_MUST_DEF.
13319
13320 2007-03-08  Geoffrey Keating  <geoffk@apple.com>
13321
13322         PR 31013
13323         * gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
13324         is declared.
13325         * config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
13326         passed, use shared libgcc.
13327
13328 2007-03-08  Roger Sayle  <roger@eyesopen.com>
13329
13330         * tree-eh.c (do_return_redirection): Call build_gimple_modify_stmt
13331         instead of calling build2 with a GIMPLE_MODIFY_STMT.
13332         (honor_protect_cleanup_actions, lower_try_finally_switch):
13333         Likewise.
13334         * tree-if-conv.c (replace_phi_with_cond_gimple_modify_stmt,
13335         ifc_temp_var): Likewise.
13336         * tree-inline.c (setup_one_parameter): Likewise.
13337         * tree-mudflap.c (mf_decl_cache_locals,
13338         mf_build_check_statement_for): Likewise.
13339         * tree-nested.c (init_tmp_var, save_tmp_var,
13340         finalize_nesting_tree_1): Likewise.
13341         * tree-outof-ssa.c (insert_copy_on_edge,
13342         insert_backedge_copies): Likewise.
13343         * tree-profile.c (tree_gen_edge_profiler,
13344         tree_gen_ic_profiler): Likewise.
13345         * tree-scalar-evolution.c (scev_const_prop): Likewise.
13346         * tree-sra.c (sra_build_assignment): Likewise.
13347         * tree-ssa-loop-im.c (determine_invariantness_stmt): Likewise.
13348         * tree-ssa-math-opts.c (insert_reciprocals,
13349         execute_cse_sincos_1): Likewise.
13350         * tree-tailcall.c (adjust_accumulator_values,
13351         adjust_return_value): Likewise.
13352         * tree-vect-patterns.c (vect_pattern_recog_1): Likewise.
13353         * tree-vect-transform.c (vect_create_data_ref_ptr,
13354         bump_vector_ptr, vect_init_vector, get_initial_def_for_induction,
13355         vect_create_epilog_for_reduction, vectorizable_reduction,
13356         vectorizable_call, vectorizable_conversion,
13357         vectorizable_assignment, vectorizable_operation,
13358         vectorizable_type_demotion, vect_gen_widened_results_half,
13359         vect_permute_store_chain, vectorizable_store,
13360         vect_setup_realignment, vect_permute_load_chain,
13361         vectorizable_load, vectorizable_condition,
13362         vect_create_cond_for_align_checks): Likewise.
13363         * tree-vrp.c (build_assert_expr_for): Likewise.
13364
13365 2007-03-08  Ian Lance Taylor  <iant@google.com>
13366
13367         * tree-vrp.c: Include "intl.h".
13368         (usable_range_p): New static function.
13369         (compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
13370         overflowed values, juts set *strict_overflow_p.
13371         (compare_values): Only return -2 if one of the operands is not a
13372         constant.
13373         (compare_ranges): Call usable_range_p.
13374         (compare_range_with_value): Likewise.
13375         (vrp_evaluate_conditional_warnv): Rename from
13376         vrp_evaluate_conditional.  Make static.  Change all callers.
13377         (vrp_evaluate_conditional): New function.
13378         (simplify_div_or_mod_using_ranges): Issue warning about reliance
13379         on signed overflow.
13380         (simplify_abs_using_ranges): Likewise.
13381         (simplify_stmt_for_jump_threading): Add within_stmt parameter.
13382         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
13383         within_stmt parameter.
13384         * tree-ssa-propagate.c (fold_predicate_in): Update call to
13385         vrp_evaluate_conditional.
13386         * tree-ssa-threadedge.c
13387         (record_temporary_equivalences_from_stmts_at_dest): Change
13388         simplify parameter to take a second tree parameter.
13389         (simplify_control_stmt_condition): Likewise.
13390         (thread_across_edge): Likewise.
13391         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
13392         (thread_across_edge): Likewise.
13393         * Makefile.in (tree-vrp.o): Depend upon intl.h.
13394
13395 2007-03-08  Uros Bizjak  <ubizjak@gmail.com>
13396
13397         * config/i386/i386.h (TARGET_SAHF): New define.
13398         * config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
13399         Also enable for m_K8, m_AMDFAM10 and m_CORE2.
13400         (x86_sahf): New global variable.
13401         (override_options): Add PTA_NO_SAHF to pta_flags enum.  Recode
13402         pta_flags masks using shifts.  Add PTA_NO_SAHF to x86_64 and
13403         nocona processor flags.  Set x86_sahf when PTA_NO_SAHF is not set
13404         in processor flags.  Do not unconditionally disable TARGET_USE_SAHF
13405         for 64-bit.
13406         (ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
13407         (ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
13408         when expanding fcomi/sahf based tests.
13409         (ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
13410         expanding sahf based alternative. Emit sahf based sequence when
13411         optimizing for code size.
13412         * config/i386/i386.md (x86_sahf_1): Do not disable for
13413         TARGET_64BIT, enable for TARGET_SAHF.
13414
13415 2007-03-08  Martin Michlmayr  <tbm@cyrius.com>
13416
13417         * tree-ssa-coalesce.c (fail_abnormal_edge_coalesce): Remove
13418         spurious whitespace from error message.
13419
13420 2007-03-08  Volker Reichelt  <reichelt@netcologne.de>
13421
13422         PR c++/30852
13423         * c-common.c (fold_offsetof_1): Handle COMPOUND_EXPR.
13424
13425 2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
13426
13427         * c-decl.c (grokdeclarator): Disable warnings for anonymous
13428         bitfields.
13429         * tree-sra.c (instantiate_element): Propagate disabled warnings
13430         from the element itself to the created variable.
13431
13432 2007-03-07  Richard Henderson  <rth@redhat.com>
13433
13434         PR target/30848
13435         * reg-stack.c (emit_swap_insn): If a malformed asm was seen,
13436         silently fix up the stack in the case of a missing register.
13437
13438 2007-03-07  Paul Brook  <paul@codesourcery.com>
13439
13440         * config/arm/libunwind.S: Add .arch/.object_arch for armv4 builds.
13441
13442 2007-03-07  Joseph Myers  <joseph@codesourcery.com>
13443
13444         * config/arm/unwind-arm.c (struct wmmxd_regs, struct wmmxc_regs):
13445         New.
13446         (phase1_vrs): Use them.
13447         (DEMAND_SAVE_WMMXD, DEMAND_SAVE_WMMXC): New.
13448         (__gnu_Unwind_Save_WMMXD, __gnu_Unwind_Restore_WMMXD,
13449         __gnu_Unwind_Save_WMMXC, __gnu_Unwind_Restore_WMMXC): Declare.
13450         (restore_non_core_regs): Call __gnu_Unwind_Restore_WMMXD and
13451         __gnu_Unwind_Restore_WMMXC if required.
13452         (_Unwind_VRS_Pop): Implement iWMMXt support.
13453         * config/arm/libunwind.S (gnu_Unwind_Restore_WMMXD,
13454         gnu_Unwind_Save_WMMXD, gnu_Unwind_Restore_WMMXC,
13455         gnu_Unwind_Save_WMMXC): Define.
13456
13457 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
13458
13459         * config/vxworks.h (vxworks_override_options): Declare.
13460         (VXWORKS_OVERRIDE_OPTIONS): Use it.
13461         * config/vxworks.c: Include target.h and toplev.h.
13462         (vxworks_override_options): New function.
13463         * config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
13464
13465 2007-03-07  Andreas Krebbel  <krebbel1@de.ibm.com>
13466
13467         * config/s390/s390.c (override_options): Don't emit an error when
13468         -mstack-size is used without providing -mstack-guard.
13469         (s390_emit_prologue): Choose stack_guard value automatically if not
13470         provided via command line.
13471         * doc/invoke.texi: Adjust description of -mstack-guard and
13472         -mstack-size.
13473
13474 2007-03-07  Richard Sandiford  <richard@codesourcery.com>
13475
13476         * config/i386/i386.c (output_set_got): Add a GOT initialization
13477         sequence for VxWorks PIC.
13478         (legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
13479         around labels as well as symbols.  Use gotoff_operand instead
13480         of local_symbolic_operand.
13481         (legitimize_pic_address): Use gotoff_operand instead of
13482         local_symbolic_operand.  Use @GOT accesses for labels as
13483         well as symbols.
13484         (ix86_output_addr_diff_elt): Use PC-relative rather than
13485         GP-relative offsets for VxWorks PIC.
13486         (ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
13487         no_new_pseudos.  Check whether the returned register is op0.
13488         * config/i386/i386.md (tablejump): Use PC-relative rather than
13489         GP-relative offsets for VxWorks PIC.
13490         * config/i386/predicates.md (gotoff_operand): New predicate.
13491
13492 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13493
13494         * config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
13495         before defining.
13496         * config/vxworks-dummy.h: New file.
13497         * config/i386/i386.h: Include it.
13498
13499 2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
13500
13501         * dwarf2out.c (is_inlined_entry_point): New
13502         (add_high_low_attributes): Emit DW_AT_entry_pc along with
13503         DW_AT_ranges if the first subblock is the entry point.
13504
13505 2007-03-06  David Daney  <ddaney@avtrex.com>
13506
13507         * doc/install.texi (mips-*-*): Change recommended binutils
13508         version.
13509
13510 2007-03-06  Anatoly Sokolov <aesok@post.ru>
13511
13512         * config/avr/avr.c (avr_mcu_types): Add support for ATmega325P,
13513         ATmega3250P, ATmega329P, ATmega3290P, AT90USB82 and AT90USB162
13514         devices.
13515         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13516         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
13517
13518 2007-03-06  Jan Hubicka  <jh@suse.cz>
13519
13520         * errors.h (warning, error, fatal, internal_error): Mark as cold.
13521         * predict.c (maybe_hot_bb): Cold functions are never hot; hot
13522         functions are hot.
13523         (probably_cold_bb_p): Cold functions are cold.
13524         (probably_never_executed_bb_p): Cold functions are cold.
13525         (tree_bb_level_predictions): Predict calls to cold functions as not
13526         taken.
13527         (compute_function_frequency): Check hot/cold attributes.
13528         * function.h (function_frequency): Update comments.
13529         * predict.def (PRED_COLD_FUNCTION): Predict cold function.
13530         * c-common.c (handle_hot_attribute, handle_cold_attribute): New.
13531         (c_common_att): Add cold and hot.
13532
13533         * doc/extend.texi (hot,cold attributes): Document.
13534
13535 2007-03-06  Andrew Haley  <aph@redhat.com>
13536
13537         * function.c (expand_function_end): Move blockage to just after we
13538         emit the label for the naked return from the function.
13539
13540 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13541
13542         * config/i386/att.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Undefine
13543         before redefining.
13544
13545 2007-03-06  Jan Hubicka  <jh@suse.cz>
13546
13547         * reg-stack.c (reg_to_stack): Large models don't allow NAN to be
13548         loaded for constant large models.  Non-large 64bit PIC can do.
13549         * i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
13550         * cmodel.h: Add LARGE PIC.
13551         * i386.md (UNSPEC_PLTOFF): New.
13552         (UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other
13553         unspecs as needed.
13554         (*call_1_rex64): Disable for large models.
13555         (*call_1_rex64_large): New.
13556         (*call_value_1_rex64): Disable for large models.
13557         (*call_value_1_rex64_large): New.
13558         (set_rip_rex4): New.
13559         (set_got_offset_rex64): New.
13560         * predicates.md (constant_call_address_operand): For large model
13561         constant calls are not possible.
13562         * i386-protos.h (construct_plt_address): Declare.
13563         * i386.c (override_options): Accept large models.
13564         (ix86_expand_prologue): Expand large PIC GOT pointer load.
13565         (legitimate_constant_p): Add new UNSPECs.
13566         (legitimate_pic_operand_p): Likewise.
13567         (legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
13568         (legitimize_pic_address): Do easy RIP relative way for TLS only for
13569         non-large model.
13570         (output_pic_addr_const): Add PLTOFF.
13571         (ix86_output_addr_diff_elt): Output 64bit tables when needed.
13572         (ix86_expand_move): Legitimize pic address when in PIC mode.
13573         (construct_plt_address): New function.
13574         (ix86_expand_call): Offload the address to register and use GOT
13575         pointer for large model.
13576         * invoke.texi (mcmodel=large): Update documentation.
13577
13578 2007-03-06  Richard Henderson  <rth@redhat.com>
13579
13580         * config/i386/i386.c (x86_use_leave, x86_push_memory,
13581         x86_zero_extend_with_and, x86_movx, x86_double_with_add,
13582         x86_use_bit_test, x86_unroll_strlen, x86_deep_branch,
13583         x86_branch_hints, x86_use_sahf, x86_partial_reg_stall,
13584         x86_partial_flag_reg_stall, x86_use_himode_fiop, x86_use_simode_fiop,
13585         x86_use_mov0, x86_use_cltd, x86_read_modify_write, x86_read_modify,
13586         x86_split_long_moves, x86_promote_QImode, x86_fast_prefix,
13587         x86_single_stringop, x86_qimode_math, x86_promote_qi_regs,
13588         x86_himode_math, x86_promote_hi_regs, x86_sub_esp_4, x86_sub_esp_8,
13589         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
13590         x86_partial_reg_dependency, x86_memory_mismatch_stall,
13591         x86_prologue_using_move, x86_epilogue_using_move, x86_shift1,
13592         x86_sse_partial_reg_dependency, x86_sse_split_regs,
13593         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
13594         x86_sse_load0_by_pxor, x86_use_ffreep, x86_use_incdec,
13595         x86_inter_unit_moves, x86_ext_80387_constants, x86_four_jump_limit,
13596         x86_schedule, x86_use_bt, x86_pad_returns,
13597         x86_use_xchgb): Merge into ...
13598         (ix86_tune_features): ... here.  New array.
13599         (x86_cmove, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
13600         x86_bswap): Merge into ...
13601         (ix86_arch_features): ... here.  New array.
13602         (x86_3dnow_a): Remove.
13603         (x86_accumulate_outgoing_args): Make static.
13604         (x86_arch_always_fancy_math_387): Make static.
13605         (ix86_tune_mask, ix86_arch_mask): Move ...
13606         (override_options): ... to local variables here.  Apply the
13607         appropriate mask to each element of ix86_arch_features and
13608         ix86_tune_features.  Adjust TARGET_CMOVE and TARGET_USE_SAHF
13609         as were done in the old macros.
13610         (standard_80387_constant_p): Use TARGET_EXT_80387_CONSTANTS.
13611         * config/i386/i386.h (x86_use_leave, x86_push_memory,
13612         x86_zero_extend_with_and, x86_use_bit_test, x86_cmove, x86_deep_branch,
13613         x86_branch_hints, x86_unroll_strlen, x86_double_with_add,
13614         x86_partial_reg_stall, x86_movx, x86_use_himode_fiop,
13615         x86_use_simode_fiop, x86_use_mov0, x86_use_cltd, x86_use_xchgb,
13616         x86_read_modify_write, x86_read_modify, x86_split_long_moves,
13617         x86_promote_QImode, x86_single_stringop, x86_fast_prefix,
13618         x86_himode_math, x86_qimode_math, x86_promote_qi_regs,
13619         x86_promote_hi_regs, x86_integer_DFmode_moves, x86_add_esp_4,
13620         x86_add_esp_8, x86_sub_esp_4, x86_sub_esp_8,
13621         x86_partial_reg_dependency, x86_memory_mismatch_stall,
13622         x86_accumulate_outgoing_args, x86_prologue_using_move,
13623         x86_epilogue_using_move, x86_decompose_lea,
13624         x86_arch_always_fancy_math_387, x86_shift1,
13625         x86_sse_partial_reg_dependency, x86_sse_split_regs,
13626         x86_sse_unaligned_move_optimal, x86_sse_typeless_stores,
13627         x86_sse_load0_by_pxor, x86_use_ffreep, x86_inter_unit_moves,
13628         x86_schedule, x86_use_bt, x86_cmpxchg, x86_cmpxchg8b, x86_xadd,
13629         x86_use_incdec, x86_pad_returns, x86_bswap,
13630         x86_partial_flag_reg_stall): Remove.
13631         (enum ix86_tune_indices): New.
13632         (ix86_tune_features): New.
13633         (TARGET_USE_LEAVE, TARGET_PUSH_MEMORY, TARGET_ZERO_EXTEND_WITH_AND,
13634         TARGET_USE_BIT_TEST, TARGET_UNROLL_STRLEN,
13635         TARGET_DEEP_BRANCH_PREDICTION, TARGET_BRANCH_PREDICTION_HINTS,
13636         TARGET_DOUBLE_WITH_ADD, TARGET_USE_SAHF, TARGET_MOVX,
13637         TARGET_PARTIAL_REG_STALL, TARGET_PARTIAL_FLAG_REG_STALL,
13638         TARGET_USE_HIMODE_FIOP, TARGET_USE_SIMODE_FIOP, TARGET_USE_MOV0,
13639         TARGET_USE_CLTD, TARGET_USE_XCHGB, TARGET_SPLIT_LONG_MOVES,
13640         TARGET_READ_MODIFY_WRITE, TARGET_READ_MODIFY, TARGET_PROMOTE_QImode,
13641         TARGET_FAST_PREFIX, TARGET_SINGLE_STRINGOP, TARGET_QIMODE_MATH,
13642         TARGET_HIMODE_MATH, TARGET_PROMOTE_QI_REGS, TARGET_PROMOTE_HI_REGS,
13643         TARGET_ADD_ESP_4, TARGET_ADD_ESP_8, TARGET_SUB_ESP_4,
13644         TARGET_SUB_ESP_8, TARGET_INTEGER_DFMODE_MOVES,
13645         TARGET_PARTIAL_REG_DEPENDENCY, TARGET_SSE_PARTIAL_REG_DEPENDENCY,
13646         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL, TARGET_SSE_SPLIT_REGS,
13647         TARGET_SSE_TYPELESS_STORES, TARGET_SSE_LOAD0_BY_PXOR,
13648         TARGET_MEMORY_MISMATCH_STALL, TARGET_PROLOGUE_USING_MOVE,
13649         TARGET_EPILOGUE_USING_MOVE, TARGET_SHIFT1, TARGET_USE_FFREEP,
13650         TARGET_INTER_UNIT_MOVES, TARGET_FOUR_JUMP_LIMIT, TARGET_SCHEDULE,
13651         TARGET_USE_BT, TARGET_USE_INCDEC, TARGET_PAD_RETURNS,
13652         TARGET_EXT_80387_CONSTANTS): Use it.
13653         (enum ix86_arch_indices): New.
13654         (ix86_arch_features): New.
13655         (TARGET_CMOVE, TARGET_CMPXCHG, TARGET_CMPXCHG8B, TARGET_XADD,
13656         TARGET_BSWAP): Use it.
13657         (ix86_tune_mask, ix86_arch_mask): Remove.
13658
13659 2007-03-06  Joseph Myers  <joseph@codesourcery.com>
13660
13661         PR bootstrap/31020
13662         * configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
13663         Define using $${sysroot_headers_suffix}.
13664         * configure: Regenerate.
13665         * cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
13666         multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
13667         defined.
13668         * doc/invoke.texi (-print-sysroot-headers-suffix): Document.
13669         * gcc.c (print_sysroot_headers_suffix): New.
13670         (option_map): Include --print-sysroot-headers-suffix.
13671         (display_help): Mention -print-sysroot-headers-suffix.
13672         (process_command): Handle -print-sysroot-headers-suffix.
13673         (do_spec_1): Append multilib directory to include-fixed path if
13674         sysroot suffixes in use.
13675         (main): Handle -print-sysroot-headers-suffix.
13676         * Makefile.in (start.encap): Don't depend on xlimits.h
13677         (xlimits.h): Remove.
13678         (stmp-int-hdrs): Don't depend on xlimits.h.  Inline generation of
13679         limits.h for each multilib in fixinc_list.
13680         (fixinc_list, s-fixinc_list): New.
13681         (stmp-fixinc): Depend on fixinc_list.  If not copying headers,
13682         generate them for each multilib in fixinc_list.
13683         (stmp-fixproto): Use include-fixed.  Run fixproto for each
13684         multilib in fixinc_list.
13685         (mostlyclean): Don't remove xlimits.h.
13686         (clean): Remove include-fixed.
13687         (real-install-headers-tar, real-install-headers-cpio,
13688         real-install-headers-cp): Don't copy include, only include-fixed.
13689         (install-mkheaders): Depend on fixinc_list.  Don't depend on
13690         xlimits.h.  Save limits.h files for each multilib in fixinc_list.
13691         Always save mkinstalldirs.  Preserve ${sysroot_headers_suffix} in
13692         SYSTEM_HEADER_DIR setting in mkheaders.conf.
13693
13694 2007-03-06  Jan Hubicka  <jh@suse.cz>
13695
13696         * regstack.c (reg_to_stack): When in 64bit PIC mode, we still can load
13697         NANs easilly.
13698
13699 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13700
13701         * configure.ac: Allow tm_file to contain build-directory files.
13702         * configure: Regenerate.
13703         * config.gcc (m68k-*-uclinux*): Add ./sysroot-suffix.h to tm_file.
13704         * config/m68k/t-uclinux (sysroot-suffix.h): New target.
13705         * config/m68k/print-sysroot-suffix.sh: New file.
13706
13707 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13708
13709         * config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
13710         of pic_offset_table_rtx if reload_completed.
13711         (CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
13712         PIC_OFFSET_TABLE_REGNUM.
13713         * config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
13714         return true.
13715         (m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
13716         (m68k_output_mi_thunk): Rewrite to use RTL.  Honor vcall_offset.
13717
13718 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13719
13720         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
13721         functions that call eh_return.
13722
13723 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13724
13725         * config/m68k/m68k.c (m68k_save_reg): Save the PIC register in
13726         functions that need a constant pool.
13727
13728 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13729
13730         PR target/28181
13731         * config/m68k/m68k-protos.h (m68k_secondary_reload_class): Declare.
13732         (m68k_preferred_reload_class): Likewise.
13733         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Remove duplicated comment.
13734         (SECONDARY_RELOAD_CLASS): Define.
13735         (PREFERRED_RELOAD_CLASS): Use m68k_preferred_reload_class.
13736         (LIMIT_RELOAD_CLASS): Delete.
13737         * config/m68k/m68k.c (m68k_regno_mode_ok): Don't prevent address
13738         registers from storing bytes.
13739         (m68k_secondary_reload_class): New function.
13740         (m68k_preferred_reload_class): Likewise.
13741
13742 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13743
13744         * config/m68k/m68k.c (m68k_save_reg): Remove special case for
13745         leaf functions.
13746         (m68k_expand_prologue): Likewise.
13747
13748 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13749
13750         * config/m68k/m68k-protos.h (output_sibcall): Declare.
13751         (mips_expand_epilogue): Add a bool parameter.
13752         (m68k_legitimize_sibcall_address): Declare.
13753         * config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
13754         (m68k_expand_epilogue): Add a parameter to select between sibling
13755         and normal epilogues.  Only generate a return for the latter.
13756         (m68k_ok_for_sibcall_p): New function.
13757         (m68k_legitimize_sibcall_address, output_sibcall): New functions.
13758         * config/m68k/m68k.md (sibcall, *sibcall): New patterns.
13759         (sibcall_value, *sibcall_value): Likewise.
13760         (*call, *call_value): Require !SIBLING_CALL_P.
13761         (epilogue): Update call to m68k_expand_epilogue.
13762         (sibcall_epilogue): New pattern.
13763         * config/m68k/predicates.md (const_call_operand): Say that this
13764         predicate applies to sibling calls too.
13765         (sibcall_operand): New predicate.
13766
13767 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13768
13769         * config/m68k/m68k.md (movsf_cf_soft): Provide the same non-mov3q
13770         alternatives as movsi_cf.
13771         (movsf_cf_hard): Add commentary.
13772
13773 2007-03-06  Kazu Hirata  <kazu@codesourcery.com>
13774             Richard Sandiford  <richard@codesourcery.com>
13775
13776         * config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
13777         (m68k_movem_pattern_p, m68k_output_movem): Likewise.
13778         (m68k_expand_prologue, m68k_expand_epilogue): Likewise.
13779         * config/m68k/m68k.h (EPILOGUE_USES): Define.  Treat all registers
13780         as being live on exit from an interrupt function.
13781         (PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
13782         * config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
13783         (m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
13784         (TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
13785         (m68k_interrupt_function_p): Globalize.
13786         (m68k_compute_frame_layout): Remove reverse mask code.
13787         (m68k_emit_movem, m68k_set_frame_related): New functions.
13788         (m68k_output_function_prologue): Delete in favor of...
13789         (m68k_expand_prologue): ...this new function.
13790         (m68k_output_function_epilogue): Delete in favor of...
13791         (m68k_expand_epilogue): ...this new function.
13792         (m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
13793         functions.
13794         (print_operand): Handle %?.
13795         * config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
13796         (UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
13797         (prologue, epilogue): New patterns.
13798         (return): Turn into a define_expand.
13799         (*return): New pattern, derived from old "return" pattern.  Use rte
13800         rather than rts for interrupt functions.  Only use rtd if the pop
13801         count is nonzero.
13802         (*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
13803         (*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
13804         (link, *link, unlink, *unlink, load_got): Likewise.
13805
13806 2007-03-06  Richard Sandiford  <richard@codesourcery.com>
13807
13808         PR target/23482
13809         PR target/17114
13810         * config/m68k/m68k-protos.h (m68k_legitimate_base_reg_p): Declare.
13811         (m68k_legitimate_index_reg_p, m68k_legitimate_address_p): Likewise.
13812         (m68k_matches_q_p, m68k_matches_u_p): Likewise.
13813         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Use m68k_matches_q_p
13814         and m68k_matches_u_p.
13815         (PCREL_GENERAL_OPERAND_OK, LEGITIMATE_BASE_REG_P): Delete.
13816         (INDIRECTABLE_1_ADDRESS_P, GO_IF_NONINDEXED_ADDRESS): Delete.
13817         (GO_IF_INDEXABLE_BASE, GO_IF_INDEXING, GO_IF_INDEXED_ADDRESS): Delete.
13818         (LEGITIMATE_INDEX_REG_P, LEGITIMATE_INDEX_P): Delete.
13819         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Delete.
13820         (REG_STRICT_P): New macro.
13821         (LEGITIMATE_PIC_OPERAND_P): Use REG_STRICT_P rather than
13822         PCREL_GENERAL_OPERAND_OK.
13823         (REG_OK_FOR_BASE_P): Merge definitions.  Use REG_STRICT_P and
13824         m68k_legitimate_base_reg_p.
13825         (REG_MODE_OK_FOR_INDEX_P): Likewise m68k_legitimate_index_reg_p.
13826         (GO_IF_LEGITIMATE_ADDRESS): Likewise m68k_legitimate_address_p.
13827         (PIC_CASE_VECTOR_ADDRESS): Update comment.
13828         * config/m68k/m68k.c (m68k_address): New structure.
13829         (m68k_legitimate_base_reg_p, m68k_legitimate_index_reg_p)
13830         (m68k_decompose_index, m68k_legitimate_constant_address_p)
13831         (m68k_jump_table_ref_p, m68k_decompose_address)
13832         (m68k_legitimate_address_p, m68k_legitimate_mem_p, m68k_matches_q_p)
13833         (m68k_matches_u_p): New functions.
13834         (print_operand_address): Rewrite to use m68k_decompose_index.
13835
13836 2007-03-05  David Taylor  <dtaylor@emc.com>
13837
13838         * gcc.c: Correct copyright date in --version output.
13839
13840 2007-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13841
13842         * pa.md: In unamed move patterns, disparge copies between general
13843         and floating point registers using '?' modifier.  Don't include 'f'
13844         constraint for register preferences in DImode, SImode, HImode and
13845         QImode patterns.  Likewise for 'r' in DFmode and SFmode patterns.
13846         Remove constraints for copies between general and floating registers
13847         in soft-float DFmode pattern.
13848         (movdf): Fail if operand1 is a CONST_DOUBLE and operand0 is a hard
13849         floating register.
13850         (movsf): Likewise.
13851
13852 2007-03-05  Mike Stump  <mrs@apple.com>
13853
13854         * c-common.c (targetcm): Add.
13855         * c-opts.c (c_common_handle_option): Handle language specific
13856         target options.
13857         * opts.c (handle_option): Verify language for target options, if
13858         any are given.
13859         * opth-gen.awk: Add CL_LANG_ALL.
13860         * target-def.h (TARGET_HANDLE_C_OPTION): Add.
13861         (TARGETCM_INITIALIZER): Add.
13862         * target.h (struct gcc_targetcm): Add.
13863         (targetcm): Add.
13864         * targhooks.c (default_handle_c_option): Add.
13865         * targhooks.h (default_handle_c_option): Add.
13866         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Add.
13867
13868         * config/darwin.opt (iframework): Add.
13869         * config/darwin.h (TARGET_HAS_TARGETCM): Add.
13870         * config/darwin-c.c (handle_c_option): Add.
13871         (TARGET_HANDLE_C_OPTION): Add.
13872         (targetcm): Add.
13873         * doc/invoke.texi (Darwin Options): Add -iframework.
13874
13875 2007-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13876
13877         * convert.c (convert_to_integer): Fix nearbyint/rint -> *lrint
13878         conversion.
13879
13880 2007-03-05  Ian Lance Taylor  <iant@google.com>
13881
13882         * c.opt (fgnu89-inline): New option.
13883         * c-opts.c (c_common_post_options): Set default value for
13884         flag_gnu89_inline.
13885         * c-decl.c (WANT_C99_INLINE_SEMANTICS): Remove.
13886         (pop_scope): Check flag_gnu89_inline rather than flag_isoc99 for
13887         inline functions.
13888         (diagnose_mismatched_decls, merge_decls, start_decl): Likewise.
13889         (grokdeclarator, start_function): Likewise.
13890         * c-cppbuiltin.c (c_cpp_builtins): Define either
13891         __GNUC_GNU_INLINE__ or __GNUC_STDC_INLINE__.
13892         * doc/invoke.texi (Option Summary): Mention -fgnu89-inline.
13893         (C Dialect Options): Document -fgnu89-inline.
13894         * doc/extend.texi (Function Attributes): Explain what the
13895         gnu_inline attribute does.
13896         * doc/cpp.texi (Common Predefined Macros): Document
13897         __GNUC_GNU_INLINE__ and __GNUC_STDC_INLINE__.
13898
13899 2007-03-05  Ian Lance Taylor  <iant@google.com>
13900
13901         PR tree-optimization/31034
13902         * tree-vrp.c (extract_range_from_assert): Don't try to handle a
13903         half-range if the other side is an overflow infinity.
13904
13905 2007-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
13906
13907         * config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
13908         (bfin*-linux-uclibc*): New configuration.
13909         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefined before
13910         defining.
13911         * config/bfin/linux.h: New file.
13912         * config/bfin/libgcc-bfin.ver: New file.
13913         * config/bfin/t-bfin-uclinux: New file.
13914         * config/bfin/t-bfin-linux: New file.
13915         * config/bfin/uclinux.h (LINUX_TARGET_OS_CPP_BUILTINS): New macro.
13916         (TARGET_OS_CPP_BUILTINS): New macro.
13917
13918 2007-03-05  Richard Guenther  <rguenther@suse.de>
13919
13920         * fold-const.c (fold_binary): Remove duplicate folding
13921         of comparison of non-null ADDR_EXPR against null.
13922
13923 2007-03-05  Richard Guenther  <rguenther@suse.de>
13924             Dorit Nuzman  <dorit@il.ibm.com>
13925
13926         PR tree-optimization/26420
13927         * tree-vectorizer.c (vectorize_loops): Bail out early if there
13928         are no loops in the function.  Only print the number of
13929         vectorized loops if it is greater than zero or we are supposed
13930         to print information about unvectorized loops.
13931
13932 2007-03-05  Revital Eres  <eres@il.ibm.com>
13933
13934         * gcc.dg/var-expand1.c: New test.
13935         * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
13936         when an accumulator is expanded.
13937
13938 2007-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13939
13940         PR other/30465
13941         * c-common.c (convert_and_check): Don't give warnings for
13942         conversion if 'expr' already overflowed.
13943
13944 2007-03-04  Roger Sayle  <roger@eyesopen.com>
13945
13946         PR middle-end/30744
13947         * fold-const.c (fold_comparison): Enforce type consistency when
13948         transforming ~X op ~Y to Y op X, and ~X op C to X op' ~C.
13949
13950 2007-03-04  Zdenek Dvorak  <dvorakz@suse.cz>
13951
13952         * tree-ssa-address.c (create_mem_ref): Do not put an expression
13953         containing a cast to the base of TARGET_MEM_REF.
13954
13955 2007-03-04  Martin Michlmayr  <tbm@cyrius.com>
13956
13957         * tree.c (tree_contains_struct_check_failed): Remove spurious
13958         whitespace from error message.
13959
13960 2007-03-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
13961
13962         PR target/30406
13963         * config/rs6000/rs6000.c (rs6000_function_value): Look at bit size
13964         instead of precision.
13965
13966 2007-03-04  Roman Zippel <zippel@linux-m68k.org>
13967             Nathan Sidwell  <nathan@codesourcery.com>
13968
13969         * emit-rtl.c (find_auto_inc): New.
13970         (try_split): recreate REG_INC notes,
13971         Use regular for loops rather than whiles.
13972
13973 2007-03-03  Andreas Schwab  <schwab@suse.de>
13974
13975         * configure.ac (HAVE_AS_REL16): Move test back to correct place.
13976         * configure: Regenerate.
13977
13978 2007-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13979
13980         * builtins.def (ATTR_MATHFN_FPROUNDING): Rely on
13981         flag_rounding_math, not flag_unsafe_math_optimizations.
13982
13983         * c-pretty-print.c (pp_c_direct_abstract_declarator): Use
13984         fold_build2.
13985         * config/alpha/alpha.c (alpha_fold_builtin_zapnot,
13986         alpha_fold_vector_minmax): Likewise.
13987         * config/i386/i386.c (ix86_gimplify_va_arg): Likewise.
13988         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
13989
13990 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
13991
13992         * tree-sra.c (sra_walk_fns) <ldst>: Document new restriction.
13993         (sra_walk_modify_expr) <rhs_elt>: Treat the reference as a use
13994         if the lhs has side-effects.
13995         <lhs_elt>: Treat the reference as a use if the rhs has side-effects.
13996
13997 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
13998
13999         * config/i386/i386.h (TUNEMASK): Remove define.
14000         (ARCHMASK): Remove define.
14001         (TARGET_*): Use ix86_tune_mask variable instead of TUNEMASK.
14002          Use ix86_arch_mask variable instead of ARCHMASK.
14003         * config/i386/i386.c (override_options): Ditto.
14004         (standard_80387_constant_p): Ditto.
14005
14006 2007-03-02  Ian Lance Taylor  <iant@google.com>
14007
14008         Used signed infinities in VRP.
14009         * tree-vrp.c (uses_overflow_infinity): New static function.
14010         (supports_overflow_infinity): New static function.
14011         (make_overflow_infinity): New static function.
14012         (negative_overflow_infinity): New static function.
14013         (positive_overflow_infinity): New static function.
14014         (is_negative_overflow_infinity): New static function.
14015         (is_positive_overflow_infinity): New static function.
14016         (is_overflow_infinity): New static function.
14017         (overflow_infinity_range_p): New static function.
14018         (compare_values_warnv): New function split out of compare_values.
14019         (compare_value): Call it.
14020         (set_value_range_to_nonnegative): Add overflow_infinity
14021         parameter.  Change caller.
14022         (vrp_expr_computes_nonnegative): Add strict_overflow_p parameter.
14023         Change callers.
14024         (vrp_expr_computes_nonzero): Likewise.
14025         (compare_ranges, compare_range_with_value): Likewise.
14026         (compare_name_with_value, compare_names): Likewise.
14027         (vrp_evaluate_conditional): Likewise.
14028         (set_value_range): Handle infinity
14029         (vrp_operand_equal_p, operand_less_p): Likewise.
14030         (extract_range_from_assert): Likewise.
14031         (vrp_int_const_binop): Likewise.
14032         (extract_range_from_binary_expr): Likewise.
14033         (extract_range_from_unary_expr): Likewise.
14034         (extract_range_from_comparison): Likewise.
14035         (extract_range_from_expr): Likewise.
14036         (dump_value_range): Likewise.
14037         (vrp_visit_cond_stmt, vrp_visit_phi_node): Likewise.
14038         (test_for_singularity): Likewise.
14039         (vrp_int_const_binop): Remove inline qualifier.
14040         (adjust_range_with_scev): Add comment.
14041         * tree-flow.h (vrp_evaluate_conditional): Update declaration.
14042
14043 2007-03-02  Diego Novillo  <dnovillo@redhat.com>
14044
14045         * tree-ssa-structalias.c (could_have_pointers): Tidy.
14046         (get_constraint_for): Likewise.
14047         (do_structure_copy): Likewise.
14048         (find_func_aliases): Fix references to MODIFY_EXPR.
14049         (intra_create_variable_infos): Tidy.
14050         * tree-ssa-operands.c (add_virtual_operand): Add argument
14051         IS_CALL_SITE.
14052         When adding members of alias sets, if IS_CALL_SITE is true and
14053         the symbol is not call-clobbered, skip it.
14054         Adjust all callers.
14055
14056 2007-03-02  Eric Botcazou  <ebotcazou@adacore.com>
14057
14058         * config/alpha/alpha.c (alpha_gp_save_rtx): Insert the insns at the
14059         entry by means of emit_insn_at_entry.
14060
14061 2007-03-02  Richard Henderson  <rth@redhat.com>
14062
14063         * expr.h (promoted_input_arg): Remove decl.
14064         * function.c (promoted_input_arg): Merge into ...
14065         * combine.c (setup_incoming_promotions): ... only caller.
14066         Rearrange to avoid double loop.
14067
14068 2007-03-02  Ben Elliston  <bje@au.ibm.com>
14069             Peter Bergner  <bergner@vnet.ibm.com>
14070             Janis Johnson  <janis187@us.ibm.com>
14071
14072         * config/rs6000/dfp.md: New file.
14073         * config/rs6000/rs6000.md: Include dfp.md.
14074         (add<mode>3_internal1): Disable for DECIMAL_FLOAT_MODE_P operands.
14075         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Handle DDmode
14076         and TDmode decimal float modes in FP registers.
14077         (num_insns_constant): Likewise.
14078         (rs6000_legitimate_offset_address_p): Likewise.
14079         (rs6000_legitimize_address): Likewise.
14080         (rs6000_legitimize_reload_address): Likewise.
14081         (rs6000_legitimate_address): Likewise.
14082         (rs6000_emit_move): Likewise.
14083         (function_arg_boundary): Likewise.
14084         (function_arg_advance): Likewise.
14085         (rs6000_darwin64_record_arg_recurse): Likewise.
14086         (function_arg): Likewise.
14087         (rs6000_gimplify_va_arg): Likewise.
14088         (rs6000_split_multireg_move): Likewise.
14089         (rs6000_output_function_epilogue): Likewise.
14090         (rs6000_output_function_epilogue): Likewise.
14091         (rs6000_register_move_cost): Likewise.
14092         (rs6000_function_value): Likewise.
14093         (rs6000_libcall_value): Likewise.
14094
14095 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
14096
14097         * config/t-vxworks (LIMITS_H_TEST): Define to true for VxWorks.
14098
14099 2007-03-02  Richard Sandiford  <richard@codesourcery.com>
14100
14101         * config/t-vxworks (LIBGCC2_INCLUDES): Pass -nostdinc.
14102         Use $MULTIDIR to choose between the kernel and RTP headers,
14103         and use $WIND_BASE and $WIND_USR to locate them.
14104
14105 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
14106
14107         * config/i386/i386.c (override_options): Put initialization of
14108         ix86_tune_mask and ix86_arch_mask to the correct place.
14109
14110 2007-03-02  Uros Bizjak  <ubizjak@gmail.com>
14111             Michael Meissner  <michael.meissner@amd.com>
14112
14113         PR target/31019
14114         * config/i386/i386.h (TUNEMASK): Redefine to use ix86_tune_mask.
14115         (ARCHMASK): Define.
14116         (TARGET_CMOVE): Use ARCHMASK.
14117         (TARGET_CMPXCHG): Ditto.
14118         (TARGET_CMPXCHG8B): Ditto.
14119         (TARGET_XADD): Ditto.
14120         (TARGET_BSWAP): Ditto.
14121         * config/i386/i386.c (ix86_tune_mask): New global variable.
14122         (ix86_arch_mask): Ditto.
14123         (override_options): Initialize ix86_tune_mask and
14124         ix86_arch_mask. Use ARCHMASK to clear MASK_NO_FANCY_MATH_387 in
14125         target_flags.
14126
14127 2007-03-02  Ben Elliston  <bje@au.ibm.com>
14128
14129         PR 30992
14130         * config/dfp-bit.c (DFP_TO_INT): Initialise qval with "1.".
14131
14132 2007-03-02  Joseph Myers  <joseph@codesourcery.com>
14133
14134         * target.h (init_dwarf_reg_sizes_extra): New target hook.
14135         * target-def.h (TARGET_INIT_DWARF_REG_SIZES_EXTRA): New default.
14136         * doc/tm.texi (TARGET_INIT_DWARF_REG_SIZES_EXTRA): Document.
14137         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Call this
14138         hook.
14139         * config/rs6000/rs6000.c (TARGET_INIT_DWARF_REG_SIZES_EXTRA,
14140         rs6000_init_dwarf_reg_sizes_extra): New.
14141         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Support
14142         SPE register high parts.
14143
14144 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
14145
14146         * Makefile.in: Add install-pdf target as
14147         copied from automake v1.10 rules.
14148         * configure.ac: Add install-pdf to target list.
14149         * configure: Regenerate.
14150
14151 2007-03-01  Paul Brook  <paul@codesourcery.com>
14152
14153         * config/arm/arm.c (arm_legitimate_index_p): Limit iWMMXt addressing
14154         modes to LDRD for DImode.
14155         (output_move_double): Fixup out of range ldrd/strd.
14156         (vfp_secondary_reload_class): Rename...
14157         (coproc_secondary_reload_class): ... to this.  Add wb argument.
14158         * config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use
14159         coproc_secondary_reload_class for CLASS_IWMMXT.
14160         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
14161         * arm-protos.h (coproc_secondary_reload_class): Update prototype.
14162
14163 2007-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
14164
14165         * tree-ssa-loop-prefetch.c (determine_unroll_factor):  Bound the
14166         unroll factor by the estimated number of iterations.
14167         (loop_prefetch_arrays): Do not prefetch in loops that iterate less
14168         than prefetch latency.
14169
14170         * config/i386/driver-i386.c (describe_cache, detect_caches_amd,
14171         decode_caches_intel, detect_caches_intel): New functions.
14172         (host_detect_local_cpu): Use detect_caches_amd and
14173         detect_caches_intel.
14174
14175 2007-03-01  Richard Henderson  <rth@redhat.com>
14176
14177         * expr.c (emit_move_complex_push): Export.
14178         (emit_move_complex_parts): Split out from ...
14179         (emit_move_complex): ... here.
14180         * expr.h (emit_move_complex_push, emit_move_complex_parts): Declare.
14181         * config/i386/i386.md (movcdi): New.
14182
14183 2007-03-01  Uros Bizjak  <ubizjak@gmail.com>
14184
14185         * config/i386/i386.c (ix86_modes_tieable_p): Fix typo, use also
14186         size of mode1 to check for tieable modes in MMX case.
14187
14188 2007-03-01  Richard Sandiford  <richard@codesourcery.com>
14189
14190         * Makefile.in (rtlanal.o): Depend on tree.h.
14191         * rtl.h (offset_within_section_p, split_const): Declare.
14192         * rtlanal.c: Include tree.h.
14193         (offset_within_block_p): New function, taken from
14194         mips_offset_within_object_p.
14195         (split_const): New function, taken from mips_split_const.
14196         * config/m68k/m68k-protos.h (m68k_illegitimate_symbolic_constant_p):
14197         Declare.
14198         * config/m68k/m68k.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): Define.
14199         (CONSTANT_ADDRESS_P): Only accept legitimate constants.
14200         (LEGITIMATE_CONSTANT_P): Check m68k_illegitimate_symbolic_constant_p.
14201         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Define.
14202         (m68k_illegitimate_symbolic_constant_p): New function.
14203         * config/m68k/m68k.md (movsi): Remove misleading predicates.
14204         If M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P and the source is a
14205         symbolic constant that might be outside the symbol's section,
14206         move the symbol first and then add the offset.
14207         * config/m68k/uclinux.h (M68K_OFFSETS_MUST_BE_WITHIN_SECTIONS_P):
14208         Override.
14209         * config/mips/mips.c (mips_split_const): Delete.
14210         (mips_offset_within_object_p): Delete.
14211         (mips_symbolic_constant_p): Use offset_within_section_p and
14212         split_const instead of mips_offset_within_object_p and
14213         mips_split_const.
14214         (mips_cannot_force_const_mem, mips_const_insns, mips_unspec_address)
14215         (mips_legitimize_const_move, print_operand_reloc)
14216         (mips_dangerous_for_la25_p): Use split_const instead of
14217         mips_split_const.
14218
14219 2007-02-28  Eric Christopher  <echristo@apple.com>
14220
14221         * Makefile.in (install-include-dir): Don't rm -rf include.
14222
14223 2007-02-28  Richard Guenther  <rguenther@suse.de>
14224
14225         PR middle-end/30364
14226         * fold-const.c (fold_binary): Do not associate expressions
14227         with more than one variable for integer types that do not wrap.
14228
14229 2007-02-28  Sandra Loosemore  <sandra@codesourcery.com>
14230
14231         * builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
14232         Delete, and replace with...
14233         (fold_builtin_call_array): This.  Update callers to use it.
14234         * fold-const.c (fold_build_call_list): Delete, and replace with...
14235         (fold_build_call_array): This.
14236         (fold_build_call_list_initializer): Delete, and replace with...
14237         (fold_build_call_array_initializer): This.
14238         * tree.h: Update declarations to reflect above changes.
14239
14240         * c-typeck.c (build_function_call): Store converted arguments
14241         in a stack-allocated array instead of building a list.
14242         (convert_arguments): Store arguments in the array passed in as an
14243         argument, and return the actual number of arguments.
14244         * c-format.c: (check_function_format): Pass arguments in an
14245         array instead of a list.
14246         * c-common.c (check_function_nonnull): Likewise.
14247         (check_function_sentinel): Likewise.
14248         (check_function_arguments): Likewise.
14249         * c-common.h: Update declarations to reflect above changes.
14250
14251 2007-02-28  Jan Hubicka  <jh@suse.cz>
14252
14253         * predict.def (PRED_TREE_EARLY_RETURN, PRED_CONST_RETURN,
14254         PRED_NEGATIVE_RETURN): Update outcomes.
14255
14256 2007-02-28  Bernd Schmidt  <bernd.schmidt@analog.com>
14257
14258         * calls.c (emit_library_call_value_1): Handle partial registers
14259         correctly when building up CALL_INSN_FUNCTION_USAGE.
14260
14261 2007-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14262
14263         * pa/predicates.md (move_src_operand): Allow zero for mode.
14264         * pa/pa.md: Fix constraints for zero CONST_DOUBLE in 64-bit DFmode
14265         move pattern.
14266
14267 2007-02-27  Uros Bizjak  <ubizjak@gmail.com>
14268
14269         PR target/30970
14270         * config/i386/sse.md (*mov<mode>_internal, *movv4sf_internal,
14271         *movv2df_internal): Enable pattern only for valid operand
14272         combinations.
14273         * config/i386/i386.c (ix86_modes_tieable_p): For SSE registers,
14274         tie only 128bit modes. For MMX registers, tie only 64bit modes.
14275
14276 2007-02-27  Mike Stump  <mrs@apple.com>
14277
14278         * config/darwin-crt3.c: Avoid compilation when compiling for a
14279         kext multilib.
14280
14281 2007-02-27  Joseph Myers  <joseph@codesourcery.com>
14282
14283         * Makefile.in (PREPROCESSOR_DEFINES, test-protoize-simple): Define
14284         FIXED_INCLUDE_DIR.
14285         (stmp-int-hdrs, stmp-fixinc, install-headers): Use include-fixed
14286         for fixed headers and limits.h.
14287         (install-include-dir, install-headers-tar, install-headers-cpio,
14288         install-headers-cp, real-install-headers-tar,
14289         real-install-headers-cpio, real-install-headers-cp): Handle
14290         include-fixed as well as include.
14291         (install-mkheaders): Don't install files that go only in include
14292         not include-fixed.
14293         * cppdefault.c (cpp_include_defaults): Separate FIXED_INCLUDE_DIR
14294         from GCC_INCLUDE_DIR.
14295         * gcc.c (process_command): Remove special -BstageN/ handling.
14296         (do_spec_1): Add include-fixed directories.
14297
14298 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
14299
14300         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add _umulsi3_highpart and
14301         _smulsi3_highpart.
14302         * config/bfin/lib1funcs.asm (___umulsi3_highpart, ___smulsi3_highpart):
14303         New functions.
14304         * config/bfin/bfin.md (smulsi3_highpart, umulsi3_highpart): New
14305         patterns.
14306
14307 2007-02-27  Mark Mitchell  <mark@codesourcery.com>
14308
14309         * c-common.c (get_priority): Add check for
14310         SUPPORTS_INIT_PRIORITY.
14311
14312 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
14313
14314         * config/bfin/bfin.md (doloop_end): FAIL if counter reg isn't SImode.
14315
14316         * config/bfin/bfin.c: Include "cfglayout.h".
14317         (MAX_LSETUP_DISTANCE): New macro.
14318         (struct loop_info): New members incoming, incoming_src and
14319         incoming_dest.  Delete member predecessor.
14320         (length_for_loop): New function.
14321         (bfin_optimize_loop): Handle more different loop structures.
14322         (bfin_discover_loop): Rework detection of predecessor blocks by
14323         examining incoming edges.
14324         (bfin_discover_loops, bfin_free_loops): New functions, broken out of
14325         bfin_reorg_loops.
14326         (bfin_reorder_loops): New function.
14327         (bfin_reorg_loops): Use these three new functions.
14328
14329         * config/bfin/bfin.h (enum reg_class, REG_CLASS_NAMES,
14330         REG_CLASS_CONTENTS): Add D0REGS through D7REGS.
14331         (CONSTRAINT_LEN): Add entry for 'q'.
14332         (REG_CLASS_FROM_CONSTRAINT): Renamed from REG_CLASS_FROM_LETTER.
14333         Add 'q' constraints.
14334         (REGNO_REG_CLASS): For R0 through R7, return corresponding regclass.
14335         (CLASS_LIKELY_SPILLED_P): True for R0, R1 and R2.
14336
14337         * config/bfin/bfin.md (add_with_carry): New pattern.
14338         (s_or_u, su_optab, su_modifier): New code macros/attrs.
14339         (<su_optab>hisi_ll, <su_optab>hisi_lh, <su_optab>hisi_hl,
14340         <su_optab>hisi_hh): Renamed from mulhisi_xx patterns; macroized to
14341         support unsigned multiplies too.  Removed incorrect commutativity from
14342         operand 1 constraint where appropriate.
14343         (usmulhisi_ull, usmulhisi_ulh, usmulhisi_uhl, usmulhisi_uhh): New
14344         patterns.
14345         (<su_optab>hisi_ll_lh, <su_optab>hisi_ll_hl, <su_optab>hisi_ll_hh,
14346         <su_optab>hisi_lh_hl, <su_optab>hisi_lh_hh, <su_optab>hisi_hl_hh):
14347         New patterns.
14348         (usmulhisi_ll_lul, usmulhisi_ll_luh, usmulhisi_ll_hul,
14349         usmulhisi_ll_huh, usmulhisi_lh_lul, usmulhisi_lh_luh, usmulhisi_lh_hul,
14350         usmulhisi_lh_huh, usmulhisi_hl_lul, usmulhisi_hl_luh, usmulhisi_hl_hul,
14351         usmulhisi_hl_huh, usmulhisi_hh_lul, usmulhisi_hh_luh, usmulhisi_hh_hul,
14352         usmulhisi_hh_huh): New patterns.
14353
14354         * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3,
14355         lshifthi3): Fix output template to use half reg for operand 2.
14356
14357         * config/bfin/bfin.c (bfin_output_mi_thunk): Use R3 as scratch reg
14358         instead of R2.
14359
14360         * config/bfin/bfin.md (rotl16, rotlsi3, rotrsi3): New patterns.
14361
14362 2007-02-27  Andreas Schwab  <schwab@suse.de>
14363
14364         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-common.texi.
14365
14366 2007-02-27  Jan Hubicka  <jh@suse.cz>
14367
14368         * predict.c (last_basic_block_p): Remove.
14369         (tree_estimate_probability): Update return heuristic for commonized
14370         return blocks.
14371
14372 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
14373
14374         * Makefile.in (TEXI_GCCINSTALL_FILES): Add gcc-vers.texi dependency.
14375
14376 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
14377
14378         * doc/include/gcc-common.texi (versionsubtitle): New macro.
14379         * doc/cpp.texi: Standardize title page.
14380         * doc/cppinternals.texi: Likewise.
14381         * doc/gcc.texi: Standardize title page, remove version number
14382         from copyright page.
14383         * doc/gccint.texi: Likewise.
14384         * doc/install.texi: Standardize title page, add table of
14385         contents.
14386
14387 2007-02-26  Jan Hubicka  <jh@suse.cz>
14388
14389         * predict.def: Set outcomes according to more recent results.
14390         (PRED_LOOP_CONDITION, PRED_LOOP_PRECONDITIONING, PRED_LOOP_HEADER):
14391         Remove dead predictors.
14392         * predict.c (return_prediction): Fix pasto.
14393
14394 2007-02-27  Bernd Schmidt  <bernd.schmidt@analog.com>
14395
14396         * loop-iv.c (simplify_using_initial_values): Fix oversight in previous
14397         change; avoid a memory leak when returning early.
14398
14399 2007-02-26  Mark Mitchell  <mark@codesourcery.com>
14400
14401         * c-decl.c (static_ctors): Move to c-common.c.
14402         (static_dtors): Likewise.
14403         (finish_function): Use c_record_cdtor_fn.
14404         (build_cdtor): Move to c-common.c.
14405         (c_write_global_declarations): Use c_build_cdtor_fns.
14406         * c-common.h (static_ctors): Declare.
14407         (static_dtors): Likewise.
14408         (c_record_cdtor_fn): Likewise.
14409         (c_build_cdtor_fns): Likewise.
14410         * c-common.c (static_ctors): New variable.
14411         (static_dtors): Likewise.
14412         (c_record_cdtor_fn): New function.
14413         (build_cdtor): Move from c-decl.c
14414         (c_build_cdtor_fns): New function.
14415
14416         * output.h (assemble_addr_to_section): Declare.
14417         (get_cdtor_priority_section): Likewise.
14418         * varasm.c (assemble_addr_to_section): New function.
14419         (get_cdtor_priority_section): Likewise.
14420         (default_named_section_asm_out_destructor): Use them.
14421         (destor_dtor_section_asm_out_destructor): Likewise.
14422         (default_named_section_asm_out_constructor): Likewise.
14423         (default_ctor_section_asm_out_constructor): Likewise.
14424         * config.gcc (*-*-vxworks*): Include vxworks.o.
14425         * config/t-vxworks (vxworks.o): New target.
14426         * config/vxworks.h (ALWAYS_NUMBER_CTORS_SECTIONS): Remove.
14427         (TARGET_ASM_CONSTRUCTOR): Define.
14428         (TARGET_ASM_DESTRUCTOR): Likewise.
14429         (vxworks_asm_out_constructor): Declare.
14430         (vxworks_asm_out_destructor): Likewise.
14431
14432         * c-common.c (get_priority): Check that we have not just an
14433         INTEGER_CST, but an integer constant with integeral type.
14434
14435 2007-02-25  Uros Bizjak  <ubizjak@gmail.com>
14436
14437         PR tree-optimization/30938
14438         * tree-vect-transform.c (vectorizable_call): Fix off-by-one error:
14439         use &dt[nargs-1] instead of &dt[nargs] in the call to
14440         vect_is_simple_use().
14441
14442 2007-02-25  Ulrich Weigand  <uweigand@de.ibm.com>
14443
14444         * reload.c (find_reloads_address_1): Handle PLUS expressions resulting
14445         from register elimination as PRE_MODIFY / POST_MODIFY increments.
14446         Do not attempt to handle MEM inside auto-inc expressions.
14447         * reload1.c (eliminate_regs_1): Do not attempt to handle elimination
14448         of a register modified by an auto-inc expression.  However, do handle
14449         elimination of a register used as PRE_MODIFY / POST_MODIFY increment.
14450         (elimination_effects): Prohibit elimination of a register modified
14451         by an auto-inc expression.  Disable register elimination rules whose
14452         target register is modified by an auto-inc expression with variable
14453         increment.
14454
14455 2007-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
14456
14457         * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): Fix
14458         off-by-one error.
14459         (array_at_struct_end_p): New function.
14460         (idx_infer_loop_bounds): Use it.
14461         (estimate_numbers_of_iterations_loop): Export.
14462         * predict.c (predict_loops): Use estimated_loop_iterations_int.
14463         Do not use PRED_LOOP_EXIT on exits predicted by # of iterations.
14464         (tree_estimate_probability): Call record_loop_exits.
14465         * tree-data-ref.c (get_number_of_iters_for_loop): Replaced by ...
14466         (estimated_loop_iterations, estimated_loop_iterations_int,
14467         estimated_loop_iterations_tree): New functions.
14468         (analyze_siv_subscript_cst_affine,
14469         compute_overlap_steps_for_affine_1_2,
14470         analyze_subscript_affine_affine): Use estimated_loop_iterations_int.
14471         (analyze_miv_subscript): Use estimated_loop_iterations_tree.
14472         * predict.def (PRED_LOOP_ITERATIONS): Update comment.
14473         (PRED_LOOP_ITERATIONS_GUESSED): New.
14474         * cfgloop.c (record_loop_exits): Do nothing if there are no loops.
14475         * cfgloop.h (estimate_numbers_of_iterations_loop,
14476         estimated_loop_iterations_int): Declare.
14477
14478 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
14479
14480         * doc/extend.texi: Document optional priority argument to
14481         constructors and destructors.
14482         * tree.c (init_priority_for_decl): Adjust GTY markers.
14483         (init_ttree): Use priority-info hash functions for
14484         init_priority_for_decl.
14485         (tree_map_eq): Rename to ...
14486         (tree_map_base_eq): ... this.
14487         (tree_map_marked_p): Rename to ...
14488         (tree_map_base_marked_p): ... this.
14489         (tree_map_base_hash): New function.
14490         (decl_init_priority_lookup): Rework.
14491         (decl_fini_priority_lookup): New function.
14492         (decl_priority_info): New function.
14493         (decl_init_priority_insert): Use it.
14494         (decl_fini_priority_insert): Likewise.
14495         (decl_restrict_base_lookup): Adjust for refactoring of tree_map
14496         hierarchy.
14497         (decl_restrict_base_insert): Likewise.
14498         (decl_debug_expr_insert): Likewise.
14499         (decl_value_expr_lookup): Likewise.
14500         (decl_value_expr_insert): Likewise.
14501         * tree.h (priority_type): New type.
14502         (decl_init_priority_lookup): Use priority_type.
14503         (decl_fini_priority_lookup): New function.
14504         (decl_init_priority_insert): Use priority_type.
14505         (decl_fini_priority_insert): New function.
14506         (DECL_HAS_INIT_PRIORITY): Tweak comments.
14507         (DECL_INIT_PRIORITY): Likewise.
14508         (SET_DECL_INIT_PRIORITY): Add comment.
14509         (DECL_FINI_PRIORITY): New macro.
14510         (SET_DECL_FINI_PRIORITY): Likewise.
14511         (DEFAULT_INIT_PRIORITY): Document.
14512         (MAX_INIT_PRIORITY): Likewise.
14513         (MAX_RESERVED_INIT_PRIORITY): Likewise.
14514         (tree_map_base): New type.
14515         (tree_map_base_eq): New function.
14516         (tree_map_base_hash): Likewise.
14517         (tree_map_base_marked_p): Likewise.
14518         (tree_map): Inherit from tree_map_base.
14519         (tree_map_eq): Make it a macro.
14520         (tree_map_marked_p): Likewise.
14521         (tree_int_map): Inherit from tree_map_base.
14522         (tree_int_map_eq): Make it a macro.
14523         (tree_int_map_hash): Likewise.
14524         (tree_int_map_marked_p): Likewise.
14525         (tree_priority_map): New type.
14526         (tree_priority_map_eq): New macro.
14527         (tree_priority_map_hash): Likewise.
14528         (tree_priority_map_marked_p): Likewise.
14529         * varasm.c (emults_decl): Adjust for refactoring of tree_map
14530         hierarchy.
14531         (emutls_common_1): Likewise.
14532         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
14533         * tree-ssa-structalias.c (heapvar_lookup): Adjust for refactoring
14534         of tree_map hierarchy.
14535         * tree-cfg.c (move_stmt_r): Likewise.
14536         (new_label_mapper): Likewise.
14537         * c-tree.h (c_expand_body): Move to ...
14538         * c-common.h (c_expand_body): ... here.
14539         * c-decl.c (c_expand_body): Move to ...
14540         * c-common.c (c_expand_body): ... here.
14541         (c_common_attribute_table): Allow 1 argument for the constructor
14542         and destructor attributes.
14543         (get_priority): New function.
14544         (handle_constructor_attribute): Set DECL_INIT_PRIORITY.
14545         (handle_destructor_attribute): Set DECL_FINI_PRIORITY.
14546
14547 2007-02-24  Jan Hubicka  <jh@suse.cz>
14548
14549         PR middle-end/30509
14550         * tree-inline.c (copy_bb): Produce exact copy of EH info when
14551         copying for inlining.
14552
14553 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
14554             Jan Hubicka  <jh@suse.cz>
14555
14556         PR target/30778
14557         * i386.c (counter_mode): New function.
14558         (expand_set_or_movmem_via_loop): Use it.
14559         (expand_movmem_epilogue): Likewise; fix pasto.
14560         (ix86_expand_movmem): Do emit guard even for constant counts.
14561         (ix86_expand_setmem): Likewise.
14562
14563 2007-02-25  Nick Clifton  <nickc@redhat.com>
14564
14565         * config/frv/frv.h (ASM_OUTPUT_CASE_LABEL): Delete.
14566         (JUMP_TABLES_IN_TEXT_SECTION): Define.
14567
14568 2007-02-24  Uros Bizjak  <ubizjak@gmail.com>
14569
14570         PR target/30770
14571         * config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
14572         count argument with 0x10, not with 0x16.
14573         (expand_setmem_epilogue): Ditto.
14574
14575 2007-02-24  Mike Stump  <mrs@apple.com>
14576
14577         * config/i386/i386.c (output_pic_addr_const): Stubify optimized
14578         symbols.
14579
14580 2007-02-24  Richard Guenther  <rguenther@suse.de>
14581
14582         PR middle-end/30951
14583         * fold-const.c (fold_binary): Fold x +- CST op x for
14584         EQ_EXPR and NE_EXPR.
14585
14586 2007-02-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14587
14588         * pa.md (muldi3): Force subregs to registers in 64-bit expander.
14589
14590 2007-02-24  Jan Hubicka  <jh@suse.cz>
14591
14592         * cgraphunit.c (decide_is_function_needed): Honor
14593         -fkeep-inline-functions.
14594
14595 2007-02-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14596
14597         * builtins.c (fold_builtin_modf): New.
14598         (fold_builtin_2): Use it.
14599
14600 2007-02-24  Bernd Schmidt  <bernd.schmidt@analog.com>
14601
14602         * loop-iv.c (implies_p): Detect additional cases where A implies B.
14603         (determine_max_iter): Take additional LOOP arg; all callers changed.
14604         Lose broken logic dealing with PLUS.  Try to limit the upper bound by
14605         one using simplifications.
14606         (simplify_using_initial_values): Return if the expression becomes
14607         invalid due to altered regs.
14608
14609 2007-02-23  DJ Delorie  <dj@redhat.com>
14610
14611         * doc/tm.h (BIGGEST_ALIGNMENT): Clarify the purpose of this macro.
14612
14613 2007-02-23  Mike Stump  <mrs@apple.com>
14614
14615         * tlink.c (scan_linker_output): Parse linker messages from
14616         darwin9's linker better.
14617
14618 2007-02-23  Steve Ellcey  <sje@cup.hp.com>
14619
14620         PR debug/29614
14621         * varpool.c (varpool_assemble_pending_decls):  Set
14622         varpool_last_needed_node to null.
14623
14624 2007-02-23  DJ Delorie  <dj@redhat.com>
14625
14626         * config/i386/i386.c (ix86_data_alignment): Don't specify an
14627         alignment bigger than the object file can handle.
14628
14629 2007-02-23  Uros Bizjak  <ubizjak@gmail.com>
14630
14631         PR target/30825
14632         * config/i386/i386.md (*movdi_1_rex64, zero_extendsidi2_32,
14633         zero_extendsidi2_rex64): Penalize MMX register<->memory moves.
14634         (*movsf_1): Penalize MMX moves.
14635
14636 2007-02-23  Bernd Schmidt  <bernd.schmidt@analog.com>
14637
14638         * config/bfin/bfin.md (doloop_end): Fail for loops that can iterate
14639         2^32-1 or more times unless flag_unsafe_loop_optimizations.
14640
14641         * loop-iv.c (determine_max_iter): Moved in front of its sole user.
14642
14643 2007-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14644
14645         * builtins.c (fold_builtin_logb, fold_builtin_significand): New.
14646         (fold_builtin_1): Use them.
14647         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle
14648         BUILT_IN_SIGNIFICAND.
14649
14650 2007-02-23  H.J. Lu  <hongjiu.lu@intel.com>
14651
14652         * config/i386/i386.c (bdesc_1arg): Initialize
14653         IX86_BUILTIN_MOVSHDUP and IX86_BUILTIN_MOVSLDUP with
14654         "__builtin_ia32_movshdup" and "__builtin_ia32_movsldup".
14655         (ix86_init_mmx_sse_builtins): Remove IX86_BUILTIN_MOVSHDUP
14656         and IX86_BUILTIN_MOVSLDUP.
14657
14658 2007-02-22  Paolo Bonzini  <bonzini@gnu.org>
14659
14660         PR rtl-optimization/30841
14661         * fwprop.c (propagate_rtx_1): Accept a VOIDmode replacement address.
14662
14663 2007-02-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14664
14665         * builtins.c (fold_builtin_frexp): New.
14666         (fold_builtin_2): Use it.
14667
14668 2007-02-22  Mark Mitchell  <mark@codesourcery.com>
14669
14670         * doc/invoke.texi (Spec Files): Document getenv spec function.
14671
14672         * gcc.c (getenv_spec_function): New function.
14673         (static_spec_functions): Add it.
14674         * config/vxworks.h (VXWORKS_TARGET_DIR): Remove.
14675         (VXWORKS_ADDITIONAL_CPP_SPEC): Use getenv to find the VxWorks
14676         header files.
14677
14678 2007-02-22  Michael Matz  <matz@suse.de
14679
14680         PR c++/29433
14681         * dwarf2out.c (add_AT_string): Call ggc_strdup once per string.
14682         (type_tag): Use lang_hooks.dwarf_name instead of DECL_NAME.
14683
14684 2007-02-22  Ian Lance Taylor  <iant@google.com>
14685
14686         PR debug/30898
14687         * dwarf2out.c (concatn_mem_loc_descriptor): New static function.
14688         (mem_loc_descriptor): Call it.
14689
14690 2007-02-22  Zdenek Dvorak  <dvorakz@suse.cz>
14691             Ira Rosen  <irar@il.ibm.com>
14692
14693         * tree-data-ref.c (ptr_ptr_may_alias_p): Take alias sets into account.
14694
14695 2007-02-22  Ira Rosen  <irar@il.ibm.com>
14696
14697         PR tree-optimization/30843
14698         * tree-vect-transform.c (vect_transform_loop): Remove strided scalar
14699         stores only after all the group is vectorized.
14700
14701 2007-02-22  Dorit Nuzman  <dorit@il.ibm.com>
14702
14703         PR tree-optimization/30858
14704         * tree-vectorizer.c (vect_is_simple_reduction): Check that the stmts
14705         in the reduction cycle have a single use in the loop.
14706         * tree-vectorizer.h (relevant): Add documentation.
14707
14708 2007-02-20  Mike Stump  <mrs@apple.com>
14709
14710         * configure.ac (powerpc*-*-darwin*): #include <sys/cdefs.h>.
14711         * configure: Regenerate.
14712
14713 2007-02-21  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
14714
14715         Change the defaults of some parameters and options.
14716         * config/spu/spu-protos.h (spu_optimization_options): Declare.
14717         * config/spu/spu.c (spu_optimization_options): Add.
14718         (spu_override_options): Change params in spu_optimization_options.
14719         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Define.
14720
14721         Register 127 is only 16 byte aligned when used as a frame pointer.
14722         * config/spu/spu-protos.h (spu_init_expanders): Declare.
14723         * config/spu/spu.c (spu_expand_prologue): Set REGNO_POINTER_ALIGN for
14724         HARD_FRAME_POINTER_REGNUM.
14725         (spu_legitimate_address):  Use regno_aligned_for_reload.
14726         (regno_aligned_for_load):  HARD_FRAME_POINTER_REGNUM is only 16 byte
14727         aligned when frame_pointer_needed is true.
14728         (spu_init_expanders): New.  Set alignment of HARD_FRAME_POINTER_REGNUM
14729         to 8 bits.
14730         * config/spu/spu.h (INIT_EXPANDERS): Define.
14731
14732         Make sure shift and rotate instructions have valid immediate operands.
14733         * config/spu/predicates.md (spu_shift_operand): Remove.
14734         * config/spu/spu.c (print_operand): Add [efghEFGH] modifiers.
14735         * config/spu/constraints.md (W, O): Extend range.
14736         * config/spu/spu.md (umask, nmask): Define.
14737         (ashl<mode>3, ashldi3, ashlti3_imm, shlqbybi_ti, shlqbi_ti, shlqby_ti,
14738         lshr<mode>3, rotm_<mode>, lshr<mode>3_imm, rotqmbybi_<mode>,
14739         rotqmbi_<mode>, rotqmby_<mode>, ashr<mode>3, rotma_<mode>,
14740         rotl<mode>3, rotlti3, rotqbybi_ti, rotqby_ti, rotqbi_ti): Use
14741         spu_nonmem_operand instead of spu_shift_operands.  Use new modifiers.
14742         (lshr<mode>3_reg):  Fix rtl description.
14743
14744         Make sure mulhisi immediate operands are valid.
14745         * config/spu/predicates.md (imm_K_operand): Add.
14746         * config/spu/spu.md (mulhisi3_imm, umulhisi3_imm): Use imm_K_operand.
14747
14748         Generate constants using fsmbi and andi.
14749         * config/spu/spu.c (enum immediate_class): Add IC_FSMBI2.
14750         (print_operand, spu_split_immediate, classify_immediate,
14751         fsmbi_const_p): Handle IC_FSMBI2.
14752
14753         Correctly handle a CONST_VECTOR containing symbols.
14754         * config/spu/spu.c (print_operand): Handle HIGH correctly.
14755         (spu_split_immediate): Split CONST_VECTORs with -mlarge-mem.
14756         (immediate_load_p): Allow symbols that use 2 instructions to create.
14757         (classify_immediate, spu_builtin_splats):  Don't accept a CONST_VECTOR
14758         with symbols when flag_pic is set.
14759         (const_vector_immediate_p): New.
14760         (logical_immediate_p, iohl_immediate_p, arith_immediate_p): Don't
14761         accept a CONST_VECTOR with symbols.
14762         (spu_legitimate_constant_p): Use const_vector_immediate_p.  Don't
14763         accept a CONST_VECTOR with symbols when flag_pic is set.  Handle HIGH
14764         correctly.
14765         * config/spu/spu.md (high, low): Delete.
14766         (low_<mode>): Define.
14767
14768         Remove INTRmode and INTR_REGNUM, which didn't work.
14769         * config/spu/spu.c (spu_conditional_register_usage): Remove reference
14770         of INTR_REGNUM.
14771         * config/spu/spu-builtins.md (spu_idisable, spu_ienable, set_intr,
14772         set_intr_pic, set_intr_cc, set_intr_cc_pic, set_intr_return, unnamed
14773         peephole2 pattern): Don't use INTR or 131.
14774         (movintrcc): Delete.
14775         * config/spu/spu.h (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS,
14776         CALL_USED_REGISTERS, REGISTER_NAMES, INTR_REGNUM): Remove INTR_REGNUM.
14777         * config/spu/spu.md (UNSPEC_IDISABLE, UNSPEC_IENABLE): Remove.
14778         (UNSPEC_SET_INTR): Add.
14779         * config/spu/spu-modes.def (INTR): Remove.
14780
14781         More accurate warnings about run-time relocations.
14782         * config/spu/spu.c (reloc_diagnostic): Test in_section.
14783
14784         Correctly warn about immediate arguments to specific intrinsics.
14785         * config/spu/spu.c (spu_check_builtin_parm): Handle CONST_VECTORs.
14786         (spu_expand_builtin_1): Call spu_check_builtin_parm before checking
14787         the instruction predicate.
14788
14789         Fix tree check errors with latest update.
14790         * config/spu/spu.c (expand_builtin_args, spu_expand_builtin_1): Use
14791         CALL_EXPR_ARG.
14792         (spu_expand_builtin): Use CALL_EXPR_FN.
14793
14794         Add missing specific intrinsics.
14795         * config/spu/spu-builtins.def: Add si_bisled, si_bisledd and
14796         si_bislede.
14797         * config/spu/spu_internals.h: Ditto.
14798
14799         Fix incorrect operand modifiers.
14800         * config/spu/spu-builtins.md (spu_mpy, spu_mpyu):  Remove use of %H.
14801         * config/spu/spu.md (xor<mode>3):  Change %S to %J.
14802
14803         Optimize one case of zero_extend of a vec_select.
14804         * config/spu/spu.md (_vec_extractv8hi_ze):  Add.
14805
14806         Accept any immediate for hbr.
14807         * config/spu/spu.md (hbr):  Change s constraints to i.
14808
14809 2007-02-21  Paul Brook  <paul@codesourcery.com>
14810
14811         * config/arm/arm.c (thumb2_final_prescan_insn): Don't incrememnt
14812         condexec_count when skipping USE and CLOBBER.
14813
14814 2007-02-21  Nick Clifton  <nickc@redhat.com>
14815
14816         * common.opt (Warray-bounds): Add Warning attribute.
14817         (Wstrict-overflow, Wstrict-overflow=, Wcoverage-mismatch):
14818         Likewise.
14819         (fsized-zeroes): Add Optimization attribute.
14820         (fsplit-wide-types, ftree-scev-cprop): Likewise.
14821         * c.opt (Wc++0x-compat): Add Warning attribute.
14822
14823 2007-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
14824
14825         PR middle-end/30761
14826         * reload1.c (eliminate_regs_in_insn): In the single_set special
14827         case, attempt to re-recognize the insn before falling back to
14828         having reload fix it up.
14829
14830 2007-02-20  Eric Christopher  <echristo@gmail.com>
14831
14832         * config/frv/frv.c (frv_read_argument): Take a tree and int argument.
14833         Rewrite accordingly.
14834         (frv_read_iacc_argument): Ditto.
14835         (frv_expand_set_builtin): Take a call instead of arglist, update for
14836         above changes.
14837         (frv_expand_unop_builtin): Ditto.
14838         (frv_expand_binop_builtin): Ditto.
14839         (frv_expand_cut_builtin): Ditto.
14840         (frv_expand_binopimm_builtin): Ditto.
14841         (frv_expand_voidbinop_builtin): Ditto.
14842         (frv_expand_int_void2arg): Ditto.
14843         (frv_expand_prefetches): Ditto.
14844         (frv_expand_voidtriop_builtin): Ditto.
14845         (frv_expand_voidaccop_builtin): Ditto.
14846         (frv_expand_load_builtin): Ditto.
14847         (frv_expand_store_builtin): Ditto.
14848         (frv_expand_mdpackh_builtin): Ditto.
14849         (frv_expand_mclracc_builtin): Ditto.
14850         (frv_expand_mrdacc_builtin): Ditto.
14851         (frv_expand_mwtacc_builtin): Ditto.
14852         (frv_expand_builtin): Remove usage of CALL_EXPR_ARGS, update
14853         calls for above.
14854
14855 2007-02-20  Janis Johnson  <janis187@us.ibm.com>
14856
14857         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp.
14858         * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the
14859         cmpb instruction.
14860         (HAVE_GAS_DFP): Check for assembler support of decimal floating
14861         point instructions.
14862         * configure: Regenerate.
14863         * config.in: Regenerate.
14864         * config/rs6000/rs6000.opt (mcmpb, mdfp): New.
14865         * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP
14866         masks to power6 and power6x and to POWERPC_MASKS.
14867         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
14868         _ARCH_PWR6.
14869         * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP.
14870         * config/rs6000/sysv4.opt (mprototype): Use variable, not mask.
14871         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
14872         Access PROTOTYPE as variable, not mask.
14873
14874 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
14875
14876         * rtl.h (remove_reg_equal_equiv_notes): New prototype.
14877         * rtlanal.c (remove_reg_equal_equiv_notes): New function.
14878         * combine.c (adjust_for_new_dest): Use it.
14879         * postreload.c (reload_combine): Likewise.
14880
14881 2007-02-20  Steven Bosscher  <steven@gcc.gnu.org>
14882
14883         * rtlanal.c (find_reg_equal_equiv_note): Do not find REG_EQ*
14884         notes on an insn with multiple sets, even if single_set returns
14885         non-NULL for that insn.
14886
14887 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14888
14889         * fold-const.c (tree_expr_nonnegative_warnv_p): Handle scalb,
14890         scalbn and scalbln.
14891
14892 2007-02-20  Geoffrey Keating  <geoffk@apple.com>
14893
14894         * config/darwin.h (LINK_SPEC): Default -mmacosx-version-min only
14895         if user didn't pass it.
14896         * config/i386/darwin.h (CC1_SPEC): Likewise.
14897         * config/rs6000/darwin.h (CC1_SPEC): Likewise.
14898         (DARWIN_MINVERSION_SPEC): Don't depend on user's setting of
14899         -mmacosx-version-min.
14900
14901 2007-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14902             Uros Bizjak  <ubizjak@gmail.com>
14903
14904         * optabs.h (enum optab_index): Add new OTI_scalb.
14905         (scalb_optab): Define corresponding macro.
14906         * optabs.c (init_optabs): Initialize scalb_optab.
14907         * genopinit.c (optabs): Implement scalb_optab using scalb?f3
14908         patterns.
14909         * builtins.c (expand_builtin_mathfn_2, expand_builtin): Handle
14910         BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L} and BUILT_IN_SCALBLN{,F,L}.
14911         (expand_builtin): Expand BUILT_IN_SCALB{,F,L}, BUILT_IN_SCALBN{,F,L}
14912         and BUILT_IN_SCALBLN{,F,L} using expand_builtin_mathfn_2 if
14913         flag_unsafe_math_optimizations is set.
14914
14915         * config/i386/i386.md (scalbxf3, scalb<mode>3): New expanders
14916         to implement scalbf, scalb and scalbl built-ins as inline x87
14917         intrinsics.
14918
14919 2007-02-20  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14920             DJ Delorie <dj@redhat.com>
14921
14922         PR other/30824
14923         * diagnostic.c (diagnostic_count_diagnostic): Move -Werror logic to...
14924         (diagnostic_report_diagnostic): ... here, and turn them into real
14925         errors. If warnings are inhibited, no need to do anything.
14926
14927 2007-02-20  Uros Bizjak  <ubizjak@gmail.com>
14928
14929         * config/i386/i386.md (expm1xf2): Reorder insn sequence for
14930         better code generation.
14931
14932 2007-02-20  Ben Elliston  <bje@au.ibm.com>
14933
14934         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;.
14935
14936 2007-02-20  Kazu Hirata  <kazu@codesourcery.com>
14937
14938         * config/alpha/alpha.c, config/alpha/alpha.md,
14939         config/alpha/lib1funcs.asm, config/alpha/vms-crt0-64.c,
14940         config/alpha/vms-psxcrt0-64.c, config/arc/arc.c,
14941         config/arc/arc.h, config/arm/arm.c, config/arm/arm.md,
14942         config/arm/lib1funcs.asm: Follow spelling conventions.
14943
14944         * config/c4x/c4x.md, config/cris/cris.c, config/crx/crx.c,
14945         config/fr30/fr30.md, config/i386/i386.h,
14946         config/iq2000/iq2000.h, config/iq2000/predicates.md,
14947         config/pa/milli64.S, config/pa/pa.c, config/pa/pa.h,
14948         config/pa/pa.md, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
14949         config/pdp11/pdp11.c, config/pdp11/pdp11.h,
14950         config/rs6000/altivec.md, config/rs6000/rs6000.c,
14951         config/s390/s390-modes.def, config/sparc/netbsd-elf.h,
14952         config/sparc/sparc.c, config/sparc/sparc.h,
14953         config/sparc/sparc.md, config/spu/constraints.md,
14954         config/spu/spu.c, config/stormy16/stormy16.md: Follow spelling
14955         conventions.
14956
14957 2007-02-20  Alan Modra  <amodra@bigpond.net.au>
14958
14959         PR target/29943
14960         * varasm.c (use_blocks_for_decl_p): Return false for decls with
14961         alias attribute.
14962
14963 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
14964
14965         * doc/invoke.texi (-ftree-lrs): Remove.
14966
14967 2007-02-19  Diego Novillo  <dnovillo@redhat.com>
14968
14969         * tree-ssa-pre.c (create_value_expr_from): Initialize POOL to
14970         NULL.
14971
14972 2007-02-19  Lee Millward  <lee.millward@codesourcery.com>
14973
14974         * config/ia64/ia64.c (ia64_expand_builtin): Use the
14975         new CALL_EXPR_FN macro for retrieving the function
14976         declaration of the input expression.
14977
14978 2007-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
14979
14980         * c.opt (Waddress): New.
14981         * common.opt (Walways-true): Delete.
14982         (Wstring-literal-comparison): Delete.
14983         * doc/invoke.texi (Warning Options): Delete -Walways-true and
14984         -Wstring-literal-comparison. Add -Waddress.
14985         (Waddress): New.
14986         (Walways-true): Delete.
14987         (Wstring-literal-comparison): Delete.
14988         * doc/extend.texi (#pragma GCC diagnostic): Use -Wformat
14989         consistently instead of -Walways-true in example.
14990         * c-opts.c (c_common_handle_option): -Waddress is enabled by -Wall.
14991         * c-typeck.c (parser_build_binary_op): Replace
14992         -Wstring-literal-comparison and -Walways-true with -Waddress.
14993         * c-common.c (c_common_truthvalue_conversion): Replace -Walways-true
14994         with -Waddress.
14995
14996 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
14997
14998         * tree-cfg.c (dump_function_to_file): Be prepared for functions
14999         without DECL_STRUCT_FUNCTION initialized.
15000
15001 2007-02-19  Eric Botcazou  <ebotcazou@adacore.com>
15002
15003         * gimplify.c (gimplify_init_ctor_preeval_1): Detect potential overlap
15004         due to calls to functions taking pointers as parameters.
15005
15006 2007-02-19  Richard Henderson  <rth@redhat.com>
15007
15008         PR debug/29558
15009         * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P
15010         in memory.
15011
15012 2007-02-19  Andreas Krebbel  <krebbel1@de.ibm.com>
15013
15014         * config/s390/s390.c (s390_call_saved_register_used,
15015         s390_function_ok_for_sibcall): Adjust the way CALL_EXPR arguments are
15016         accessed to the new scheme.
15017
15018 2007-02-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
15019
15020         * config/cris/cris.c (cris_movem_load_rest_p, cris_store_multiple_op_p)
15021         (cris_print_index, cris_print_operand, cris_print_operand_address)
15022         (cris_reload_address_legitimized, cris_rtx_costs, cris_address_cost)
15023         (cris_side_effect_mode_ok, cris_valid_pic_const, cris_split_movdx)
15024         (cris_expand_pic_call_address): Use xxx_P predicate macros instead of
15025         GET_CODE () == xxx.
15026         * config/cris/cris.h (SECONDARY_RELOAD_CLASS, EXTRA_CONSTRAINT_Q,
15027         EXTRA_CONSTRAINT_T, BDAP_INDEX_P, BIAP_INDEX_P, SIMPLE_ADDRESS_P,
15028         GO_IF_LEGITIMATE_ADDRESS): Ditto.
15029         * config/cris/cris.md (define_insns: *btst, movdi, *mov_side<mode>)
15030         (*mov_sidesisf, *mov_side<mode>_mem, *mov_sidesisf_mem)
15031         (*clear_side<mode>, movsi, *movsi_internal, *ext_sideqihi)
15032         (*ext_side<mode>si, *op_side<mode>, *op_swap_side<mode>, addsi3)
15033         (*extopqihi_side, *extop<mode>si_side, *extopqihi_swap_side)
15034         (*extop<mode>si_swap_side, addi_mul, *addi,andsi3, andhi3, ashl<mode>3)
15035         (uminsi3, call, call_value): Ditto.
15036         (define_split: indir_to_reg_split, unnamed): Ditto.
15037
15038 2007-02-19  Dorit Nuzman  <dorit@il.ibm.com>
15039
15040         PR tree-optimization/30975
15041         * tree-vect-trasnform.c (vect_get_vec_def_for_stmt_copy): Remove
15042         wrong assert.
15043
15044 2007-02-18  Eric Christopher  <echristo@gmail.com>
15045
15046         * mips.c (mips_prepare_builtin_arg): Add argnum parameter.
15047         Remove use of arglist.
15048         (mips_expand_builtin): Remove use of arglist, pass in expr.
15049         (mips_expand_builtin_direct): Rewrite handling for arglist removal.
15050         (mips_expand_builtin_movtf): Ditto.
15051         (mips_expand_builtin_compare): Ditto.
15052
15053 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
15054
15055         * tree-sra.c (sra_build_assignment): Replace assertion
15056         checking with a comment explaining why it can't be done.
15057
15058 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
15059
15060         PR middle-end/30833
15061         * tree-dump.c (dequeue_and_dump): Add tcc_vl_exp case missed
15062         during CALL_EXPR representation conversion.
15063         * tree-ssa-propagate.c (set_rhs): Likewise.
15064
15065 2007-02-19  Alexandre Oliva  <aoliva@redhat.com>
15066
15067         * tree-sra.c (sra_build_assignment): Disable assertion checking
15068         for now.
15069
15070 2007-02-18  Roger Sayle  <roger@eyesopen.com>
15071
15072         * function.c (gimplify_parameters): Call build_gimple_modify_stmt
15073         instead of calling build2 with a GIMPLE_MODIFY_STMT.
15074         * gimple-low.c (lower_function_body, lower_builtin_setjmp):
15075         Likewise.
15076         * gimplify.c (build_stack_save_restore, gimplify_return_expr,
15077         gimplify_decl_expr,  gimplify_self_mod_expr, gimplify_cond_expr,
15078         gimplify_init_ctor_eval_range, gimple_push_cleanup,
15079         gimplify_omp_for, gimplify_omp_atomic_pipeline,
15080         gimplify_omp_atomic_mutex, gimplify_expr, gimplify_one_sizepos,
15081         force_gimple_operand): Likewise.
15082         * ipa-cp.c (constant_val_insert): Likewise.
15083         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
15084         lambda_loopnest_to_gcc_loopnest, replace_uses_equiv_to_x_with_y,
15085         perfect_nestify): Likewise.
15086         * langhooks.c (lhd_omp_assignment): Likewise.
15087         * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses,
15088         lower_copyprivate_clauses, lower_send_clauses,
15089         lower_send_shared_vars, expand_parallel_call,
15090         expand_omp_for_generic, expand_omp_for_static_nochunk,
15091         expand_omp_for_static_chunk, expand_omp_sections,
15092         lower_omp_single_copy, lower_omp_for_lastprivate,
15093         lower_omp_parallel, init_tmp_var, save_tmp_var): Likewise.
15094         * value-prof.c (tree_divmod_fixed_value, tree_mod_pow2,
15095         tree_mod_subtract, tree_ic, tree_stringop_fixed_value):
15096         Likewise.
15097
15098 2007-02-19  Kazu Hirata  <kazu@codesourcery.com>
15099
15100         * config/sh/divtab.c, config/sh/sh.c, config/sh/sh.h,
15101         config/sh/sh.md: Follow spelling conventions.
15102
15103         * config/frv/frv.c, config/frv/frv.h, config/frv/frv.md,
15104         config/frv/predicates.md: Follow spelling conventions.
15105
15106         * config/m68k/linux-unwind.h: Fix a comment typo.
15107         * target.h: Follow spelling conventions.
15108
15109 2007-02-18  Roger Sayle  <roger@eyesopen.com>
15110
15111         PR rtl-optimization/28173
15112         * simplify-rtx.c (simplify_binary_operation_1) <IOR>:  Optimize
15113         (X & C1) | C2 as C2 when (C1 & C2) == C1 and X has no side-effects.
15114         Optimize (X & C1) | C2 as X | C2 when (C1 | C2) == ~0.
15115         Canonicalize (X & C1) | C2 as (X & (C1 & ~C2)) | C2.
15116         <AND>: Canonicalize (X | C1) & C2 as (X & C2) | (C1 & C2).
15117
15118 2007-02-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15119
15120         * builtins.c (fold_builtin_load_exponent): New.
15121         (fold_builtin_2): Use it.
15122
15123 2007-02-18  Steven Bosscher  <steven@gcc.gnu.org>
15124
15125         PR rtl-optimization/30773
15126         * local-alloc.c (update_equiv_regs): Do not set reg_equiv_init
15127         if we fail to attach a REG_EQUIV note.
15128
15129 2007-02-18  David Edelsohn  <edelsohn@gnu.org>
15130             Roger Sayle  <roger@eyesopen.com>
15131
15132         * config/rs6000/rs6000.md (bswapsi2): New define_insn and splitter.
15133
15134 2007-02-18  Sandra Loosemore  <sandra@codesourcery.com>
15135
15136         * calls.c (initialize_argument_information): Pass original EXP
15137         and STRUCT_VALUE_ADDR_VALUE instead of a list of arguments.  Move
15138         code to split complex arguments here, as part of initializing the
15139         ARGS array.
15140         (expand_call): Remove code that builds a list of arguments and
15141         inserts implicit arguments into it.  Instead, just count how many
15142         implicit arguments there will be so we can determine the size of
15143         the ARGS array, and let initialize_argument_information do the work.
15144         (split_complex_values): Delete unused function.
15145
15146 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
15147
15148         * tree-eh.c (tree_could_trap_p): Handle VIEW_CONVERT_EXPR.
15149
15150 2007-02-18  Eric Botcazou  <ebotcazou@adacore.com>
15151
15152         * calls.c (mem_overlaps_already_clobbered_arg_p): Return true
15153         for arg pointer based indexed addressing.
15154
15155 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
15156
15157         * config/ia64/ia64.h, config/ia64/ia64.md,
15158         config/ia64/predicates.md, config/ia64/sysv4.h: Follow
15159         spelling conventions.
15160
15161 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
15162
15163         * config/m68k/m68k.c (split_di): New.
15164         * config/m68k/m68k-protos.h: Declare split_di.
15165         * config/m68k/m68k.md (extendsidi2*,ashldi3*,ashrdi3*,lshrdi3*):
15166           Improve predicate handling and split constant shifts.
15167
15168 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
15169
15170         * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
15171         parameter for register bitfield operations, general predicates
15172         cleanup
15173
15174 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
15175
15176         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
15177         * config/m68k/linux-unwind.h: New file.
15178
15179 2007-02-18  Kazu Hirata  <kazu@codesourcery.com>
15180
15181         * cfgloop.c, config/alpha/alpha.c, config/bfin/bfin.c,
15182         config/i386/athlon.md, config/ia64/ia64.md,
15183         config/rs6000/rs6000.c, config/s390/s390.c, config/spu/spu.md,
15184         df-problems.c, df.h, fold-const.c, ipa-cp.c, ipa-inline.c,
15185         ipa-prop.h, see.c, struct-equiv.c, tree-inline.c,
15186         tree-ssa-loop-niter.c, tree-vect-analyze.c,
15187         tree-vect-transform.c: Fix comment typos.
15188
15189 2007-02-17  Kazu Hirata  <kazu@codesourcery.com>
15190
15191         * sched-deps.c (find_insn_list): Remove.
15192         * sched-int.h: Remove the prototype for find_insn_list.
15193
15194 2007-02-16  Geoffrey Keating  <geoffk@apple.com>
15195
15196         * config/darwin.h (LINK_SPEC): Always pass -macosx_version_min
15197         to linker.
15198         (DARWIN_EXTRA_SPECS): Add %(darwin_minversion).
15199         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Just call
15200         darwin_rs6000_override_options.
15201         (C_COMMON_OVERRIDE_OPTIONS): Expect
15202         darwin_macosx_version_min to be non-NULL always.
15203         (TARGET_C99_FUNCTIONS): Likewise.
15204         (CC1_SPEC): Always pass -mmacosx-version-min to cc1*.
15205         (DARWIN_MINVERSION_SPEC): New.
15206         * config/rs6000/rs6000.c (darwin_rs6000_override_options): New.
15207         * config/i386/darwin.h (CC1_SPEC): Always pass -mmacosx-version-min
15208         to cc1*.
15209         (DARWIN_MINVERSION_SPEC): New.
15210         * config/darwin.opt (mmacosx-version-min): Initialize to non-NULL
15211         value.
15212         * config/darwin-c.c (darwin_cpp_builtins): Expect
15213         darwin_macosx_version_min to be non-NULL always.
15214
15215         * config/rs6000/rs6000.c: Clean up trailing whitespace.
15216
15217 2007-02-16  Uros Bizjak  <ubizjak@gmail.com>
15218
15219         * config/i386/i386.h (x86_use_xchgb): New.
15220         (TARGET_USE_XCHGB): New macro.
15221         * config/i386/i386.c (x86_use_xchgb): Set for PENT4.
15222         * config/i386/i386.md (*rotlhi3_1 splitter, *rotrhi3_1 splitter):
15223         Split after reload into bswaphi for shifts of 8.
15224         (bswaphi_lowpart): Generate rolw insn for HImode byte swaps.
15225         (*bswaphi_lowpart_1): Generate xchgb for Q registers for TARGET_XCHGB
15226         or when optimizing for size.
15227
15228 2007-02-16  Richard Guenther  <rguenther@suse.de>
15229             Christian Bruel  <christian.bruel@st.com>
15230
15231         * fold-const.c (tree_swap_operands_p): Treat SSA_NAMEs like
15232         DECLs but prefer SSA_NAMEs over DECLs.
15233
15234 2007-02-16  Richard Guenther  <rguenther@suse.de>
15235
15236         * tree-flow-inline.h (single_imm_use_p): Remove.
15237         (zero_imm_uses_p): Likewise.
15238         * tree-ssa-coalesce.c (create_outofssa_var_map): Use has_single_use
15239         instead of single_imm_use_p.
15240         * tree-cfg.c (replace_uses_by): Use has_zero_use instead of
15241         zero_imm_uses_p.
15242
15243 2007-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15244
15245         PR other/27843
15246         * Makefile.in (SYSTEM_HEADER_DIR): Use single quotes to avoid
15247         nested double- and backquotes.
15248
15249 2007-02-15  Roger Sayle  <roger@eyesopen.com>
15250
15251         PR middle-end/30391
15252         * tree.c (expr_align): Handle MODIFY_EXPR.  GIMPLE_MODIFY_STMT
15253         should be unreachable.
15254         (build2_stat): Allow construction of MODIFY_EXPR at any time.
15255         For the time being redirect GIMPLE_MODIFY_STMT to the new
15256         (renamed) build_gimple_modify_stmt_stat.
15257         (build2_gimple_stat): Rename to...
15258         (build_gimple_modify_stmt_stat): Now longer take a CODE argument.
15259         Always build a GIMPLE_MODIFY_STMT node.
15260         * tree.h (build2_gimple, build2_gimple_stat): Delete.
15261         (build_gimple_modify_stmt, build_gimple_modify_stmt_stat): New
15262         declarations.
15263
15264         * tree-cfg.c (factor_computed_gotos, tree_merge_blocks,
15265         gimplify_val): Use build_gimple_modify_stmt instead of build2_gimple.
15266         * tree-complex.c (set_component_ssa_name, expand_complex_move,
15267         expand_complex_div_wide): Likewise.
15268         * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise.
15269         * tree-ssa-loop-im.c (schedule_sm): Likewise.
15270         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Likewise.
15271         * tree-ssa-loop-manip.c (create_iv): Likewise.
15272         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
15273         abs_replacement): Likewise.
15274         * tree-ssa-pre.c (create_expression_by_pieces, poolify_modify_stmt,
15275         realify_fake_stores): Likewise.
15276
15277         * builtins.c (std_expand_builtin_va_start): Build a MODIFY_EXPR
15278         node rather than a GIMPLE_MODIFY_STMT node.
15279         (std_gimpify_va_arg_expr, expand_builtin_va_copy,
15280         fold_builtin_memset, fold_builtin_memory_op, do_mpfr_sincos):
15281         Likewise.
15282         (integer_valued_real_p): Handle MODIFY_EXPR, not GIMPLE_MODIFY_STMT.
15283         * expr.c (expand_expr_real_1): Handle both MODIFY_EXPR and
15284         GIMPLE_MODIFY_STMT.
15285
15286 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15287
15288         PR middle-end/30433
15289         * fold-const.c (fold_comparison): Add back the
15290         folding of constant complex comparisions.
15291
15292 2007-02-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15293
15294         PR middle-end/30729
15295         * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side
15296         effects unknown to this function, return early.
15297
15298 2007-02-15  Ian Lance Taylor  <iant@google.com>
15299
15300         * lower-subreg.c (move_eh_region_note): New static function.
15301         (resolve_simple_move): Call it.
15302         (decompose_multiword_subregs): Track blocks for which we resolve a
15303         simple move which is also a control flow insn.  Pass them to
15304         find_many_sub_basic_blocks.
15305         (pass_lower_subreg): Add TODO_verify_flow.
15306         (pass_lower_subreg2): Likewise.
15307
15308 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15309             Brooks Moses  <brooks.moses@codesourcery.com>
15310             Lee Millward  <lee.millward@codesourcery.com>
15311
15312         * tree.h (enum tree_code_class): Add tcc_vl_exp.
15313         (VL_EXP_CLASS_P): New.
15314         (TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
15315         TREE_CODE_LENGTH.
15316         (TREE_OPERAND_CHECK_CODE): Likewise.
15317         (GIMPLE_STMT_OPERAND_CHECK): Likewise.
15318         (TREE_RTL_OPERAND_CHECK): Likewise.
15319         (tree_operand_check_failed): Make second parameter the whole tree
15320         instead of its code.  Fixed callers.
15321         (VL_EXP_CHECK): New.
15322         (TREE_OPERAND_LENGTH): New.
15323         (VL_EXP_OPERAND_LENGTH): New.
15324         (CALL_EXPR_FN): New.
15325         (CALL_EXPR_STATIC_CHAIN): New.
15326         (CALL_EXPR_ARGS): New.
15327         (CALL_EXPR_ARG): New.
15328         (call_expr_nargs): New.
15329         (CALL_EXPR_ARGP): New.
15330         (build_nt_call_list): Declare.
15331         (build_vl_exp_stat): Declare.
15332         (build_vl_exp): New.
15333         (build_call_list): Declare.
15334         (build_call_nary): Declare.
15335         (build_call_valist): Declare.
15336         (build_call_array): Declare.
15337         (call_expr_arg): Declare.
15338         (call_expr_argp): Declare.
15339         (call_expr_arglist): Declare.
15340         (fold_build_call_list): Declare.
15341         (fold_build_call_list_initializer): Declare.
15342         (fold_call_expr): Declare to replace fold_builtin.
15343         (fold_builtin_fputs): Update to agree with modified definition.
15344         (fold_builtin_strcpy): Likewise.
15345         (fold_builtin_strncpy): Likewise.
15346         (fold_builtin_memory_chk): Likewise.
15347         (fold_builtin_stxcpy_chk): Likewise.
15348         (fold_builtin_strncpy_chk): Likewise.
15349         (fold_builtin_next_arg): Likewise.
15350         (fold_build_call_expr): Declare.
15351         (fold_builtin_call_list): Declare.
15352         (fold_builtin_call_valist): Declare.
15353         (build_call_expr): Declare.
15354         (validate_arglist): Update to agree with modified definition.
15355         (tree_operand_length): New.
15356         (call_expr_arg_iterator): New.
15357         (init_call_expr_arg_iterator): New.
15358         (next_call_expr_arg): New.
15359         (first_call_expr_arg): New.
15360         (more_call_expr_args_p): New.
15361         (FOR_EACH_CALL_EXPR_ARG): New.
15362
15363         * tree.c (tree_code_class_string): Add entries for tcc_vl_exp
15364         and tcc_gimple_stmt.
15365         (tree_code_size): Update documentation.  Use sizeof (tree) rather
15366         than sizeof (char *).
15367         (tree_size): Likewise.  Add case for tcc_vl_exp.
15368         (tree_node_structure): Add case for tcc_vl_exp.
15369         (contains_placeholder_p): Likewise.
15370         (substitute_in_expr): Likewise.
15371         (substitute_placeholder_in_expr): Likewise.
15372         (stabilize_reference_1): Likewise.
15373         (build3_stat): Remove logic for CALL_EXPRs.  Replace with assertion
15374         to diagnose breakage of this interface for constructing CALL_EXPRs.
15375         (build_nt): Add similar assertion here.
15376         (build_nt_call_list): New.
15377         (simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
15378         (iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
15379         TREE_CODE_LENGTH.
15380         (get_callee_fndecl): Use new CALL_EXPR accessors.
15381         (tree_operand_check_failed): Change parameters to pass entire node
15382         instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
15383         (process_call_operands): New.
15384         (build_vl_exp_stat): New.
15385         (build_call_list): New.
15386         (build_call_nary): New.
15387         (build_call_valist): New.
15388         (build_call_array): New.
15389         (walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15390         (call_expr_arglist): New.
15391
15392         * tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
15393         tcc_vl_exp instead of a fixed-size tcc_expression.
15394
15395         * doc/c-tree.texi (CALL_EXPR): Document new representation and
15396         accessors for CALL_EXPRs.
15397         (AGGR_INIT_EXPR): Likewise.
15398
15399 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15400             Brooks Moses  <brooks.moses@codesourcery.com>
15401             Lee Millward  <lee.millward@codesourcery.com>
15402
15403         * builtins.c (c_strlen): Return NULL_TREE instead of 0.
15404         (expand_builtin_nonlocal_goto): Change parameter to be entire
15405         CALL_EXPR instead of an arglist.  Use new CALL_EXPR accessors.
15406         (expand_builtin_prefetch): Likewise.
15407         (expand_builtin_classify_type): Likewise.
15408         (mathfn_built_in): Return NULL_TREE instead of 0.
15409         (expand_errno_check): Use new CALL_EXPR accessors.
15410         (expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
15411         Return NULL_RTX instead of 0.
15412         (expand_builtin_mathfn_2): Likewise.
15413         (expand_builtin_mathfn_3): Likewise.
15414         (expand_builtin_interclass_mathfn): Likewise.
15415         (expand_builtin_sincos): Likewise.
15416         (expand_builtin_cexpi): Likewise.
15417         (expand_builtin_int_roundingfn): Likewise.
15418         (expand_builtin_int_roundingfn_2): Likewise.
15419         (expand_builtin_pow): Likewise.
15420         (expand_builtin_powi): Likewise.
15421         (expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
15422         of arglist, fixing callers appropriately.  Use new CALL_EXPR
15423         accessors and constructors.  Return NULL_RTX instead of 0.
15424         (expand_builtin_strstr): Likewise.
15425         (expand_builtin_strchr): Likewise.
15426         (expand_builtin_strrchr): Likewise.
15427         (expand_builtin_strpbrk): Likewise.
15428         (expand_builtin_memcpy): Likewise.
15429         (expand_builtin_mempcpy): Likewise.
15430         (expand_builtin_mempcpy_args): New.
15431         (expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
15432         (expand_builtin_memmove_args): New.
15433         (expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
15434         (expand_movstr): Likewise.
15435         (expand_builtin_strcpy): Likewise.
15436         (expand_builtin_strcpy_args): New.
15437         (expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
15438         (expand_builtin_strncpy): Likewise.
15439         (expand_builtin_memset): Likewise.
15440         (expand_builtin_memset_args): New.
15441         (expand_builtin_bzero): Similarly to expand_builtin_memset.
15442         (expand_builtin_memcmp): Likewise.
15443         (expand_builtin_strcmp): Likewise.
15444         (expand_builtin_strncmp): Likewise.
15445         (expand_builtin_strcat): Likewise.
15446         (expand_builtin_strncat): Likewise.
15447         (expand_builtin_strspn): Likewise.
15448         (expand_builtin_strcspn): Likewise.
15449         (expand_builtin_args_info): Likewise.
15450         (expand_builtin_va_start): Likewise.
15451         (gimplify_va_arg_expr): Likewise.
15452         (expand_builtin_va_end): Likewise.
15453         (expand_builtin_va_copy): Likewise.
15454         (expand_builtin_frame_address): Likewise.
15455         (expand_builtin_alloca): Likewise.
15456         (expand_builtin_bswap): Likewise.
15457         (expand_builtin_unop): Likewise.
15458         (expand_builtin_fputs): Likewise.
15459         (expand_builtin_expect): Likewise.
15460         (expand_builtin_fabs): Likewise.
15461         (expand_builtin_copysign): Likewise.
15462         (expand_builtin_printf): Likewise.
15463         (expand_builtin_fprintf): Likewise.
15464         (expand_builtin_sprintf): Likewise.
15465         (expand_builtin_init_trampoline): Likewise.
15466         (expand_builtin_signbit): Likewise.
15467         (expand_builtin_fork_or_exec): Likewise.
15468         (expand_builtin_sync_operation): Likewise.
15469         (expand_builtin_compare_and_swap): Likewise.
15470         (expand_builtin_lock_test_and_set): Likewise.
15471         (expand_builtin_lock_release): Likewise.
15472         (expand_builtin): Likewise.
15473         (builtin_mathfn_code): Likewise.
15474
15475         (fold_builtin_constant_p): Pass call arguments individually instead
15476         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
15477         accessors and constructors.  Return NULL_TREE instead of 0.
15478         (fold_builtin_expect): Likewise.
15479         (fold_builtin_classify_type): Likewise.
15480         (fold_builtin_strlen): Likewise.
15481         (fold_builtin_nan): Likewise.
15482         (integer_valued_real_p): Likewise.
15483         (fold_trunc_transparent_mathfn): Likewise.
15484         (fold_fixed_mathfn): Likewise.
15485         (fold_builtin_cabs): Likewise.
15486         (fold_builtin_sqrt): Likewise.
15487         (fold_builtin_cbrt): Likewise.
15488         (fold_builtin_cos): Likewise.
15489         (fold_builtin_cosh): Likewise.
15490         (fold_builtin_tan): Likewise.
15491         (fold_builtin_sincos): Likewise.
15492         (fold_builtin_cexp): Likewise.
15493         (fold_builtin_trunc): Likewise.
15494         (fold_builtin_floor): Likewise.
15495         (fold_builtin_ceil): Likewise.
15496         (fold_builtin_round): Likewise.
15497         (fold_builtin_int_roundingfn): Likewise.
15498         (fold_builtin_bitop): Likewise.
15499         (fold_builtin_bswap): Likewise.
15500         (fold_builtin_logarithm): Likewise.
15501         (fold_builtin_hypot): Likewise.
15502         (fold_builtin_pow): Likewise.
15503         (fold_builtin_powi): Likewise.
15504         (fold_builtin_exponent): Likewise.
15505         (fold_builtin_memset): Likewise.
15506         (fold_builtin_bzero): Likewise.
15507         (fold_builtin_memory_op): Likewise.
15508         (fold_builtin_bcopy): Deleted; call site changed to invoke
15509         fold_builtin_memory_op directly.
15510         (fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
15511         (fold_builtin_strncpy): Likewise.
15512         (fold_builtin_memcmp): Likewise.
15513         (fold_builtin_strcmp): Likewise.
15514         (fold_builtin_strncmp): Likewise.
15515         (fold_builtin_signbit): Likewise.
15516         (fold_builtin_copysign): Likewise.
15517         (fold_builtin_isascii): Likewise.
15518         (fold_builtin_toascii): Likewise.
15519         (fold_builtin_isdigit): Likewise.
15520         (fold_builtin_fabs): Likewise.
15521         (fold_builtin_abs): Likewise.
15522         (fold_builtin_fmin_fmax): Likewise.
15523         (fold_builtin_carg): Likewise.
15524         (fold_builtin_classify): Likewise.
15525         (fold_builtin_unordered_cmp): Likewise.
15526
15527         (fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
15528         New functions split out from fold_builtin_1.
15529         (fold_builtin_n): New.
15530         (fold_builtin_varargs): New.
15531         (fold_builtin): Deleted.  Most callers changed to use fold_call_expr
15532         instead.
15533         (fold_call_expr): New.
15534         (build_function_call_expr): Rewrite to use new helper function.
15535         (fold_builtin_call_list): New.
15536         (build_call_expr): New.
15537         (fold_builtin_call_valist): New.
15538         (rewrite_call_expr): New.
15539         (validate_arg): New.
15540         (validate_arglist): Change parameter to be entire CALL_EXPR instead
15541         of an arglist.  Change return type to bool.  Use new CALL_EXPR
15542         accessors.
15543
15544         (fold_builtin_strstr):  Pass call arguments individually instead
15545         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
15546         accessors and constructors.  Return NULL_TREE instead of 0.
15547         (fold_builtin_strchr): Likewise.
15548         (fold_builtin_strrchr): Likewise.
15549         (fold_builtin_strpbrk): Likewise.
15550         (fold_builtin_strcat): Likewise.
15551         (fold_builtin_strncat): Likewise.
15552         (fold_builtin_strspn): Likewise.
15553         (fold_builtin_strcspn): Likewise.
15554         (fold_builtin_fputs): Likewise.
15555         (fold_builtin_next_arg): Likewise.
15556         (fold_builtin_sprintf): Likewise.
15557
15558         (expand_builtin_object_size): Use new CALL_EXPR accessors.  Use
15559         NULL_RTX instead of 0.
15560         (expand_builtin_memory_chk): Likewise.
15561         (maybe_emit_chk_warning): Likewise.
15562         (maybe_emit_sprintf_chk_warning): Likewise.
15563
15564         (fold_builtin_object_size): Pass call arguments individually instead
15565         of as an arglist, fixing callers appropriately.  Use new CALL_EXPR
15566         accessors and constructors.  Return NULL_TREE instead of 0.
15567         (fold_builtin_memory_chk): Likewise.
15568         (fold_builtin_stxcpy_chk): Likewise.
15569         (fold_builtin_strncpy_chk): Likewise.
15570         (fold_builtin_strcat_chk): Likewise.
15571         (fold_builtin_strcat_chk): Likewise.
15572         (fold_builtin_strncat_chk): Likewise.
15573         (fold_builtin_sprintf_chk): Likewise.
15574         (fold_builtin_snprintf_chk): Likewise.
15575         (fold_builtin_printf): Likewise.
15576         (fold_builtin_vprintf): Likewise.
15577
15578         * fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
15579         constructors.
15580         (operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
15581         (make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15582         (extract_muldiv_1): Add VL_EXP_CLASS_P case.
15583         (fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
15584         (fold_unary): Likewise.
15585         (fold_binary): Likewise.
15586         (fold_ternary): Remove CALL_EXPR case, since they are no longer
15587         ternary expressions.
15588         (fold): Add logic for tcc_vl_exp.
15589         (fold_checksum_tree):  Make it know about tcc_vl_exp.  Use
15590         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15591         (fold_build3_stat): Add assertion to flag broken interface for
15592         constructing CALL_EXPRs.
15593         (fold_build_call_list): New.
15594         (fold_build_call_list_initializer): New.
15595         (tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
15596         constructors.
15597         (fold_strip_sign_ops): Likewise.
15598
15599 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15600             Brooks Moses  <brooks.moses@codesourcery.com>
15601             Lee Millward  <lee.millward@codesourcery.com>
15602
15603         * tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
15604         accessors and dump arguments explicitly.
15605
15606         * tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
15607         TREE_CODE_LENGTH.
15608         (dump_generic_node): Use new CALL_EXPR accessors and walk arguments
15609         explicitly.
15610         (print_call_name): Use new CALL_EXPR accessors.
15611
15612         * print-tree.c (print_node): Add case tcc_vl_exp.  Print
15613         CALL_EXPR arguments explicitly instead of as a list.  Use
15614         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15615
15616         * tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
15617         (vrp_visit_stmt): Likewise.
15618
15619         * tree-ssa-loop-im.c (outermost_invariant_loop_expr):  Make it
15620         know about tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of
15621         TREE_CODE_LENGTH.
15622         (force_move_till_expr): Likewise.
15623
15624         * targhooks.c (default_external_stack_protect_fail): Use
15625         build_call_expr instead of build_function_call_expr.
15626         (default_hidden_stack_protect_fail): Likewise.
15627
15628         * tree-complex.c (expand_complex_libcall): Use build_call_expr to
15629         build the call.
15630
15631         * cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
15632         and walk arguments explicitly.
15633
15634         * tree-ssa-loop-niter.c (simplify_replace_tree): Use
15635         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15636         (expand_simple_operations): Likewise.
15637         (infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
15638
15639         * gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
15640         of TREE_CODE_LENGTH.
15641         (walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
15642
15643         * optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
15644         instead of TREE_CODE_LENGTH.
15645
15646         * value_prof.c (tree_ic): Use new CALL_EXPR accessors.
15647         (tree_ic_transform): Likewise.
15648         (interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
15649         parameter instead of arglist.  Fix callers.
15650         (tree_stringop_fixed_value): Use new CALL_EXPR accessors.
15651         (tree_stringops_transform): Likewise.
15652         (tree_indirect_call_to_profile): Likewise.
15653         (tree_stringops_values_to_profile): Likewise.
15654
15655         * tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
15656         (eliminate_tail_call): Likewise.
15657
15658         * ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
15659
15660         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
15661         Use TREE_OPERAND_LENGTH and generalize to handle any number of
15662         operands.
15663         (instantiate_parameters_1): Can't handle tcc_vl_exp here.
15664
15665         * omp-low.c (build_omp_barrier): Use build_call_expr.
15666         (lower_rec_input_clauses): Likewise.
15667         (lower_reduction_clauses): Likewise.
15668         (expand_parallel_call): Likewise.
15669         (maybe_catch_exception): Likewise.
15670         (expand_omp_for_generic): Likewise.
15671         (expand_omp_for_static_nochunk): Likewise.
15672         (expand_omp_sections): Likewise.
15673         (lower_omp_single_simple): Likewise.
15674         (lower_omp_single_copy): Likewise.
15675         (lower_omp_master): Likewise.
15676         (lower_omp_ordered): Likewise.
15677         (lower_omp_critical): Likewise.
15678
15679         * ipa-reference.c (check-call): Use new CALL_EXPR iterator.
15680         (scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
15681
15682         * tree-gimple.c (is_gimple_call_addr): Fix doc.
15683         (recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
15684         TREE_CODE_LENGTH.  Add tcc_vl_exp case.
15685
15686         * tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
15687         and generalize to handle any number of operands.
15688         (chrec_contains_undetermined): Likewise.
15689         (tree_contains_chrecs): Likewise.
15690         (evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
15691
15692         * cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
15693
15694         * tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors.  Use
15695         fold_call_expr instead of fold_builtin.
15696         (ccp_fold_builtin): Likewise.  Update calls into builtins.c to
15697         match declarations there.
15698         (fold_stmt): Use new CALL_EXPR constructor and accessors.  Doc
15699         updates.
15700
15701         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
15702         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15703
15704         * ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
15705         (scan_function): Add case tcc_vl_exp for CALL_EXPR.
15706
15707         * tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
15708         accessors.
15709
15710         * tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
15711         (execute_cse_sincos): Use new CALL_EXPR accessors.
15712
15713         * tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
15714
15715         * gimple-low.c (lower_function_body): Use build_call_expr.
15716         (lower_builtin_setjmp): Likewise.
15717
15718         * expr.c (emit_block_move_via_libcall): Use build_call_expr.
15719         (set_storage_via_libcall): Likewise.
15720         (safe_from_p): Add tcc_vl_exp case.  Use TREE_OPERAND_LENGTH
15721         instead of TREE_CODE_LENGTH.
15722         (expand_expr_real_1): Use new CALL_EXPR accessors.
15723
15724         * tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
15725         generalize to handle any number of operands.
15726         (TB_parent_eq): Likewise.
15727
15728         * predict.c (expr_expected_value): Use new CALL_EXPR accessors.
15729         (strip_builtin_expect): Likewise.
15730
15731         * function.c (gimplify_parameters): Use build_call_expr.
15732
15733         * tree-vectorizer.c (vect_is_simple_reduction): Use
15734         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15735
15736         * ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
15737         (scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
15738
15739         * tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
15740         iterators.
15741
15742         * gimplify.c (build_stack_save_restore): Use build_call_expr.
15743         (gimplify_decl_expr): Likewise.
15744         (gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
15745         Use new CALL_EXPR iterators.
15746         (gimplify_modify_expr_to_memcpy): Use build_call_expr.
15747         (gimplify_modify_expr_to_memset): Likewise.
15748         (gimplify_variable_sized_compare): Likewise.
15749         (gimplify_omp_atomic_fetch_op): Likewise.
15750         (gimplify_omp_atomic_pipeline): Likewise.
15751         (gimplify_omp_atomic_mutex): Likewise.
15752         (gimplify_function_tree): Likewise.
15753
15754         * calls.c (alloca_call_p): Use new CALL_EXPR accessors.
15755         (call_expr_flags): Likewise.
15756         (expand_call): Likewise.
15757
15758         * except.c (expand_builtin_eh_return_data_regno): Pass entire
15759         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
15760         accessors.
15761
15762         * coverage.c (create_coverage): Use build_call_expr.
15763
15764         * tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
15765         (temp_call_expr_obstack): New.
15766         (pool_copy_list): Delete.
15767         (temp_copy_call_expr): New.
15768         (phi_translate): Add case tcc_vl_exp for CALL_EXPR.  Use new
15769         CALL_EXPR accessors.  Get rid of special goo for copying argument
15770         lists and use temp_copy_call_expr instead.
15771         (valid_in_sets): Add case tcc_vl_exp for CALL_EXPR.  Use new
15772         CALL_EXPR accessors.
15773         (create_expression_by_pieces): Likewise.  Use build_call_array
15774         to construct the result instead of fold_build3.
15775         (create_value_expr_from): Add tcc_vl_exp.  Delete special goo for
15776         dealing with argument lists.
15777         (init_pre): Remove references to expression_node_pool and
15778         list_node_pool.  Init temp_call_expr_obstack instead.
15779         (fini_pre): Remove references to expression_node_pool and
15780         list_node_pool.
15781
15782         * tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
15783         and walk arguments explicitly instead of as a list.
15784
15785         * tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
15786         (mx_register_decls): Likewise.
15787         (mudflap_register_call): Likewise.
15788         (mudflap_finish_file): Likewise.
15789
15790         * ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
15791         (ipa_callsite_compute_param): Likewise.
15792
15793         * tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
15794         accessors and constructor.
15795
15796         * tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
15797         accessors and constructor.
15798         (convert_tramp_reference): Likewise.
15799         (convert_call_expr): Likewise.
15800         (finalize_nesting_tree_1): Likewise.
15801
15802         * tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
15803         accessors.
15804
15805         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
15806
15807         * tree-inline.c (initialize_inlined_parameters): Pass entire
15808         CALL_EXPR as parameter instead of arglist.  Use new CALL_EXPR
15809         accessors.
15810         (estimate_num_insns_1): Use new CALL_EXPR accessors.
15811         (expand_call_inline): Tidy up call to initialize_inlined_parameters.
15812
15813         * tree-vect-transform.c (vect_create_epilog_for_reduction):  Use
15814         TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15815         (vectorizable_reduction): Likewise.
15816         (vectorizable_call): Use new CALL_EXPR iterators.
15817         (vectorizable_conversion): Use build_call_expr.
15818         (vectorizable_operation): Use TREE_OPERAND_LENGTH.
15819         (vect_gen_widened_results_half): Use build_call_expr.
15820         (vect_setup_realignment): Likewise.
15821         (vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
15822
15823         * tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
15824         (pass_through_call): Likewise.
15825         (compute_object_sizes): Likewise.  Use fold_call_expr instead of
15826         fold_builtin.
15827
15828         * tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
15829         (tree_gen_pow2_profiler): Likewise.
15830         (tree_gen_one_value_profiler): Likewise.
15831         (tree_gen_ic_func_profiler): Likewise.
15832         (tree_gen_average_profiler): Likewise.
15833         (tree_gen_ior_profiler): Likewise.
15834
15835         * tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
15836         (find_func_aliases): Use new CALL_EXPR accessors.  Add case
15837         tcc_vl_exp.  Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
15838
15839         * tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
15840         of TREE_CODE_LENGTH.
15841
15842         * stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
15843         of TREE_CODE_LENGTH.
15844
15845         * convert.c (convert_to_real): Use new CALL_EXPR accessors and
15846         constructor.
15847         (convert_to_integer): Likewise.
15848
15849         * tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
15850         accessors.
15851
15852 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15853             Brooks Moses  <brooks.moses@codesourcery.com>
15854             Lee Millward  <lee.millward@codesourcery.com>
15855
15856         * config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
15857         accessors.
15858         * config/frv/frv.c (frv_expand_builtin): Likewise.
15859         * config/s390/s390.c (s390_expand_builtin): Likewise.
15860
15861         * config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
15862         (sparc_expand_builtin): Use new CALL_EXPR accessors.
15863
15864         * config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
15865         (ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
15866         instead of arglist.  Use new CALL_EXPR accessors on it.  Fix callers.
15867         (ix86_expand_store_builtin): Likewise.
15868         (ix86_expand_unop_builtin): Likewise.
15869         (ix86_expand_unop1_builtin): Likewise.
15870         (ix86_expand_sse_compare): Likewise.
15871         (ix86_expand_sse_comi): Likewise.
15872         (ix86_expand_vec_init_builtin): Likewise.
15873         (ix86_expand_vec_ext_builtin): Likewise.
15874         (ix86_expand_vec_set_builtin): Likewise.
15875         (ix86_expand_builtin): Use new CALL_EXPR accessors.
15876
15877         * config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
15878         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
15879
15880         * config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
15881         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
15882         (iq2000_expand_builtin): Use new CALL_EXPR accessors.
15883
15884         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
15885         build_call_expr.
15886         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
15887         (rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
15888         arglist.  Use new CALL_EXPR accessors.  Fix callers.
15889         (altivec_expand_abs_builtin): Likewise.
15890         (rs6000_expand_binop_builtin): Likewise.
15891         (altivec_expand_predicate_builtin): Likewise.
15892         (altivec_expand_lv_builtin): Likewise.
15893         (spe_expand_stv_builtin): Likewise.
15894         (altivec_expand_stv_builtin): Likewise.
15895         (rs6000_expand_ternop_builtin): Likewise.
15896         (altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
15897         (altivec_expand_st_builtin): Likewise.
15898         (altivec_expand_dst_builtin): Likewise.
15899         (altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
15900         arglist.  Use new CALL_EXPR accessors.  Fix callers.
15901         (altivec_expand_vec_set_builtin): Likewise.
15902         (altivec_expand_vec_ext_builtin): Likewise.
15903         (altivec_expand_builtin): Use new CALL_EXPR accessors.
15904         (spe_expand_builtin): Likewise.
15905         (spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
15906         arglist.  Use new CALL_EXPR accessors.  Fix callers.
15907         (spe_expand_evsel_builtin): Likewise.
15908         (rs6000_expand_builtin): Use new CALL_EXPR accessors.  VCFUX and
15909         FCFSX cases must construct whole new CALL_EXPR, not just arglist.
15910
15911         * config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
15912         instead of arglist.  Use new CALL_EXPR accessors.  Fix callers.
15913         (arm_expand_unop_builtin): Likewise.
15914         (arm_expand_builtin): Use new CALL_EXPR accessors.
15915
15916         * config/mips/mips.c (mips_expand_builtin):  Use new CALL_EXPR
15917         accessors.
15918
15919         * config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire
15920         CALL_EXPR instead of arglist.  Use new CALL_EXPR accessors.
15921         Fix callers.
15922         (bfin_expand_unop_builtin): Likewise.
15923         (bfin_expand_builtin): Use new CALL_EXPR accessors.
15924
15925 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
15926             Brooks Moses  <brooks.moses@codesourcery.com>
15927             Lee Millward  <lee.millward@codesourcery.com>
15928
15929         * c-semantics.c (build_stmt): Add internal diagnostic check.
15930
15931         * c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
15932         accessors.  Print arguments explicitly instead of as a list.
15933
15934         * c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
15935
15936         * c-omp.c (c_finish_omp_barrier): Use build_call_expr.
15937         (c_finish_omp_flish): Likewise.
15938
15939         * c-common.c (verify_tree): Use new CALL_EXPR accessors.  Traverse
15940         arguments explicitly instead of as a list.  Use TREE_OPERAND_LENGTH
15941         instead of TREE_CODE_LENGTH.
15942         (check_function_arguments_recurse): Use new CALL_EXPR accessors.
15943         (c_warn_unused_result): Likewise.
15944
15945 2007-02-15  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
15946
15947         PR c/26494
15948         * doc/invoke.texi (Warning Options): Remove
15949         -Werror-implicit-function-declaration.
15950         (Wimplicit-function-declaration): Update description.
15951         * opts.c (common_handle_option): Move handling of -Werror=* to...
15952         (enable_warning_as_error): ...here.
15953         * opts.h (enable_warning_as_error): Declare.
15954         * c-decl.c (implicit_decl_warning): Unless
15955         -Wno-implicit-function-declaration is given, emit a pedwarn if
15956         -std=c99 or emit a warning if -Wimplicit-function-declaration.
15957         * c.opt (Wimplicit-function-declaration): Replace
15958         mesg_implicit_function_declaration with
15959         warn_implicit_function_declaration.
15960         * c-opts.c (c_common_handle_option):
15961         -Werror-implicit-function-declaration is exactly equal as
15962         -Werror=implicit-function-declaration.
15963         (set_Wimplicit): Replace mesg_implicit_function_declaration with
15964         warn_implicit_function_declaration.
15965         (c_common_post_options): -Wimplict-function-declaration is enabled
15966         by default by -std=c99, otherwise is disabled by default.
15967         * c-objc-common.c (c_objc_common_init): Remove flawed logic.
15968
15969 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
15970
15971         * gimplify.c (gimplify_modify_expr): During gimplification, attach a
15972         DECL on the rhs to a DECL on the lhs for debug info purposes if the
15973         former is ignored but not the latter.
15974
15975 2007-02-15  Eric Botcazou  <ebotcazou@adacore.com>
15976
15977         * expr.c (expand_expr_real_1) <normal_inner_ref>: If a temporary
15978         is made and the reference doesn't use the alias set of its type,
15979         do not create the temporary using that type.
15980
15981 2007-02-15  Aldy Hernandez  <aldyh@redhat.com>
15982
15983         * jump.c: Remove prototypes for delete_computation and
15984         delete_prior_computation.
15985
15986 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
15987
15988         * jump.c (get_label_after): Delete.
15989         (get_label_before, delete_computation, delete_jump,
15990         delete_prior_computation, follow_jumps): Move...
15991         * reorg.c (delete_computation, delete_prior_computation): ... here...
15992         (get_label_before, delete_jump): ... making these static ...
15993         (follow_jumps): ... and simplifying this since it only runs after
15994         reload.
15995         * rtl.h (get_label_after, get_label_before, delete_jump,
15996         follow_jumps): Delete prototypes.
15997
15998 2007-02-15  Paolo Bonzini  <bonzini@gnu.org>
15999
16000         * caller-save.c (save_call_clobbered_regs): Do not process sibcalls.
16001
16002 2007-02-15  Nick Clifton  <nickc@redhat.com>
16003
16004         * varasm.c (default_asm_output_anchor): Prepend * to . symbol in
16005         order to prevent it from being munged by the target.
16006
16007 2007-02-15  Uros Bizjak  <ubizjak@gmail.com>
16008
16009         * config/i386/i386.md: Remove misleading comment.
16010
16011 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
16012
16013         * config/frv/frv.md (reload_incc, reload_outcc, reload_incc_uns,
16014         reload_outcc_uns, reload_incc_nz, reload_outcc_nz): Remove
16015         invalid patterns.
16016
16017 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
16018
16019         * tree-sra.c (instantiate_missing_elements): Canonicalize
16020         bit-field types.
16021         (sra_build_assignment): New.
16022         (generate_copy_inout, generate_element_copy,
16023         generate_element_zero, generate_one_element_init): Use it.
16024
16025 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
16026
16027         * tree-sra.c (instantiate_missing_elements): Canonicalize
16028         bit-field types.
16029         (sra_build_assignment): New.
16030         (generate_copy_inout, generate_element_copy,
16031         generate_element_zero, generate_one_element_init): Use it.
16032
16033 2007-02-15  Alexandre Oliva  <aoliva@redhat.com>
16034
16035         * dwarf2out.c (dwarf2out_finish): Accept namespaces as context of
16036         limbo die nodes.
16037
16038 2007-02-14  Joseph Myers  <joseph@codesourcery.com>
16039
16040         * emit-rtl.c (set_mem_attributes_minus_bitpos): Treat complex
16041         types as aggregates not scalars.
16042         * function.c (assign_stack_temp_for_type): Likewise.
16043
16044 2007-02-14  Roger Sayle  <roger@eyesopen.com>
16045             Zdenek Dvorak  <dvorakz@suse.cz>
16046
16047         * tree-dump.c (dump_switch_p_1): Require exact match of the option
16048         name.
16049
16050 2007-02-14  Zdenek Dvorak  <dvorakz@suse.cz>
16051
16052         * passes.c (next_pass_1): Clear the next field of the copied
16053         pass structure.
16054
16055 2007-02-14  Richard Henderson  <rth@redhat.com>
16056
16057         * tree-sra.c (early_sra): New.
16058         (decl_can_be_decomposed_p): Deny va_list if early_sra.
16059         (tree_sra_early, pass_sra_early): New.
16060         * tree-pass.h (pass_sra_early): Declare.
16061         * passes.c (init_optimization_passes): Use it.
16062
16063 2007-02-14  Richard Guenther  <rguenther@suse.de>
16064
16065         * flags.h (issue_strict_overflow_warning): Convert to a macro.
16066
16067 2007-02-14  Dorit Nuzman  <dorit@il.ibm.com>
16068
16069          PR tree-optimization/30771
16070         * tree-vect-analyze.c (vect_determine_vectorization_factor): Traverse
16071         also phi nodes.
16072         (vect_analyze_operations): Induction phis can now be marked as
16073         used_in_loop.
16074         (vect_mark_stmts_to_be_vectorized): No special treatment for phis.
16075         Update documentation accordingly.
16076
16077 2007-02-14  Nick Clifton  <nickc@redhat.com>
16078
16079         * builtin-types.def (DEF_FUNCTION_TYPE_x): Do not imply that at
16080         most 3 arguments are supported.
16081         (DEF_FUNCTION_TYPE_VAR_5): Fix typo in its description.
16082
16083 2007-02-13  Seongbae Park <seongbae.park@gmail.com>
16084
16085         * bitmap.c (bitmap_and, bitmap_and_compl, bitmap_xor):
16086         Ensure dst->current is valid.
16087
16088 2007-02-13  Paul Brook  <paul@codesourcery.com>
16089
16090         * config.gcc: Add arm*-*-uclinux-*eabi.
16091         * config/arm/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Define.
16092         (SUBTARGET_EXTRA_LINK_SPEC): Define.
16093         (STARTFILE_SPEC, ENDFILE_SPEC): Remove broken -shared handling.
16094         (LINK_GCC_C_SEQUENCE_SPEC): Undef.
16095         (LINK_SPEC): Define.
16096         (LIB_SPEC): Define.
16097         * config/arm/arm.c (arm_override_options): Use r9 as EABI PIC
16098         register.
16099         * config/arm/uclinux-eabi.h: New file.
16100         * config/arm/linux-eabi.h (WCHAR_TYPE): Remove.
16101         * config/arm/linux-gas.h (WCHAR_TYPE): Use unsigned long on AAPCS
16102         based targets.
16103
16104 2007-02-13  Ian Lance Taylor  <iant@google.com>
16105
16106         * common.opt: Add Wstrict-overflow and Wstrict-overflow=.
16107         * flags.h (warn_strict_overflow): Declare.
16108         (enum warn_strict_overflow_code): Define.
16109         (issue_strict_overflow_warning): New static inline function.
16110         * opts.c (warn_strict_overflow): New variable.
16111         (common_handle_option): Handle OPT_Wstrict_overflow and
16112         OPT_Wstrict_overflow_.
16113         * c-opts.c (c_common_handle_option): Set warn_strict_overflow for
16114         OPT_Wall.
16115         * fold-const.c: Include intl.h.
16116         (fold_deferring_overflow_warnings): New static variable.
16117         (fold_deferred_overflow_warning): New static variable.
16118         (fold_deferred_overflow_code): New static variable.
16119         (fold_defer_overflow_warnings): New function.
16120         (fold_undefer_overflow_warnings): New function.
16121         (fold_undefer_and_ignore_overflow_warnings): New function.
16122         (fold_deferring_overflow_warnings_p): New function.
16123         (fold_overflow_warning): New static function.
16124         (make_range): Add strict_overflow_p parameter.  Change all
16125         callers.
16126         (extract_muldiv, extract_muldiv_1): Likewise.
16127         (fold_unary) [ABS_EXPR]: Check ABS_EXPR before calling
16128         tree_expr_nonnegative_p.
16129         (fold_negate_expr): Call fold_overflow_warning.
16130         (fold_range_test): Likewise.
16131         (fold_comparison): Likewise.
16132         (fold_binary): Likewise.  Call tree_expr_nonnegative_warnv_p
16133         instead of tree_expr_nonnegative_p.
16134         (tree_expr_nonnegative_warnv_p): Rename from
16135         tree_expr_nonnegative_p, add strict_overflow_p parameter.
16136         (tree_expr_nonnegative_p): New function.
16137         (tree_expr_nonzero_warnv_p): Rename from tree_expr_nonzero_p, add
16138         strict_overflow_p parameter.
16139         (tree_expr_nonzero_p): New function.
16140         * passes.c (verify_interpass_invariants): New static function.
16141         (execute_one_pass): Call it.
16142         * tree-ssa-loop-niter.c (expand_simple_operations): Ignore fold
16143         warnings.
16144         (number_of_iterations_exit, loop_niter_by_eval): Likewise.
16145         (estimate_numbers_of_iterations): Likewise.
16146         (scev_probably_wraps_p): Likewise.
16147         * tree-ssa-ccp.c: Include "toplev.h".
16148         (evaluate_stmt): Defer fold overflow warnings until we know we are
16149         going to optimize.
16150         (struct fold_stmt_r_data): Add stmt field.
16151         (fold_stmt_r): Defer fold overflow warnings until we know we
16152         optimized.
16153         (fold_stmt): Initialize stmt field of fold_stmt_r_data.
16154         (fold_stmt_inplace): Likewise.
16155         * tree-cfgcleanup.c: Include "toplev.h" rather than "errors.h".
16156         (cleanup_control_expr_graph): Defer fold overflow warnings until
16157         we know we are going to optimize.
16158         * tree-cfg.c (fold_cond_expr_cond): Likewise.
16159         * tree-ssa-threadedge.c (simplify_control_stmt_condition):
16160         Likewise.
16161         * tree-vrp.c (vrp_expr_computes_nonnegative): Call
16162         tree_expr_nonnegative_warnv_p instead of tree_expr_nonnegative_p.
16163         * tree-ssa-loop-manip.c (create_iv): Likewise.
16164         * c-typeck.c (build_conditional_expr): Likewise.
16165         (build_binary_op): Likewise.
16166         * tree-vrp.c (vrp_expr_computes_nonzero): Call
16167         tree_expr_nonzero_warnv_p instead of tree_expr_nonzero_p.
16168         (extract_range_from_unary_expr): Likewise.
16169         * simplify-rtx.c (simplify_const_relational_operation): Warn when
16170         assuming that signed overflow does not occur.
16171         * c-common.c (pointer_int_sum): Ignore fold overflow warnings.
16172         * tree.h (tree_expr_nonnegative_warnv_p): Declare.
16173         (fold_defer_overflow_warnings): Declare.
16174         (fold_undefer_overflow_warnings): Declare.
16175         (fold_undefer_and_ignore_overflow_warnings): Declare.
16176         (fold_deferring_overflow_warnings_p): Declare.
16177         (tree_expr_nonzero_warnv_p): Declare.
16178         * doc/invoke.texi (Option Summary): Add -Wstrict-overflow to list
16179         of warning options.
16180         (Warning Options): Document -Wstrict-overflow.
16181         * Makefile.in (tree-ssa-threadedge.o): Depend on toplev.h.
16182         (tree-ssa-ccp.o): Likewise.
16183         (tree-cfgcleanup.o): Change errors.h dependency to toplev.h.
16184         (fold-const.o): Depend on intl.h.
16185
16186 2007-02-13  Ian Lance Taylor  <iant@google.com>
16187
16188         PR middle-end/30751
16189         * lower-subreg.c (resolve_simple_move): Decompose subregs in
16190         addresses.
16191
16192 2007-02-13  Stuart Hastings  <stuart@apple.com>
16193
16194         * config/i386/i386.md (fixuns_truncdfhi2): Require SSE2.
16195
16196 2007-02-13  Richard Henderson  <rth@redhat.com>
16197
16198         * config/alpha/alpha.c (alpha_stdarg_optimize_hook): Strip
16199         handled_component_p before looking for the indirect_ref.
16200
16201 2007-02-13  Richard Henderson  <rth@redhat.com>
16202
16203         * config/i386/i386.md (bswapsi_1): Rename from bswapsi2,
16204         remove flags clobber.
16205         (bswapsi2): New expander, emit code for !TARGET_BSWAP.
16206         (bswaphi_lowpart): New.
16207         (bswapdi2): Rename from bswapdi2_rex, remove flags clobber,
16208         remove TARGET_BSWAP test.  Delete expander of the same name.
16209
16210         * optabs.c (widen_bswap, expand_doubleword_bswap): New.
16211         (expand_unop): Use them.
16212
16213 2007-02-13  Uros Bizjak  <ubizjak@gmail.com>
16214
16215         * config/i386/i386.md (cmpdi_ccno_1_rex64, *cmpsi_ccno_1,
16216         *cmphi_ccno_1, *cmpqi_ccno_1, *movsi_xor, *movstricthi_xor,
16217         *movstrictqi_xor, *movdi_xor_rex64, *ashldi3_1_rex64,
16218         *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, ashlsi3, *ashlsi3_1_zext,
16219         *ashlsi3_cmp, *ashlsi3_cconly, *ashlsi3_cmp_zext, *ashlhi3_1_lea,
16220         *ashlhi3_1, *ashlhi3_cmp, *ashlhi3_cconly, *ashlqi3_1_lea,
16221         *ashlqi3_1, *ashlqi3_cmp, *ashlqi3_cconly): Remove equivalent
16222         assembler dialect choice from asm templates.
16223
16224 2007-02-12  Richard Henderson  <rth@redhat.com>
16225
16226         * config/i386/i386.md (fixuns_trunc<SSEMODEF>si_1): New insn.
16227         (fixuns_trunc<SSEMODEF>si2): Use it.
16228         * config/i386/sse.md (vec_setv4sf_0): Export.
16229         * config/i386/i386.c (ix86_build_const_vector): Export.
16230         (ix86_split_convert_uns_si_sse): Rename from
16231         ix86_expand_convert_uns_si_sse and rewrite as a splitter.
16232         * config/i386/i386-protos.h: Update.
16233
16234 2007-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16235
16236         PR c/29521
16237         * c-typeck.c (c_finish_return): Improve warning message.
16238
16239 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16240
16241         * alias.c (find_symbolic_term): Delete unused function.
16242
16243 2007-02-12  Uros Bizjak  <ubizjak@gmail.com>
16244
16245         * config/i386/i386.md (paritydi2, paritysi2): New expanders.
16246         (paritydi2_cmp, paritydi2_cmp): New insn and split patterns.
16247         (*parityhi2_cmp, *parityqi2_cmp): New insn patterns.
16248
16249 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
16250
16251         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
16252         * cgraphunit.c (cgraph_expand_function): If DECL_IGNORED_P is set on
16253         the function, temporarily point the debug interface to the null one.
16254
16255 2007-02-12  Eric Botcazou  <ebotcazou@adacore.com>
16256
16257         * dwarf2out.c (round_up_to_align): New static function.
16258         (field_byte_offset): Use it to round the offset.
16259
16260 2007-02-12  Richard Henderson  <rth@redhat.com>
16261
16262         * config/alpha/alpha.md (bswapsi2, bswapdi2): New.
16263         (inswl_const): Export.
16264
16265 2007-02-12  Richard Henderson  <rth@redhat.com>
16266
16267         * calls.c (emit_library_call_value_1): If PROMOTE_MODE modifed the
16268         result mode of the libcall, convert back to outmode.
16269
16270 2007-02-12  Roger Sayle  <roger@eyesopen.com>
16271
16272         * config/i386/i386.md (*bswapdi2_rex): Renamed from bswapdi2.
16273         (bswapdi2): New define_expand to implement 32-bit implementation.
16274
16275 2007-02-12  Nick Clifton  <nickc@redhat.com>
16276
16277         * doc/invoke.texi (Overall Options): Document --help=.
16278         * gcc.c (target_help_flag): Rename to print_subprocess_flag.
16279         (cc1_options): Pass --help= on to cc1.
16280         (display_help): Add description of --help=.
16281         (process_command): Add code to handle --help=.  Allow translated
16282         --help and --target-help switches to be passed on to compiler
16283         sub-process.
16284         (main): Remove unused if statement.
16285         * opts.c (columns): Remove.
16286         (LEFT_COLUMN): Define.
16287         (wrap_help): Add columns argument.
16288         (print_filtered_help): Change parameters to be an include bitmask,
16289         an exclude bitmask, an any bitmask and the column width.  Move the
16290         code to display the params list here.  Add code to display the
16291         status of options rather than their descriptions if the quiet flag
16292         is not active.
16293         (print_specific_help): Change parameters to be an include bitmask,
16294         an exclude bitmask and an any bitmask.  Move code to look up the
16295         column width here.  Decide upon the title for an options listing.
16296         (common_handle_options): Add code to handle --help=.  Adapt code
16297         for --help and --target-help to use the revised form of the
16298         print_specific_help function.
16299         (print_help): Delete.
16300         (print_param_help): Delete.
16301         (print_switch): Delete.
16302         * opts.h (cl_lang_count): Add prototype.
16303         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_MIN_OPTION_CLASS,
16304         CL_MAX_OPTION_CLASS): New defines.
16305         * optc-gen.awk: Add construction of cl_lang_count.
16306         * c.opt: Add Warning attribute to warning options and Optimization
16307         attribute to optimization options.
16308         * common.opt: Likewise.
16309         Add --help=.
16310         Add -fhelp and -ftarget-help as aliases for the transformed --help
16311         and --target-help options.
16312         * opt-functions.awk: Add code to handle Warning and Optimization
16313         attributes.
16314
16315 2007-02-12  Richard Henderson  <rth@redhat.com>
16316
16317         * config/alpha/constraints.md: New file.
16318         * config/alpha/alpha.c: Include tm-constrs.h.
16319         (alpha_const_ok_for_letter_p, alpha_const_double_ok_for_letter_p,
16320         alpha_extra_constraint): Remove.
16321         (alpha_emit_conditional_branch): Use satisfies_constraint_*.
16322         * config/alpha/alpha-protos.h: Update.
16323         * config/alpha/alpha.h (REG_CLASS_FROM_LETTER): Remove.
16324         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Remove.
16325         (EXTRA_CONSTRAINT): Remove.
16326         * config/alpha/alpha.md: Include constraints.md.
16327         (adddi splitter): Use satisfies_constraint_*.
16328         * config/alpha/predicates.md (add_operand): Likewise.
16329         (sext_add_operand, addition_operation): Likewise.
16330
16331 2007-02-12  Dorit Nuzman  <dorit@il.ibm.com>
16332
16333         PR tree-optimization/29145
16334         * tree-data-ref.c (base_addr_differ_p): Make us more conservative
16335         in our handling of restrict qualified pointers.
16336
16337 2007-02-12  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16338
16339         PR middle-end/7651
16340         * doc/invoke.texi (Wunused-value): Update description.
16341         (Wextra): Delete item.
16342         * opts.c (set_Wextra): Don't use the value of Wextra to set the
16343         value of Wunused-value.
16344         * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
16345         (c_finish_stmt_expr): Don't check extra_warnings.
16346         (emit_side_effect_warnings): The caller is responsible to check
16347         warn_unused_value.
16348
16349 2007-02-11  Roger Sayle  <roger@eyesopen.com>
16350             Matt Thomas  <matt@3am-software.com>
16351
16352         * simplify-rtx.c (simplify_relational_operation_1): Correct typo.
16353
16354 2007-02-11  Roger Sayle  <roger@eyesopen.com>
16355
16356         * simplify-rtx.c (simplify_relational_operation_1): Optimize
16357         comparisons of POPCOUNT against zero.
16358         (simplify_const_relational_operation): Likewise.
16359
16360 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16361
16362         * doc/invoke.texi (Wextra): Delete outdated paragraph.
16363
16364 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16365
16366         * dwarf2out.c (root_type): Delete unused function.
16367
16368 2007-02-11  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16369
16370         * genattrtab.c (contained_in_p): Delete unused function.
16371         (write_expr_attr_cache): Likewise.
16372
16373 2007-02-11  Jan Hubicka  <jh@suse.cz>
16374
16375         * ipa-inline.c (cgraph_edge_badness): Add "else" missing in the
16376         previous patch.
16377
16378 2007-02-11  Steven Bosscher  <steven@gcc.gnu.org>
16379
16380         * fwprop.c (try_fwprop_subst): Use set_unique_reg_note
16381         to add the REG_EQ* note.
16382         * see.c (see_merge_one_use_extension): Likewise.
16383         * local-alloc.c (update_equiv_regs): Likewise.  Also don't
16384         turn REG_EQUAL notes into REG_EQUIV notes if the target
16385         register may have more than one set.
16386         * function.c (assign_parm_setup_reg): Use set_unique_reg_note.
16387         * gcse.c (try_replace_reg): Likewise.
16388         * alias.c (init_alias_analysis): Use find_reg_equal_equiv_note.
16389         * calls.c (fixup_tail_calls): Likewise.  Abort if there is
16390         more than one REG_EQUIV note.
16391         * reload1.c (gen_reload): Use set_unique_reg_note.
16392
16393 2007-02-11  Uros Bizjak  <ubizjak@gmail.com>
16394
16395         * config/i386/i386.c (TARGET_VECTORIZE_BUILTIN_CONVERSION): Define.
16396         (ix86_builtin_conversion): New function.
16397
16398 2007-02-06  Mark Mitchell  <mark@codesourcery.com>
16399
16400         PR target/29487
16401         * tree.h (DECL_REPLACEABLE_P): New macro.
16402         * except.c (set_nothrow_function_flags): Likewise.
16403
16404 2007-02-11  Tehila Meyzels  <tehila@il.ibm.com>
16405             Ira Rosen  <irar@il.ibm.com>
16406             Dorit Nuzman  <dorit@il.ibm.com>
16407
16408         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): New target hook.
16409         * targhooks.c (default_builtin_vectorized_conversion): New.
16410         * targhooks.h (default_builtin_vectorized_function): New declaration.
16411         * target.h (struct vectorize): Add builtin_conversion field.
16412         * tree-vectorizer.h (type_conversion_vec_info_type): New enum
16413         stmt_vec_info_type value.
16414         (vectorizable_conversion): New declaration.
16415         * tree-vect-analyze.c (vect_analyze_operations): Add
16416         vectorizable_conversion call.
16417         * target-def.h (TARGET_VECTORIZE_BUILTIN_CONVERSION): New.
16418         * tree-vect-transform.c (vectorizable_conversion): New function.
16419         (vect_transform_stmt): Add case for type_conversion_vec_info_type.
16420         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
16421         mode.
16422         * config/rs6000/rs6000.c (rs6000_builtin_conversion): New.
16423         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Defined.
16424         (rs6000_expand_builtin): Add handling a case of ALTIVEC_BUILTIN_VCFUX
16425         or ALTIVEC_BUILTIN_VCFSX.
16426
16427 2007-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16428
16429         PR target/30634
16430         * pa.md (movdf): For 64-bit target, fail if operand 1 is a non-zero
16431         CONST_DOUBLE and operand 0 is a hard register.
16432         (movdi): For 64-bit target, remove code to force CONST_DOUBLE to
16433         memory.  Fail if operand 1 is a non-zero CONST_INT and operand 0
16434         is a hard floating-point register.
16435
16436 2007-02-10  Richard Henderson  <rth@redhat.com>
16437             Jakub Jelinek  <jakub@redhat.com>
16438             Alexandre Oliva  <aoliva@redhat.com>
16439
16440         * Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
16441         * builtin-types.def (BT_WORD): Make unsigned.
16442         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
16443         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
16444         (BUILT_IN_EMUTLS_REGISTER_COMMON): New.
16445         * c-decl.c (grokdeclarator): Don't error if !have_tls.
16446         * c-parser.c (c_parser_omp_threadprivate): Likewise.
16447         * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
16448         emulated tls.
16449         * expr.c (emutls_var_address): New.
16450         (expand_expr_real_1): Expand emulated tls.
16451         (expand_expr_addr_expr_1): Likewise.
16452         * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
16453         * output.h (emutls_finish): Declare.
16454         * toplev.c (compile_file): Call it.
16455         * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
16456         address before wrapping in CONST.
16457         * varasm.c (emutls_htab, emutls_object_type): New.
16458         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
16459         (get_emutls_object_name, get_emutls_object_type): New.
16460         (get_emutls_init_templ_addr, emutls_decl): New.
16461         (emutls_common_1, emutls_finish): New.
16462         (assemble_variable): When emulating tls, swap decls; generate
16463         constructor for the emutls objects.
16464         (do_assemble_alias): When emulating tls, swap decl and target name.
16465         (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
16466         for emulated tls.
16467         * varpool.c (decide_is_variable_needed): Look at force_output.
16468         Recurse for emulated tls.
16469         (cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
16470         with decide_is_variable_needed.
16471         * emutls.c: New file.
16472         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
16473         tls_object for real tls.
16474
16475 2007-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
16476
16477         PR rtl-optimization/29599
16478         * reload1.c (eliminate_regs_in_insn): Take the destination
16479         mode into account when computing the offset.
16480
16481 2007-02-09  Stuart Hastings  <stuart@apple.com>
16482             Richard Henderson  <rth@redhat.com>
16483
16484         * config/i386/i386.h (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
16485         * config/i386/darwin.h: (TARGET_KEEPS_VECTOR_ALIGNED_STACK): New.
16486         * config/i386/i386.md (fixuns_trunc<mode>si2, fixuns_truncsfhi2,
16487         fixuns_truncdfhi2): New.
16488         (fix_truncsfdi_sse): Call ix86_expand_convert_sign_didf_sse.
16489         (floatunsdidf2): Call ix86_expand_convert_uns_didf_sse.
16490         (floatunssisf2): Add call to ix86_expand_convert_uns_sisf_sse.
16491         (floatunssidf2): Allow nonimmediate source.
16492         * config/i386/sse.md (movdi_to_sse): New.
16493         (vec_concatv2di): Drop '*'.
16494         * config/i386/i386-protos.h (ix86_expand_convert_uns_si_sse,
16495         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
16496         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse):
16497         New.
16498         * config/i386/i386.c (ix86_expand_convert_uns_si_sse,
16499         ix86_expand_convert_uns_didf_sse, ix86_expand_convert_uns_sidf_sse,
16500         ix86_expand_convert_uns_sisf_sse, ix86_expand_convert_sign_didf_sse,
16501         ix86_build_const_vector, ix86_expand_vector_init_one_nonzero): New.
16502         (ix86_build_signbit_mask): Fix decl of v, refactor to call
16503         ix86_build_const_vector.
16504         (x86_emit_floatuns): Rewrite.
16505
16506 2007-02-10  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16507
16508         * genautomata.c (longest_path_length): Delete unused function.
16509         (struct state): Delete unused longest_path_length.
16510         (UNDEFINED_LONGEST_PATH_LENGTH): Delete unused macro.
16511         (get_free_state): Delete unused.
16512
16513 2007-02-09  Jan Hubicka  <jh@suse.cz>
16514
16515         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 30.
16516         * doc/invoke.texi (inline-unit-growth): Update default value.
16517
16518         * Makefile.in (passes.o, ipa-inline.o): Add dependencies.
16519         * cgraphbuild.c (build_cgraph_edges): Compute frequencies.
16520         (rebuild_cgraph_edges): Likewise.
16521         * cgraph.c (cgraph_set_call_stmt): Add new argument frequency.
16522         (dump_cgraph_node): Dump frequencies.
16523         (cgraph_clone_edge): Add frequency scales.
16524         (cgraph_clone_node): Add freuqnecy.
16525         * cgraph.h (cgraph_edge): Add freuqnecy argument.
16526         (CGRAPH_FREQ_BASE, CGRAPH_FREQ_MAX): New constants.
16527         (cgraph_create_edge, cgraph_clone_edge, cgraph_clone_node): Update.
16528         * tree-pass.h (TODO_rebuild_frequencies): New constant.
16529         * cgraphunit.c (verify_cgraph_node): Verify frequencies.
16530         (cgraph_copy_node_for_versioning): Update call of cgraph_clone_edge.
16531         (save_inline_function_body): Likewise.
16532         * ipa-inline.c: inluce rtl.h
16533         (cgraph_clone_inlined_nods): Update call of cgraph_clone_node.
16534         (cgraph_edge_badness): Use frequencies.
16535         (cgraph_decide_recursive_inlining): Update clonning.
16536         (cgraph_decide_inlining_of_small_function): Dump frequency.
16537         * predict.c (estimate_bb_frequencies): Export.
16538         * predict.h (estimate_bb_frequencies): Declare.
16539         * tree-inline.c (copy_bb): Watch overflows.
16540         (expand_call_inline): Update call of cgraph_create_edge.
16541         (optimize_inline_calls): Use TODO flags to update frequnecies.
16542         * passes.h: Include predict.h
16543         (init_optimization_passes): Move profile ahead.
16544         (execute_function_todo): Handle TODO_rebuild_frequencies.
16545
16546 2007-02-09  Roger Sayle  <roger@eyesopen.com>
16547
16548         * config/alpha/alpha.c (emit_insxl): Force the first operand of
16549         the insbl or inswl pattern into a register.
16550
16551 2007-02-09  Roger Sayle  <roger@eyesopen.com>
16552
16553         * config/ia64/ia64.md (bswapdi2): New define_insn.
16554
16555 2007-02-09  Richard Henderson  <rth@redhat.com>
16556
16557         * config/i386/constraints.md (Ym): New constraint.
16558         * config/i386/i386.md (movsi_1): Change Y2 to Yi constraints.
16559         (movdi_1_rex64): Split sse and xmm general register moves from
16560         memory move alternatives.  Use conditional register constraints.
16561         (movsf_1, movdf_integer): Likewise.
16562         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
16563         (movdf_integer_rex64): New.
16564         (pushsf_rex64): Fix output constraints.
16565         * config/i386/sse.md (sse2_loadld): Split rm alternative, use Yi.
16566         (sse2_stored): Likewise.
16567         (sse2_storeq_rex64): New.
16568         * config/i386/i386.c (x86_inter_unit_moves): Enable for not
16569         amd and not generic.
16570         (ix86_secondary_memory_needed): Don't bypass TARGET_INTER_UNIT_MOVES
16571         for optimize_size.  Remove SF/DFmode hack.
16572
16573 2007-02-09  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
16574
16575         * config/i386/driver-i386.c: Turn on -mtune=native for AMDFAM10.
16576         (bit_SSE4a): New.
16577
16578 2007-02-09  Nathan Sidwell  <nathan@codesourcery.com>
16579             Richard Sandiford  <richard@codesourcery.com>
16580
16581         * config.gcc (m68010-*-netbsdelf*, m68k*-*-netbsdelf*)
16582         (m68k*-*-openbsd*, m68k-*-linux*): Set default_cf_cpu.
16583         (m68k-*-aout*, m68k-*-coff*, m68k-*-uclinux*, m68k-*-rtems*): Add
16584         m68k/t-mlib to tmake_file.
16585         (m68020-*-elf*, m68k-*-elf*): Likewise.  Add t-m68kbare as well.
16586         (m68k*-*-*): Use --with-arch to pick a default for --with-cpu.
16587         (m680[012]0-*-*, m68k*-*-*): Add support for --with-arch.
16588         Allow it to be cf or m68k.  Set m68k_arch_family.  If that
16589         variable is not empty, add t-$m68k_arch_family to tmake_file.
16590         Add t-mlibs to tmake_file.
16591         * doc/install.texi: Document --with-arch=m68k and --with-arch=cf.
16592         * config/m68k/t-cf: New file.
16593         * config/m68k/t-m68k: Likewise.
16594         * config/m68k/t-mlibs: Likewise.
16595         * config/m68k/t-m68kbare (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
16596         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
16597         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
16598         * config/m68k/t-m68kelf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
16599         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS, LIBGCC, INSTALL_LIBGCC):
16600         Delete.
16601         * config/m68k/t-openbsd (MULTILIB_OPTIONS, LIBGCC): Delete.
16602         (INSTALL_LIBGCC): Delete.
16603         (M68K_MLIB_DIRNAMES, M68K_MLIB_OPTIONS): Define.
16604         * config/m68k/t-rtems (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
16605         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
16606         (M68K_MLIB_CPU): Define.
16607         * config/m68k/t-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
16608         (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Delete.
16609         (M68K_MLIB_CPU, M68K_MLIB_OPTIONS, M68K_MLIB_DIRNAMES): Define.
16610
16611 2007-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
16612             Richard Guenther  <rguenther@suse.de>
16613
16614         PR middle-end/23361
16615         * fold-const.c (fold_comparison): Handle obfuscated comparisons
16616         against INT_MIN/INT_MAX.
16617         * tree-ssa-loop-ivcanon.c (remove_empty_loop): Print to dump
16618         file if a loop is removed.
16619
16620 2007-02-09  Joseph Myers  <joseph@codesourcery.com>
16621
16622         * calls.c (store_one_arg): Pass correct alignment to
16623         emit_push_insn for non-BLKmode values.
16624         * expr.c (emit_push_insn): If STRICT_ALIGNMENT, copy to an
16625         unaligned stack slot via a suitably aligned slot.
16626
16627 2007-02-08  DJ Delorie  <dj@redhat.com>
16628
16629         * config/m32c/m32c.c (m32c_unpend_compare): Add default to silence
16630         warnings.
16631         (legal_subregs): Use unsigned char, make const.
16632         (m32c_illegal_subreg_p): Use ARRAY_SIZE.  Delete unused variables.
16633
16634 2007-02-08  Paul Brook  <paul@codesourcery.com>
16635
16636         * config/arm/lib1funcs.asm (RETLDM): Pop directly into PC when no
16637         special interworking needed.
16638
16639 2007-02-08  Harsha Jagasia  <harsha.jagasia@amd.com>
16640
16641         * config/i386/xmmintrin.h: Make inclusion of emmintrin.h
16642         conditional to __SSE2__.
16643         (Entries below should have been added to first ChangeLog
16644         entry for amdfam10 dated 2007-02-05)
16645         * config/i386/emmintrin.h: Generate #error if __SSE2__ is not
16646         defined.
16647         * config/i386/pmmintrin.h: Generate #error if __SSE3__ is not
16648         defined.
16649         * config/i386/tmmintrin.h: Generate #error if __SSSE3__ is not
16650         defined.
16651
16652 2007-02-08  DJ Delorie  <dj@redhat.com>
16653
16654         * config/m32c/m32c-protos.h (m32c_illegal_subreg_p): New.
16655         * config/m32c/m32c.c (legal_subregs): New.
16656         (m32c_illegal_subreg_p): New.
16657         * config/m32c/predicates.md (m32c_any_operand): Use it to reject
16658         unsupported subregs of hard regs.
16659
16660 2007-02-08  Jan Hubicka  <jh@suse.cz>
16661
16662         * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
16663         the same one; always update histograms.
16664
16665 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
16666
16667         * passes.c (init_optimization_passes): Tidy comment.
16668
16669 2007-02-08  Roger Sayle  <roger@eyesopen.com>
16670
16671         * simplify-rtx.c (simplify_unary_operation_1) <POPCOUNT>: We can
16672         strip zero_extend, bswap and rotates from POCOUNT's argument.
16673         <PARITY>: Likewise, we can strip not, bswap, sign_extend,
16674         zero_extend and rotates from PARITY's argument.
16675         <BSWAP>: A byte-swap followed by a byte-swap is an identity.
16676         (simplify_const_unary_operation) <BSWAP>: Evaluate the byte-swap
16677         of an integer constant at compile-time.
16678
16679 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
16680
16681         PR 30562
16682         * tree-flow.h (struct var_ann_d): Remove field 'is_used'.
16683         Update all users.
16684         * tree-ssa-alias.c (compute_is_aliased): Remove.  Update all
16685         users.
16686         (init_alias_info):
16687         * tree-ssa-live.c (remove_unused_locals): Do not remove
16688         TREE_ADDRESSABLE variables.
16689         * tree-ssa-structalias.c (compute_points_to_sets): Tidy.
16690         * tree-ssa-operands.c (add_virtual_operand): Remove argument
16691         FOR_CLOBBER.  Update all users.
16692         If VAR has an associated alias set, add a virtual operand for
16693         it if no alias is found to conflict with the memory reference.
16694
16695 2007-02-07  Jan Hubicka  <jh@suse.cz>
16696             Robert Kidd <rkidd@crhc.uiuc.edu>
16697
16698         * value-prof.c (visit_hist, free_hist): Return 1 instead of 0.
16699
16700 2007-02-07  Ian Lance Taylor  <iant@google.com>
16701
16702         * lower-subreg.c (simple_move): Reject PARTIAL_INT modes.
16703
16704 2007-02-07  Roger Sayle  <roger@eyesopen.com>
16705
16706         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
16707         parity<mode>2, smulsi3_highpart, abstf2_internal, allocate_stack,
16708         tablejumpdi, movsi_to_cr_one): Remove constraints from
16709         define_expand's match_operands.
16710
16711 2007-02-07  Roger Sayle  <roger@eyesopen.com>
16712
16713         * global.c (compute_regsets): Move declatation of "i" inside of
16714         #ifdef ELIMINABLE_REGS to avoid unused variable bootstrap failure.
16715
16716 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
16717
16718         PR c++/30703
16719         * gimplify.c (gimplify_scan_omp_clauses): Remove special casing
16720         of INDIRECT_REF <RESULT_DECL>.
16721
16722         * config/i386/i386.c (override_options): Set PTA_SSSE3 for core2.
16723
16724 2007-02-06  J"orn Rennecke  <joern.rennecke@arc.com>
16725             Kaz Kojima  <kkojima@gcc.gnu.org>
16726
16727         PR target/29746
16728         * config/sh/sh.c (expand_cbranchdi4): Use scratch register
16729         properly.
16730         (sh_initialize_trampoline): Add parentheses to avoid a warning.
16731
16732 2007-02-06  Zdenek Dvorak <dvorakz@suse.cz>
16733
16734         * doc/loop.texi: Document possibility not to perform disambiguation
16735         of loops with multiple latches.
16736         * cfgloopmanip.c (alp_enum_p): Removed.
16737         (add_loop): Handle subloops.  Use get_loop_body_with_size.
16738         (create_preheader): Do not allow ENTRY_BLOCK_PTR to be preheader.
16739         * cfghooks.c (redirect_edge_and_branch_force): Set dominator for
16740         the new forwarder block.
16741         (make_forwarder_block): Only call new_bb_cbk if it is not NULL.
16742         Handle the case latch is NULL.
16743         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Avoid cfg
16744         modifications when marking loop exits.
16745         * ifcvt.c (if_convert): Ditto.  Mark loop exits even if cfg cannot
16746         be modified.
16747         * loop-init.c (loop_optimizer_init): Do not modify cfg.  Call
16748         disambiguate_loops_with_multiple_latches.
16749         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Calculate dominators
16750         before fix_loop_structure.
16751         * cfgloop.c: Include pointer-set.h and output.h.
16752         (canonicalize_loop_headers, HEADER_BLOCK, LATCH_EDGE,
16753         update_latch_info, mfb_keep_just, mfb_keep_nonlatch): Removed.
16754         (get_loop_latch_edges, find_subloop_latch_edge_by_profile,
16755         find_subloop_latch_edge_by_ivs, find_subloop_latch_edge,
16756         mfb_redirect_edges_in_set, form_subloop, merge_latch_edges,
16757         disambiguate_multiple_latches, get_loop_body_with_size,
16758         disambiguate_loops_with_multiple_latches): New functions.
16759         (flow_loop_dump): Dump multiple latch edges.
16760         (flow_loop_nodes_find): Handle loops with multiple latches.
16761         (flow_loops_find): Ditto. Do not call canonicalize_loop_headers.
16762         (glb_enum_p): Modified.
16763         (get_loop_body): Use get_loop_body_with_size.
16764         * cfgloop.h (LOOPS_HAVE_RECORDED_EXITS): New flag.
16765         (AVOID_CFG_MODIFICATIONS): New constant.
16766         (disambiguate_loops_with_multiple_latches, add_loop,
16767         get_loop_body_with_size): Declare.
16768         * Makefile.in (cfgloop.o): Add pointer-set.h and output.h.
16769
16770 2007-02-06  Seongbae Park <seongbae.park@gmail.com>
16771
16772         PR inline-asm/28686
16773         * global.c (compute_regsets): New function.
16774         (global_alloc): Refactored ELIMINABLE_REGSET
16775         and NO_GLOBAL_ALLOC_REGS computation out.
16776         (rest_of_handle_global_alloc): Call compute_regsets()
16777         for non-optimizing case.
16778
16779 2007-02-06  Richard Henderson  <rth@redhat.com>
16780
16781         * config/i386/constraints.md (Y2): Rename from Y.
16782         (Yi): New constraint.
16783         * config/i386/i386.md (movsi_1, movdi_2, pushdf_nointeger,
16784         pushdf_integer, movdf_nointeger, movdf_integer, zero_extendsidi2_32,
16785         zero_extendsidi2_rex64, truncxfdf2_mixed): Change Y constraints to Y2.
16786         (extendsfdf2_mixed, extendsfdf2_sse, truncdfsf_fast_mixed,
16787         truncdfsf_fast_sse, truncdfsf_mixed, fix_truncdfdi_sse,
16788         fix_truncdfsi_sse, floatsidf2_mixed, floatsidf2_sse,
16789         floatdidf2_mixed, floatdidf2_sse, absnegdf2_mixed,
16790         absnegdf2_sse, sse_setccdf, fop_df_comm_mixed, fop_df_comm_sse,
16791         fop_df_1_mixed, fop_df_1_sse): Change Y constraints to x.
16792         * config/i386/mmx.md (mov<MMXMODEI>_internal_rex64,
16793         mov<MMXMODEI>_internal, movv2sf_internal_rex64, movv2sf_internal,
16794         vec_extractv2si_1): Change Y constraints to Y2.
16795         * config/i386/sse.md (vec_setv4sf_0, vec_concatv2df, vec_dupv4si,
16796         vec_dupv2di, sse2_concatv2si, vec_concatv4si_1, vec_concatv2di):
16797         Change Y constraints to Y2.
16798         (sse2_loadld): Change Y constraints to x.
16799
16800 2007-02-06  Roger Sayle  <roger@eyesopen.com>
16801
16802         * config/rs6000/rs6000.md (popcount<mode>2): Rewrite.
16803         (parity<mode>2): New define_expand using rs6000_emit_parity.
16804         * config/rs6000/rs6000.c (rs6000_emit_popcount,
16805         rs6000_emit_parity): New functions.
16806         * config/rs6000/rs6000-protos.h (rs6000_emit_popcount,
16807         rs6000_emit_parity): Prototype here.
16808
16809 2007-02-06  Ian Lance Taylor  <iant@google.com>
16810
16811         * lower-subreg.c (simple_move_operand): Reject CONST.
16812         (resolve_clobber): Call validate_change rather than directly
16813         assigning to XEXP (pat, 0).
16814
16815 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
16816
16817         * Makefile.in (tree-ssa-loop-ivopts.o): Add pointer-set.h dependency.
16818         (tree-ssa-reassoc.o): Add pointer-set.h dependency.
16819         (tree-cfg.o): Remove hashtab.h dependency.
16820
16821         * tree-ssa-loop-ivopts.c: Include pointer-set.h.
16822         (struct ivopts_data): Change niters to pointer_map_t.
16823         (struct nfe_cache_elt, nfe_hash, nfe_eq): Delete.
16824         (niter_for_exit): Create pointer_map on demand.  Change for
16825         pointer_map API.
16826         (tree_ssa_iv_optimize_init): Initialize data->niters to NULL.
16827         (free_loop_data): Destroy data->niters if created and reset field.
16828         (tree_ssa_iv_optimize_finalize): Don't delete data->niters here.
16829         (tree_ssa_iv_optimize_loop): Check for presence of stale data.
16830
16831         * tree-ssa-reassoc.c: Include pointer-set.h.
16832         (bb_rank): Change to long *.
16833         (operand_rank): Change to pointer_map_t.
16834         (find_operand_rank): Return long, -1 if not found.  Declare as inline.
16835         (insert_operand_rank): Accept long.
16836         (operand_entry_hash, operand_entry_eq): Remove.
16837         (get_rank): Return long.  Adjust for changes above.
16838         (init_reassoc): Change rank type to long.  Adjust creation of bb_rank
16839         and operand_rank.
16840         (fini_reassoc): Delete operand_rank with pointer_map_destroy.
16841
16842         * tree-ssa-structalias.c (vi_for_tree): Change to pointer_map.
16843         (struct tree_vi, tree_vi_t, tree_vi_hash, tree_vi_eq): Delete.
16844         (insert_vi_for_tree): Rewrite for pointer_map API.  Assert argument
16845         is not NULL.
16846         (lookup_vi_for_tree): Rewrite for pointer_map API.  Return varinfo_t
16847         directly since it cannot be NULL.
16848         (get_vi_for_tree): Rewrite for pointer_map API.
16849         (find_what_p_points_to): Adjust for change to lookup_vi_for_tree.
16850         (init_alias_vars): Create vi_for_tree as pointer_map.
16851         (delete_points_to_sets): Delete vi_for_tree using pointer_map_destroy.
16852
16853         * tree-cfg.c: Don't include hashtab.h.
16854         (edge_to_cases): Declare as pointer_map.
16855         (struct edge_to_cases_elt, edge_to_cases_hash, edge_to_cases_eq):
16856         Delete.
16857         (edge_to_cases_cleanup): Rewrite as pointer_map_traverse callback.
16858         (start_recording_case_labels): Create edge_to_cases as pointer_map.
16859         (end_recoding_case_labels): Cleanup edge_to_cases manually before
16860         destroying it.
16861         (record_switch_edge): Delete.
16862         (get_cases_for_edge): Adjust for pointer_map API, inline
16863         record_switch_edge (rewritten for new API), remove goto.
16864
16865 2006-02-06  Paolo Bonzini  <bonzini@gnu.org>
16866
16867         * Makefile.in (tree-nested.o): Add pointer-set.h dependency.
16868         * tree-nested.c: Include pointer-set.h.
16869         (var_map_elt, var_map_eq, var_map_hash): Delete.
16870         (struct nesting_info): Remove GTY marker.  Change the two htab_t's
16871         to pointer_map_t's.
16872         (nesting_info_bitmap_obstack): New.
16873         (lookup_field_for_decl): Adjust for pointer_map API.
16874         (lookup_tramp_for_decl): Adjust for pointer_map API.
16875         (get_nonlocal_debug_decl): Adjust for pointer_map API.
16876         (get_local_debug_decl): Adjust for pointer_map API.
16877         (convert_nl_goto_reference): Adjust for pointer_map API.
16878         (convert_nl_goto_receiver): Adjust for pointer_map API.
16879         (create_nesting_tree): Create outside GGC space.  Create bitmap on
16880         the new obstack.  Create field_map and var_map as pointer_maps.
16881         (free_nesting_tree): Adjust for changes to create_nesting_tree.
16882         (root): Delete.
16883         (lower_nested_functions): Move root here, no need to NULL it.
16884         Initialize and release the obstack.
16885
16886 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
16887
16888         * tree.c (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p):
16889         Remove prototypes and make them non-static.
16890         (struct tree_int_map): Remove.
16891         * tree.h (struct tree_int_map): Move here, turning TO into an
16892         unsigned int.
16893         (tree_int_map_hash, tree_int_map_eq, tree_int_map_marked_p): Declare.
16894
16895         * tree.h (TREE_COMPLEXITY): Remove.
16896         (struct tree_exp): Remove complexity field.
16897         * tree.c (build1_stat): Don't set it.
16898
16899 2007-02-06  Dorit Nuzman  <dorit@il.ibm.com>
16900             Victor Kaplansky  <victork@il.ibm.com>
16901
16902         * tree-vectorizer.c (vect_is_simple_use): Support induction.
16903         (vect_is_simple_reduction): Support reduction with induction as
16904         one of the operands.
16905         (vect_is_simple_iv_evolution): Fix formatting.
16906         * tree-vect-analyze.c (vect_mark_stmts_to_be_vectorized): Fix
16907         formatting.  Don't mark induction phis for vectorization.
16908         (vect_analyze_scalar_cycles): Analyze all inductions, then reductions.
16909         * tree-vect-transform.c (get_initial_def_for_induction): New function.
16910         (vect_get_vec_def_for_operand): Support induction.
16911         (vect_get_vec_def_for_stmt_copy): Fix formatting and add check for
16912         induction case.
16913         (vectorizable_reduction): Support reduction with induction as one of
16914         the operands.
16915         (vectorizable_type_demotion): Use def-type of stmt argument rather
16916         than dummy def-type.
16917
16918         * tree-ssa-loop.c (gate_scev_const_prop): Return the value of
16919         flag_tree_scev_cprop.
16920         * common.opt (tree-scev-cprop): New flag.
16921
16922         * tree-vect-transform.c (vect_create_destination_var): Use 'kind' in
16923         call to vect_get_new_vect_var.
16924
16925 2007-02-06  Ira Rosen  <irar@il.ibm.com>
16926
16927         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Check that
16928         vectype is not NULL.
16929         (vect_pattern_recog_1): Likewise.
16930
16931 2007-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16932
16933         * fold-const.c (negate_expr_p): Handle CONJ_EXPR.
16934         (fold_negate_expr): Likewise.
16935
16936 2007-02-05  Alexandre Oliva  <aoliva@redhat.com>
16937
16938         PR debug/30189
16939         * dwarf2out.c (modified_type_die): Follow DECL_ORIGINAL_TYPE
16940         even if cv-qualification is the same.
16941
16942 2007-02-05  Geoffrey Keating  <geoffk@apple.com>
16943
16944         * config/rs6000/darwin-tramp.asm (__trampoline_setup): Call
16945         __enable_execute_stack on completion.
16946
16947 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16948
16949         * config/i386/athlon.md (athlon_fldxf_k8, athlon_fld_k8,
16950         athlon_fstxf_k8, athlon_fst_k8, athlon_fist, athlon_fmov,
16951         athlon_fadd_load, athlon_fadd_load_k8, athlon_fadd, athlon_fmul,
16952         athlon_fmul_load, athlon_fmul_load_k8, athlon_fsgn,
16953         athlon_fdiv_load, athlon_fdiv_load_k8, athlon_fdiv_k8,
16954         athlon_fpspc_load, athlon_fpspc, athlon_fcmov_load,
16955         athlon_fcmov_load_k8, athlon_fcmov_k8, athlon_fcomi_load_k8,
16956         athlon_fcomi, athlon_fcom_load_k8, athlon_fcom): Added amdfam10.
16957
16958 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16959
16960         * config/i386/i386.md (x86_sahf_1, cmpfp_i_mixed, cmpfp_i_sse,
16961         cmpfp_i_i387, cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387,
16962         swapsi, swaphi_1, swapqi_1, swapdi_rex64, fix_truncsfdi_sse,
16963         fix_truncdfdi_sse, fix_truncsfsi_sse, fix_truncdfsi_sse,
16964         x86_fldcw_1, floatsisf2_mixed, floatsisf2_sse, floatdisf2_mixed,
16965         floatdisf2_sse, floatsidf2_mixed, floatsidf2_sse,
16966         floatdidf2_mixed, floatdidf2_sse, muldi3_1_rex64, mulsi3_1,
16967         mulsi3_1_zext, mulhi3_1, mulqi3_1, umulqihi3_1, mulqihi3_insn,
16968         umulditi3_insn, umulsidi3_insn, mulditi3_insn, mulsidi3_insn,
16969         umuldi3_highpart_rex64, umulsi3_highpart_insn,
16970         umulsi3_highpart_zext, smuldi3_highpart_rex64,
16971         smulsi3_highpart_insn, smulsi3_highpart_zext, x86_64_shld,
16972         x86_shld_1, x86_64_shrd, sqrtsf2_mixed, sqrtsf2_sse,
16973         sqrtsf2_i387, sqrtdf2_mixed, sqrtdf2_sse, sqrtdf2_i387,
16974         sqrtextendsfdf2_i387, sqrtxf2, sqrtextendsfxf2_i387,
16975         sqrtextenddfxf2_i387): Added amdfam10_decode.
16976
16977         * config/i386/athlon.md (athlon_idirect_amdfam10,
16978         athlon_ivector_amdfam10, athlon_idirect_load_amdfam10,
16979         athlon_ivector_load_amdfam10, athlon_idirect_both_amdfam10,
16980         athlon_ivector_both_amdfam10, athlon_idirect_store_amdfam10,
16981         athlon_ivector_store_amdfam10): New define_insn_reservation.
16982         (athlon_idirect_loadmov, athlon_idirect_movstore): Added
16983         amdfam10.
16984
16985 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16986
16987         * config/i386/athlon.md (athlon_call_amdfam10,
16988         athlon_pop_amdfam10, athlon_lea_amdfam10): New
16989         define_insn_reservation.
16990         (athlon_branch, athlon_push, athlon_leave_k8, athlon_imul_k8,
16991         athlon_imul_k8_DI, athlon_imul_mem_k8, athlon_imul_mem_k8_DI,
16992         athlon_idiv, athlon_idiv_mem, athlon_str): Added amdfam10.
16993
16994 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16995
16996         * config/i386/athlon.md (athlon_sseld_amdfam10,
16997         athlon_mmxld_amdfam10, athlon_ssest_amdfam10,
16998         athlon_mmxssest_short_amdfam10): New define_insn_reservation.
16999
17000 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17001
17002         * config/i386/athlon.md (athlon_sseins_amdfam10): New
17003         define_insn_reservation.
17004         * config/i386/i386.md (sseins): Added sseins to define_attr type
17005         and define_attr unit.
17006         * config/i386/sse.md: Set type attribute to sseins for insertq
17007         and insertqi.
17008
17009 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17010
17011         * config/i386/athlon.md (sselog_load_amdfam10, sselog_amdfam10,
17012         ssecmpvector_load_amdfam10, ssecmpvector_amdfam10,
17013         ssecomi_load_amdfam10, ssecomi_amdfam10,
17014         sseaddvector_load_amdfam10, sseaddvector_amdfam10): New
17015         define_insn_reservation.
17016         (ssecmp_load_k8, ssecmp, sseadd_load_k8, seadd): Added amdfam10.
17017
17018 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17019
17020         * config/i386/athlon.md (cvtss2sd_load_amdfam10,
17021         cvtss2sd_amdfam10, cvtps2pd_load_amdfam10, cvtps2pd_amdfam10,
17022         cvtsi2sd_load_amdfam10, cvtsi2ss_load_amdfam10,
17023         cvtsi2sd_amdfam10, cvtsi2ss_amdfam10, cvtsd2ss_load_amdfam10,
17024         cvtsd2ss_amdfam10, cvtpd2ps_load_amdfam10, cvtpd2ps_amdfam10,
17025         cvtsX2si_load_amdfam10, cvtsX2si_amdfam10): New
17026         define_insn_reservation.
17027
17028         * config/i386/sse.md (cvtsi2ss, cvtsi2ssq, cvtss2si,
17029         cvtss2siq, cvttss2si, cvttss2siq, cvtsi2sd, cvtsi2sdq,
17030         cvtsd2si, cvtsd2siq, cvttsd2si, cvttsd2siq,
17031         cvtpd2dq, cvttpd2dq, cvtsd2ss, cvtss2sd,
17032         cvtpd2ps, cvtps2pd): Added amdfam10_decode attribute.
17033
17034 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17035
17036         * config/i386/athlon.md (athlon_ssedivvector_amdfam10,
17037         athlon_ssedivvector_load_amdfam10, athlon_ssemulvector_amdfam10,
17038         athlon_ssemulvector_load_amdfam10): New define_insn_reservation.
17039         (athlon_ssediv, athlon_ssediv_load_k8, athlon_ssemul,
17040         athlon_ssemul_load_k8): Added amdfam10.
17041
17042 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17043
17044         * config/i386/i386.h (TARGET_SSE_UNALIGNED_MOVE_OPTIMAL): New macro.
17045         (x86_sse_unaligned_move_optimal): New variable.
17046
17047         * config/i386/i386.c (x86_sse_unaligned_move_optimal): Enable for
17048         m_AMDFAM10.
17049         (ix86_expand_vector_move_misalign): Add code to generate movupd/movups
17050         for unaligned vector SSE double/single precision loads for AMDFAM10.
17051
17052 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17053
17054         * config/i386/i386.h (TARGET_AMDFAM10): New macro.
17055         (TARGET_CPU_CPP_BUILTINS): Add code for amdfam10.
17056         Define TARGET_CPU_DEFAULT_amdfam10.
17057         (TARGET_CPU_DEFAULT_NAMES): Add amdfam10.
17058         (processor_type): Add PROCESSOR_AMDFAM10.
17059
17060         * config/i386/i386.md: Add amdfam10 as a new cpu attribute to match
17061         processor_type in config/i386/i386.h.
17062         Enable imul peepholes for TARGET_AMDFAM10.
17063
17064         * config.gcc: Add support for --with-cpu option for amdfam10.
17065
17066         * config/i386/i386.c (amdfam10_cost): New variable.
17067         (m_AMDFAM10): New macro.
17068         (m_ATHLON_K8_AMDFAM10): New macro.
17069         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
17070         x86_cmove, x86_3dnow_a, x86_deep_branch, x86_use_simode_fiop,
17071         x86_promote_QImode, x86_integer_DFmode_moves,
17072         x86_partial_reg_dependency, x86_memory_mismatch_stall,
17073         x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
17074         x86_sse_partial_reg_dependency, x86_sse_typeless_stores,
17075         x86_use_ffreep, x86_use_incdec, x86_four_jump_limit,
17076         x86_schedule, x86_use_bt, x86_cmpxchg16b, x86_pad_returns):
17077         Enable/disable for amdfam10.
17078         (override_options): Add amdfam10_cost to processor_target_table.
17079         Set up PROCESSOR_AMDFAM10 for amdfam10 entry in
17080         processor_alias_table.
17081         (ix86_issue_rate): Add PROCESSOR_AMDFAM10.
17082         (ix86_adjust_cost): Add code for amdfam10.
17083
17084 2007-02-05  Harsha Jagasia  <harsha.jagasia@amd.com>
17085
17086         * config/i386/i386.opt: Add new Advanced Bit Manipulation (-mabm)
17087         instruction set feature flag. Add new (-mpopcnt) flag for popcnt
17088         instruction. Add new SSE4A (-msse4a) instruction set feature flag.
17089         * config/i386/i386.h: Add builtin definition for SSE4A.
17090         * config/i386/i386.md: Add support for ABM instructions
17091         (popcnt and lzcnt).
17092         * config/i386/sse.md: Add support for SSE4A instructions
17093         (movntss, movntsd, extrq, insertq).
17094         * config/i386/i386.c: Add support for ABM and SSE4A builtins.
17095         Add -march=amdfam10 flag.
17096         * config/i386/ammintrin.h: Add support for SSE4A intrinsics.
17097         * doc/invoke.texi: Add documentation on flags for sse4a, abm, popcnt
17098         and amdfam10.
17099         * doc/extend.texi: Add documentation for SSE4A builtins.
17100
17101 2007-02-05  Bob Wilson  <bob.wilson@acm.org>
17102
17103         * config/xtensa/xtensa.c (constantpool_mem_p): Skip over SUBREGs.
17104
17105 2007-02-05  Richard Guenther  <rguenther@suse.de>
17106
17107         * tree-vectorizer.h (vectorizable_function): Add argument type
17108         argument, change return type.
17109         * tree-vect-patterns.c (vect_recog_pow_pattern): Adjust caller.
17110         * tree-vect-transform.c (vectorizable_function): Handle extra
17111         argument, return vectorized function decl.
17112         (build_vectorized_function_call): Remove.
17113         (vectorizable_call): Handle calls with result and argument types
17114         differing.  Handle loop vectorization factor correctly.
17115         * targhooks.c (default_builtin_vectorized_function): Adjust for
17116         extra argument.
17117         * targhooks.h (default_builtin_vectorized_function): Likewise.
17118         * target.h (builtin_vectorized_function): Add argument type
17119         argument.
17120         * config/i386/i386.c (ix86_builtin_vectorized_function): Handle
17121         extra argument, allow vectorizing of lrintf.
17122         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Adjust
17123         documentation of target hook.
17124
17125 2007-02-05  Hans-Peter Nilsson  <hp@axis.com>
17126
17127         PR target/30665
17128         * config/cris/cris.md ("*andsi_movu", "*andsi_clear", "*andhi_movu")
17129         ("*andhi_clear", andu (casesi+45)): For size-changed operand where
17130         memory is allowed, require !side_effects_p, not just !MEM_VOLATILE_P.
17131
17132 2007-02-05  Roger Sayle  <roger@eyesopen.com>
17133
17134         * fold-const.c (fold_unary) <REAL_PART>: Test for availability of
17135         BUILT_IN_COS before simplifying REAL_PART(CEXPI)) to COS.
17136         <IMAG_PART>: Likewise, check for availability of BUILT_IN_SIN.
17137         * builtins.c (fold_builtin_sincos): Check for TARGET_C99_FUNCTIONS
17138         before canonicalizing sincos to cexpi.
17139         (fold_builtin_cexp): Likewise, for canonicalizing cexp to cexpi.
17140
17141 2007-02-05  Roger Sayle  <roger@eyesopen.com>
17142
17143         * config/alpha/alpha.c (alpha_add_builtins): New Helper function.
17144         Set TREE_READONLY and TREE_NOTHROW directly, not via attributes.
17145         (alpha_init_builtins): Use alpha_add_builtins to process tables.
17146
17147 2007-02-05  Roger Sayle  <roger@eyesopen.com>
17148
17149         * mips-tfile.c (initialize_init_file): Correct endianness test.
17150
17151 2007-02-05  Kazu Hirata  <kazu@codesourcery.com>
17152
17153         * config/m68k/m68k.md (pushdi-1, pushdi, movsi+1): Don't use
17154         the 'y' constraint.
17155
17156 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
17157
17158         * dwarf2out.c (dwarf2out_frame_debug_expr): Record the register
17159         saves in a PARALLEL before the register assignments.
17160
17161 2007-02-05  Richard Sandiford  <richard@codesourcery.com>
17162
17163         * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Do not require
17164         DWARF_FRAME_RETURN_COLUMN to be a general register.
17165         * dwarf2out.c (init_return_column_size): New function, split from...
17166         (expand_builtin_init_dwarf_reg_sizes): ...here.  Allow both
17167         DWARF_FRAME_RETURN_COLUMN and DWARF_ALT_FRAME_RETURN_COLUMN
17168         to be nongeneral registers.
17169         * config/m68k/m68k.h (DWARF_FRAME_REGNUM): Only map FP and
17170         integer registers.
17171         (DWARF_FRAME_REGISTERS, DWARF_FRAME_RETURN_COLUMN): Define.
17172         (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
17173
17174 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
17175
17176         * cfgcleanup.c (try_optimize_cfg): Avoid removing ENTRY_BLOCK_PTR.
17177
17178 2007-02-04  Zdenek Dvorak <dvorakz@suse.cz>
17179
17180         * cfgloopmanip.c (loop_delete_branch_edge): Removed.
17181         (remove_path): Use can_remove_branch_p and remove_branch instead
17182         of loop_delete_branch_edge.
17183         * tree-ssa-loop-manip.c (scale_dominated_blocks_in_loop): New function.
17184         (tree_transform_and_unroll_loop): Remove dead branches immediately.
17185         Update profile using scale_dominated_blocks_in_loop.
17186         * cfghooks.c (can_remove_branch_p, remove_branch): New functions.
17187         * cfghooks.h (struct cfg_hooks): Add can_remove_branch_p.
17188         (can_remove_branch_p, remove_branch): Declare.
17189         * tree-cfg.c (tree_can_remove_branch_p): New function.
17190         (tree_cfg_hooks): Add tree_can_remove_branch_p.
17191         * cfgrtl.c (rtl_can_remove_branch_p): New function.
17192         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add rtl_can_remove_branch_p.
17193
17194 2007-02-05  Jan Hubicka  <jh@suse.cz>
17195
17196         PR middle-end/30696
17197         * ipa-inline.c (cgraph_clone_inlined_nodes): When there are unanalyzed
17198         nodes in cgraph, don't remove offline copy of the function.
17199
17200 2007-02-04  Jan Hubicka  <jh@suse.cz>
17201
17202         * tree-sra.c (sra_walk_expr): Add linebreaks. BITFIELD_REFs into
17203         vectors might cause maybe_lookup_element_for_expr to be called
17204         on non-sra-candidate.
17205
17206 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
17207
17208         * config/bfin/bfin-modes.def, config/bfin/bfin.c,
17209         config/bfin/bfin.md, config/bfin/predicates.md: Follow
17210         spelling conventions.
17211
17212 2007-02-04  Richard Guenther  <rguenther@suse.de>
17213
17214         PR middle-end/30636
17215         * fold-const.c (try_move_mult_to_index): Make sure to not
17216         overflow one dimension of a multi-dimensional array access.
17217
17218 2007-02-04  Jan Hubicka  <jh@suse.cz>
17219
17220         * passes.c (init_optimization_passes): Reindent.
17221
17222 2007-02-04  Jan Hubicka  <jh@suse.cz>
17223             Eric Botcazou  <ebotcazou@adacore.com>
17224
17225         * tree-optimize.c (has_abnormal_outgoing_edge_p): Move to...
17226         (execute_fixup_cfg): Break out the abnormal goto code.
17227         * tree-inline.c (has_abnormal_outgoing_edge_p): ...here.
17228         (make_nonlocal_label_edges): Move here from execute_fixup_cfg.
17229         (optimize_inline_calls): Call make_nonlocal_label_edges.
17230
17231 2007-02-04  Jan Hubicka  <jh@suse.cz>
17232
17233         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Return
17234         true when something was changed.
17235         (rename_ssa_copies): When something was changed, do
17236         TODO_remove_unused_locals.
17237         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
17238         add TODO_remove_unused_locals when instruction was removed.
17239
17240 2007-02-04  Jan Hubicka  <jh@suse.cz>
17241
17242         * ipa-inline.c (try_inline): Improve debug output; work on already
17243         inline edges too.
17244         (cgraph_decide_inlining_incrementally): Indent; improve debug output;
17245         call try_inline for already inlined edges too when flattening;
17246         inline also functions that make callee growth but overall unit size
17247         reduce.
17248
17249 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
17250
17251         * config/m32c/bitops.md, config/m32c/jump.md,
17252         config/m32c/m32c.c, config/m32c/m32c.h, config/m32r/m32r.c,
17253         config/m32r/m32r.h, config/m32r/m32r.md,
17254         config/m32r/predicates.md, config/m68hc11/larith.asm,
17255         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
17256         config/m68k/m68k.h, config/mcore/mcore.md, config/mips/4k.md,
17257         config/mips/mips-protos.h, config/mips/mips.c,
17258         config/mips/mips.h, config/mips/mips.md, config/mips/mips16.S,
17259         config/mn10300/mn10300.h, config/mn10300/predicates.md,
17260         config/mt/mt.c, config/mt/mt.h, config/mt/mt.md: Follow
17261         spelling conventions.
17262
17263         * config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
17264         Follow spelling conventions.
17265
17266 2007-02-03  Douglas Gregor  <doug.gregor@gmail.com>
17267
17268         * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't
17269         warn about C++0x compatibility.
17270
17271 2007-02-04  Kazu Hirata  <kazu@codesourcery.com>
17272
17273         * config/h8300/h8300.c, config/h8300/h8300.h,
17274         config/h8300/h8300.md: Follow spelling conventions.
17275
17276 2007-02-03  Uros Bizjak  <ubizjak@gmail.com>
17277
17278         PR middle-end/30667
17279         * combine.c (try_combine): Do not substitute source operand
17280         with constants wider than 2 * HOST_BITS_PER_WIDE_INT.
17281
17282 2007-02-03  Jan Hubicka  <jh@suse.cz>
17283
17284         PR gcov-profile/30650
17285         * value-prof.c (stringop_block_profile): Fix handling of size counter;
17286         do not divide by zero for never executed counters.
17287         (tree_find_values_to_profile): Fix counters.
17288         * gcov-ui.h (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): Fix comments.
17289
17290 2007-02-03  Ian Lance Taylor  <iant@google.com>
17291
17292         * lower-subreg.c (simple_move_operand): New static function,
17293         broken out of simple_move.  Reject LABEL_REF, SYMBOL_REF, and HIGH
17294         operands.
17295         (simple_move): Call simple_move_operand.
17296         (find_decomposable_subregs): Add special handling of MEMs.
17297         (can_decompose_p): Rename from cannot_decompose_p.  Reverse
17298         meaning of return value.  If we see a hard register, test whether
17299         it can store a word_mode value.  Change all callers.
17300
17301 2007-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17302
17303         * pa.md (addvdi3, addvsi3, subvdi3, subvsi3, negvdi2, negvsi2): New
17304         ftrapv insns and expanders.
17305         (subdi3): Change define_expand operand 1 to arith11_operand, and
17306         operand 2 to reg_or_0_operand.  Change constraints of 64-bit insn
17307         pattern to handle reg_or_0 operands.  Revise 32-bit insn pattern to
17308         handle 11-bit constants and reg_or_0 operands in operands 1 and 2,
17309         respectively.
17310
17311         PR middle-end/30174
17312         * varasm.c (notice_global_symbol): Treat global objects as weak when
17313         flag_shlib is true.
17314
17315 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17316
17317         * emit-rtl.c (dconstpi): Delete.
17318         (dconstsqrt2): New.
17319         (init_emit_once): Delete dconstpi and init dconstsqrt2.
17320         * real.h (dconstpi): Delete.
17321         (dconstsqrt2): New.
17322         * builtins.c (fold_builtin_cabs): Use dconstsqrt2.
17323         (fold_builtin_hypot): Likewise.
17324
17325 2007-02-03  Tom Tromey  <tromey@redhat.com>
17326
17327         PR driver/30246
17328         * gcc.c (cpp_unique_options): Any of -ggdb3, -gstabs3,
17329         -gcoff3, -gxcoff3, -gvms3 implies -dD.
17330
17331 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
17332
17333         * c-decl.c, config/avr/avr.c, config/avr/avr.h,
17334         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
17335         config/mn10300/mn10300.c, config/pdp11/pdp11.h,
17336         config/rs6000/cell.md, config/rs6000/darwin.h,
17337         config/sh/sh.md, config/sh/sh4-300.md, config/spu/spu.c,
17338         config/spu/spu.md, cselib.c, expr.c, haifa-sched.c, hwint.h,
17339         jump.c, reload.c, sched-deps.c, sched-int.h, tree-inline.c,
17340         tree-profile.c, tree-ssa-live.h, tree-vrp.c: Fix comment
17341         typos.  Follow spelling conventions.
17342         * doc/invoke.texi: Follow spelling conventions.
17343
17344 2007-02-03  Roger Sayle  <roger@eyesopen.com>
17345
17346         * simplify-rtx.c (simplify_relational_operation_1): Implement some
17347         canonicalization transformations that attempt to simplify integer
17348         constant comparisons to become comparisons against zero.
17349
17350 2007-02-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17351
17352         * builtins.c (fold_builtin_cabs): Fold cabs(x+xi) into
17353         fabs(x)*sqrt(2).
17354         * fold-const.c (fold_binary): Fix comment typos.  Fold complex
17355         (x,0)-(0,y) into (x,-y).  Likewise (0,y)-(x,0) into (-x,y).
17356
17357 2007-02-02  Mike Stump  <mrs@apple.com>
17358
17359         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Add.
17360         * config/rs6000/rs6000.c (DARWIN_GENERATE_ISLANDS): Add.
17361         (output_call): Use DARWIN_GENERATE_ISLANDS to decide when to
17362         generate a branch island.
17363
17364 2007-02-02  Bob Wilson  <bob.wilson@acm.org>
17365
17366         * config/xtensa/xtensa.c (smalloffset_mem_p): Use BASE_REG_P.
17367         (xtensa_legitimate_address_p): New.
17368         (xtensa_legitimize_address): New.
17369         (xtensa_output_addr_const_extra): New.
17370         * config/xtensa/xtensa.h (REG_OK_STRICT_FLAG): Define.
17371         (BASE_REG_P): New.
17372         (REG_OK_FOR_BASE_P): Use BASE_REG_P.
17373         (GO_IF_LEGITIMATE_ADDRESS): Move code to xtensa_legitimate_address_p.
17374         (LEGITIMIZE_ADDRESS): Move code to xtensa_legitimize_address.
17375         (OUTPUT_ADDR_CONST_EXTRA): Move code to xtensa_output_addr_const_extra.
17376         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): New.
17377         (xtensa_legitimize_address): New.
17378         (xtensa_output_addr_const_extra): New.
17379
17380 2007-02-02  Steve Ellcey  <sje@cup.hp.com>
17381
17382         * config/ia64/ia64.c (ia64_print_operand): Fix compare strings.
17383
17384 2007-02-02  Ian Lance Taylor  <iant@google.com>
17385
17386         * expmed.c (expand_divmod): Add comment.
17387
17388 2007-02-02  Kazu Hirata  <kazu@codesourcery.com>
17389
17390         * emit-rtl.c (renumber_insns): Remove.
17391         * flags.h: Remove the extern for flag_renumber_insns.
17392         * rtl.h: Remove the prototype for renumber_insns.
17393         * toplev.c (flag_renumber_insns): Remove.
17394
17395 2007-02-02  Hui-May Chang  <hm.chang@apple.com>
17396
17397         Revert for x86 darwin:
17398         2005-06-19  Uros Bizjak  <uros@kss-loka.si>
17399
17400         * config/i386/i386.c (ix86_function_arg_regno_p): Put back the
17401         code before the following patch under TARGET_MACHO.
17402         (ix86_function_value_regno_p): Likewise.
17403
17404 2007-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17405
17406         * fold-const.c (negate_expr_p, fold_negate_expr): Handle
17407         COMPLEX_EXPR.
17408
17409 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
17410
17411         PR target/29682
17412         * config/ia64/ia64.c (ia64_speculate_insn): Restrict to memory
17413         loads to general or fp registers.  Add comments.
17414         * config/ia64/ia64.md (reg_pred_prefix): Add comment.
17415
17416 2007-02-02  Paolo Bonzini  <bonzini@gnu.org>
17417
17418         * pointer-set.c (insert_aux): Only return insertion slot.
17419         (pointer_set_insert): Adjust.
17420         (pointer_set_traverse, struct pointer_map_t, pointer_map_create,
17421         pointer_map_destroy, pointer_map_insert, pointer_map_contains,
17422         pointer_map_traverse): New.
17423         * pointer-set.h (pointer_set_traverse, struct pointer_map_t,
17424         pointer_map_create,  pointer_map_destroy, pointer_map_insert,
17425         pointer_map_contains, pointer_map_traverse): Declare.
17426
17427 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
17428
17429         PR middle-end/30473
17430         * builtins.c (fold_builtin_sprintf): Do not attempt to optimize
17431         sprintf (str, "%s").  Do not optimize sprintf (str, "nopercent", p++).
17432
17433 2007-02-02  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
17434
17435         * sched-int.h (ds_to_dk, dk_to_ds): Declare functions.
17436
17437         (struct _dep): New type.
17438         (dep_t): New typedef.
17439         (DEP_PRO, DEP_CON, DEP_KIND): New access macros.
17440         (DEP_STATUS): New access macro.  The macro with the same name was
17441         renamed to DEP_LINK_STATUS.
17442         (dep_init): Declare function
17443
17444         (struct _dep_link): New type.
17445         (dep_link_t): New typedef.
17446         (DEP_LINK_NODE, DEP_LINK_NEXT, DEP_LINK_PREV_NEXTP): New access macros.
17447         (DEP_LINK_DEP, DEP_LINK_PRO, DEP_LINK_CON, DEP_LINK_KIND): New macros.
17448         (DEP_LINK_STATUS): New macro.
17449         (debug_dep_links): New debug function.
17450
17451         (struct _deps_list): New type.
17452         (deps_list_t): New typedef.
17453         (DEPS_LIST_FIRST): New access macro.
17454         (FOR_EACH_DEP_LINK): New cycle macro.
17455         (create_deps_list, free_deps_list, delete_deps_list): Declare
17456         functions.
17457         (deps_list_empty_p, debug_deps_list, add_back_dep_to_deps_list): Ditto.
17458         (find_link_by_pro_in_deps_list, find_link_by_con_in_deps_list): Ditto.
17459         (copy_deps_list_change_con): Ditto.
17460
17461         (move_dep_link): Declare function.
17462
17463         (struct _dep_node): New type.
17464         (dep_node_t): New typedef.
17465         (DEP_NODE_BACK, DEP_NODE_DEP, DEP_NODE_FORW): New access macros.
17466
17467         (struct haifa_insn_data.back_deps): New field to hold backward
17468         dependencies of the insn.
17469         (struct haifa_insn_data.depend): Rename to forw_deps.  Change its type
17470         to deps_list_t.
17471         (struct haifa_insn_data.resolved_deps): Rename to resolved_back_deps.
17472         Change its type to deps_list_t.
17473         (INSN_BACK_DEPS): New access macro to use instead of LOG_LINKS.
17474         (INSN_DEPEND): Rename to INSN_FORW_DEPS.
17475         (RESOLVED_DEPS): Rename to INSN_RESOLVED_BACK_DEPS.
17476
17477         (INSN_COST): Move to haifa-sched.c.  Use insn_cost () instead.
17478
17479         (DEP_STATUS): Rename to DEP_LINK_STATUS.  Fix typo in the comment.
17480
17481         (add_forw_dep, delete_back_forw_dep, insn_cost): Update declaration
17482         and all callers.
17483         (dep_cost): Declare.
17484
17485         * sched-deps.c (CHECK): New macro to (en/dis)able sanity checks.
17486         (ds_to_dk, dk_to_ds): New functions.
17487
17488         (init_dep_1): New static function.
17489         (init_dep): New function.
17490         (copy_dep): New static function.
17491
17492         (dep_link_consistent_p, attach_dep_link, add_to_deps_list): New static
17493         functions.
17494         (detach_dep_link): New static function.
17495         (move_dep_link): New function.
17496
17497         (dep_links_consistent_p, dump_dep_links): New static functions.
17498         (debug_dep_links): New debugging function.
17499
17500         (deps_obstack, dl_obstack, dn_obstack): New static variables.
17501
17502         (alloc_deps_list, init_deps_list): New static functions.
17503         (create_deps_list): New function.
17504         (clear_deps_list): New static function.
17505         (free_deps_list, delete_deps_list, deps_list_empty_p): New functions.
17506         (deps_list_consistent_p, dump_deps_list): New static functions.
17507         (debug_deps_list): New function.
17508         (add_back_dep_to_deps_list, find_link_by_pro_in_deps_list): New
17509         functions.
17510         (find_link_by_con_in_deps_list, copy_deps_list_change_con): Ditto.
17511
17512         (maybe_add_or_update_back_dep_1, add_or_update_back_dep_1): Update to
17513         use new scheduler dependencies lists.
17514         (add_back_dep, delete_all_dependences, fixup_sched_groups): Ditto.
17515         (sched_analyze): Ditto.  Initialize dependencies lists.
17516         (add_forw_dep, compute_forward_dependences): Update to use new
17517         scheduler dependencies lists.
17518
17519         (init_dependency_caches): Init deps_obstack.
17520         (free_dependency_caches): Free deps_obstack.
17521
17522         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep): Update to use
17523         new scheduler dependencies lists.
17524         (delete_forw_dep, add_or_update_back_forw_dep): Ditto.
17525         (add_back_forw_dep, delete_back_forw_dep): Ditto.
17526
17527         * sched-rgn.c (set_spec_fed, find_conditional_protection, is_pfree):
17528         Update to use new scheduler dependencies lists.
17529         (is_conditionally_protected, is_prisky, add_branch_dependences): Ditto.
17530         (debug_dependencies): Ditto.
17531         (schedule_region): Update comments.
17532
17533         * sched-ebb.c (earliest_block_with_similiar_load): Update to use new
17534         scheduler dependencies lists.
17535         (schedule_ebb): Update comments.
17536
17537         * rtl.def (DEPS_LIST): Remove.
17538
17539         * lists.c (unused_deps_list): Remove.
17540         (free_list): Update assertions.
17541
17542         (alloc_DEPS_LIST, free_DEPS_LIST_list, free_DEPS_LIST_node): Remove.
17543         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
17544
17545         * rtl.h (free_DEPS_LIST_list, alloc_DEPS_LIST): Remove declarations.
17546         (remove_free_DEPS_LIST_elem, copy_DEPS_LIST_list): Ditto.
17547
17548         * haifa-sched.c (comments): Update.
17549         (insn_cost1): Remove.  Inline the code into insn_cost ().
17550         (insn_cost): Update to use new scheduler dependencies lists.  Move
17551         processing of the dependency cost to dep_cost ().
17552         (dep_cost): New function.  Use it instead of insn_cost () when
17553         evaluating cost of the dependency.  Use compatible interface to
17554         interact with the target.
17555         (priority): Update to use new scheduler dependencies lists.
17556         (rank_for_schedule): Ditto.  Optimize heuristic that prefers the insn
17557         with greater number of insns that depend on the insn.
17558         (schedule_insn): Update to use new scheduler dependencies lists.  Add
17559         code to free backward dependencies lists.  Inline and optimize code
17560         from resolve_dep () - see PR28071.
17561         (ok_for_early_queue_removal): Update to use new scheduler dependencies
17562         lists.  Update call to targetm.sched.is_costly_dependence hook.
17563
17564         (fix_inter_tick, try_ready, fix_tick_ready): Update to use new
17565         scheduler dependencies lists.
17566
17567         (resolve_dep): Remove.  Move the logic to schedule_insn ().
17568         (init_h_i_d): Initialize dependencies lists.
17569
17570         (process_insn_depend_be_in_spec): Rename to
17571         process_insn_forw_deps_be_in_spec.  Update to use new scheduler
17572         dependencies lists.
17573         (add_to_speculative_block, create_check_block_twin, fix_recovery_deps):
17574         Update to use new scheduler dependencies lists.
17575         (clear_priorities, calc_priorities, add_jump_dependencies): Ditto.
17576
17577         * ddg.c (create_ddg_dependence, create_ddg_dep_no_link): Update to use
17578         new scheduler dependencies lists.
17579         (build_intra_loop_deps): Ditto.
17580
17581         * target.h (struct _dep): Declare to use in
17582         gcc_target.sched.is_costly_dependence.
17583         (struct gcc_target.sched.adjust_cost): Fix typo.
17584         (struct gcc_target.sched.is_costly_dependence): Change signature to
17585         use single dep_t parameter instead of an equivalent triad.
17586         (struct gcc_target.sched.adjust_cost_2): Remove.
17587
17588         * target-def.h (TARGET_SCHED_ADJUST_COST_2): Remove.
17589
17590         * reg-notes.def (DEP_TRUE, DEP_OUTPUT, DEP_ANTI): Update comments.
17591
17592         * doc/tm.texi (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Update
17593         documentation.
17594         (TARGET_SCHED_ADJUST_COST_2): Remove documentation.
17595
17596         * doc/rtl.texi (LOG_LINKS): Remove part about instruction scheduler.
17597         (REG_DEP_TRUE): Document.
17598
17599         * config/ia64/ia64.c (ia64_adjust_cost_2): Rename to ia64_adjust_cost.
17600         Change signature to correspond to the targetm.sched.adjust_cost hook.
17601         Update use in TARGET_SCHED_ADJUST_COST_2.
17602         (TARGET_SCHED_ADJUST_COST_2): Rename to TARGET_SCHED_ADJUST_COST.
17603         (ia64_dependencies_evaluation_hook, ia64_dfa_new_cycle): Update to use
17604         new scheduler dependencies lists.
17605         (ia64_gen_check): Ditto.
17606
17607         * config/mips/mips.c (vr4130_swap_insns_p): Update to use new
17608         scheduler dependencies lists.
17609
17610         * config/rs6000/rs6000.c (rs6000_is_costly_dependence): Change
17611         signature to correspond to the targetm.sched.is_costly_dependence hook.
17612         (is_costly_group): Update to use new scheduler dependencies lists.
17613
17614         * config/spu/spu.c (spu_sched_adjust_cost): Use insn_cost () function
17615         instead of INSN_COST () macro.
17616
17617 2007-02-01  Ian Lance Taylor  <iant@google.com>
17618
17619         * lower-subreg.c (resolve_clobber): Handle a subreg of a concatn.
17620
17621 2007-02-01  Guy Martin  <gmsoft@gentoo.org>
17622
17623         * pa.md (tp_load): Correct mfctl instruction syntax.
17624
17625 2007-02-01  Geoffrey Keating  <geoffk@apple.com>
17626
17627         * config/rs6000/rs6000.c (rs6000_stack_info): Correct
17628         altivec_padding_size calculation on AIX.  Improve comment, add
17629         assert to verify that it's right.
17630
17631         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Don't define for
17632         64-bit.
17633
17634 2007-2-01  Seongbae Park  <seongbae.park@gmail.com>
17635
17636         PR inline-asm/28686
17637         * global.c (global_alloc): Add mising initialization of
17638         ELIMINABLE_REGSET.
17639
17640 2007-02-01  Roger Sayle  <roger@eyesopen.com>
17641
17642         * alias.c (init_alias_analysis): Correct whitespace.
17643         * bb-reorder.c (fix_edges_for_rarely_executed_code,
17644         partition_hot_cold_basic_blocks): Likewise.
17645         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
17646         expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
17647         maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
17648         fold_builtin_snprintf_chk, fold_builtin_printf,
17649         fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
17650         do_mpfr_arg3, do_mpfr_sincos): Likewise.
17651         * cfgcleanup.c (cleanup_cfg): Likewise.
17652         * cfgexpand.c (tree_expand_cfg): Likewise.
17653         * fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
17654         * function.c (get_next_funcdef_no): Likewise.
17655         * gengtype.c (main): Likewise.
17656         * genmodes.c (main): Likewise.
17657         * gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
17658         * haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
17659         * ifcvt.c (noce_emit_move_insn): Likewise.
17660         * modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
17661         Likewise.
17662         * stor-layout.c (get_best_mode): Likewise.
17663         * tree-ssa-loop-niter.c (get_val_for): Likewise.
17664         * tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
17665         scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
17666         perform_var_substitution, solve_graph): Likewise.
17667         * tree-vrp.c (vrp_finalize): Likewise.
17668
17669 2007-02-01  Ian Lance Taylor  <iant@google.com>
17670
17671         * lower-subreg.c (simplify_gen_subreg_concatn): If we ask for the
17672         high part of a paradoxical subreg, return a constant zero.
17673
17674 2007-02-01  Zdenek Dvorak <dvorakz@suse.cz>
17675
17676         * toplev.c (lang_dependent_init): Call init_set_costs.
17677         * loop-init.c (loop_optimizer_init): Do not call init_set_costs.
17678
17679 2007-02-01  Richard Guenther  <rguenther@suse.de>
17680
17681         PR middle-end/30656
17682         * fold-const.c (fold_negate_expr): Allow negating a
17683         constant if overflow does not change.
17684
17685 2007-02-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17686
17687         * doc/c-tree.texi (Expression trees): Improve markup.
17688         * doc/tm.texi (Register Classes, Addressing Modes)
17689         (Floating Point): Fix spacing after abbreviations.  Fix some
17690         typos.
17691
17692 2007-02-01  Ben Elliston  <bje@au.ibm.com>
17693
17694         * doc/invoke.texi: Replace "bugfix" with "bug fix" throughout.
17695         * doc/contrib.texi: Likewise.
17696         * doc/install.texi: Likewise.
17697
17698 2007-01-31  Richard Henderson  <rth@redhat.com>
17699             Ian Lance Taylor  <iant@google.com>
17700
17701         * lower-subreg.c: New file.
17702         * rtl.def (CONCATN): Define.
17703         * passes.c (init_optimization_passes): Add pass_lower_subreg and
17704         pass_lower_subreg2.
17705         * emit-rtl.c (update_reg_offset): New static function, broken out
17706         of gen_rtx_REG_offset.
17707         (gen_rtx_REG_offset): Call update_reg_offset.
17708         (gen_reg_rtx_offset): New function.
17709         * regclass.c: Revert patch of 2006-03-05, restoring
17710         reg_scan_update.
17711         (clear_reg_info_regno): New function.
17712         * dwarf2out.c (concatn_loc_descriptor): New static function.
17713         (loc_descriptor): Handle CONCATN.
17714         * common.opt (fsplit_wide_types): New option.
17715         * opts.c (decode_options): Set flag_split_wide_types when
17716         optimizing.
17717         * timevar.def (TV_LOWER_SUBREG): Define.
17718         * rtl.h (gen_reg_rtx_offset): Declare.
17719         (reg_scan_update): Declare.
17720         * regs.h (clear_reg_info_regno): Declare.
17721         * tree-pass.h (pass_lower_subreg): Declare.
17722         (pass_lower_subreg2): Declare.
17723         * doc/invoke.texi (Option Summary): List -fno-split-wide-types.
17724         (Optimize Options): Add -fsplit-wide-types to -O1 list.  Document
17725         -fsplit-wide-types.
17726         * doc/rtl.texi (Regs and Memory): Document concat and concatn.
17727         * Makefile.in (OBJS-common): Add lower-subreg.o.
17728         (lower-subreg.o): New target.
17729
17730 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
17731
17732         * config/sh/sh.h (HAVE_SECONDARY_RELOADS): Remove.
17733
17734 2007-01-31  Anatoly Sokolov <aesok@post.ru>
17735
17736         PR target/19087
17737         * config/avr/avr.c (DWARF2_ADDR_SIZE): Define.
17738
17739 2007-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17740
17741         PR middle-end/29335
17742         * builtins.c (fold_builtin_sqrt): Use MPFR for constant args.
17743
17744 2007-01-31  Zdenek Dvorak <dvorakz@suse.cz>
17745
17746         * cfgloop.h: Include vec-prim.h.
17747         (enum li_flags): Remove LI_ONLY_OLD.
17748         (loop_iterator): Changed.
17749         (fel_next, fel_init): Iterate over loop tree.
17750         (FOR_EACH_LOOP_BREAK): New macro.
17751         * loop-unswitch.c (unswitch_loops): Do not pass LI_ONLY_OLD to
17752         FOR_EACH_LOOP.
17753         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Ditto.
17754         * modulo-sched.c (sms_schedule): Ditto.
17755         * tree-vectorizer.c (vectorize_loops): Ditto.
17756         * doc/loop.texi: Update information on loop numbering and behavior of
17757         FOR_EACH_LOOP wrto new loops.
17758         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
17759         add_to_evolution_1): Test nestedness of loops instead of comparing
17760         their numbers.
17761         * tree-chrec.c (chrec_fold_plus_poly_poly,
17762         chrec_fold_multiply_poly_poly, chrec_evaluate,
17763         hide_evolution_in_other_loops_than_loop, chrec_component_in_loop_num,
17764         reset_evolution_in_loop): Ditto.
17765         * Makefile.in (CFGLOOP_H): Add vecprim.h dependency.
17766
17767 2007-01-31  Dirk Mueller  <dmueller@suse.de>
17768
17769         * c-common.c (warn_about_parentheses): Separate warning about
17770         un-parenthized sequence of comparison operators from the one
17771         which is supposed to warn about x <= y <= z.
17772
17773 2007-01-31  Uros Bizjak  <ubizjak@gmail.com>
17774
17775         * optabs.h (enum optab_index): Add new OTI_isinf.
17776         (isinf_optab): Define corresponding macro.
17777         * optabs.c (init_optabs): Initialize isinf_optab.
17778         * genopinit.c (optabs): Implement isinf_optab using isinf?f2
17779         patterns.
17780         * builtins.c (mathfn_built_in): Handle BUILT_IN_ISINF{,F,L}.
17781         (expand_builtin_interclass_mathfn): Expand BUILT_IN_ISINF{,F,L}
17782         using isinf_optab.
17783         (expand_builtin): Expand BUILT_IN_ISINF{,F,L} using
17784         expand_builtin_interclass_mathfn.
17785         * reg_stack.c (subst_stack_regs_pat): Handle UNSPEC_FXAM.
17786         * config/i386/i386.md (UNSPEC_FXAM): New constant.
17787         (fxam<mode>2_i387): New insn pattern.
17788         (isinf<mode>2) New expander to implement isinf, isinff and isinfl
17789         built-in functions as x87 inline asm.
17790
17791 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
17792
17793         * config/arm/unwind-arm.h (_sleb128_t, _uleb128_t): New.
17794
17795 2007-01-30  Eric Christopher  <echristo@apple.com>
17796
17797         * config.gcc: Add geode.
17798
17799 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
17800
17801         * cgraphunit.c, config/arm/arm.c, config/m68k/m68k.c,
17802         ipa-inline.c, tree-profile.c, tree-ssa-live.c,
17803         tree-ssa-math-opts.c, tree-ssanames.c, tree-vect-analyze.c,
17804         value-prof.c: Fix comment typos.
17805
17806 2007-01-30  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17807
17808         PR c++/24745
17809         * doc/invoke.texi (Wpointer-arith): Document warning.
17810
17811 2007-01-30  Janis Johnson  <janis187@us.ibm.com>
17812
17813         * doc/extend.texi (Decimal Floating Types): Remove decfloat.h from
17814         the list of discrepancies from the draft TR.
17815
17816 2007-01-30  Dirk Mueller  <dmueller@suse.de>
17817
17818         PR c++/30601
17819         * doc/invoke.texi (-Wreturn-type): Update description to
17820         match new behavior.
17821
17822 2007-01-30  Richard Sandiford  <richard@codesourcery.com>
17823
17824         * cfgrtl.c (try_redirect_by_replacing_jump): Check only_sets_cc0_p.
17825
17826 2007-01-30  Uros Bizjak  <ubizjak@gmail.com>
17827
17828         * builtins.c (expand_builtin_int_interclass_roundingfn): New function
17829         to handle optabs that operate on floating point input argument and
17830         output to integer output.
17831         (expand_builtin_mathfn) [BUILT_IN_ILOGB]: Move from here ...
17832         (expand_builtin_interclass_mathfn) [BUILT_IN_ILOGB]: ... to here.
17833         (expand_builtin): Expand BUILT_IN_ILOGB{,F,L} using
17834         expand_builtin_interclass_mathfn ().
17835         * config/i386/i386.md (fxtractxf3_i387): Rename from *fxtractxf3_i387.
17836         (ilogbsi2): Remove.
17837         (ilogbxf2, ilogb<mode>2): New expanders to implement ilogb, ilogbf and
17838         ilogbl built-in functions as x87 intrinsics.
17839
17840 2007-01-30  Richard Guenther  <rguenther@suse.de>
17841
17842         PR middle-end/27657
17843         * dwarf2out.c (reference_to_unused): Query varpool if the
17844         variable was output.
17845
17846 2007-01-30  Richard Guenther  <rguenther@suse.de>
17847
17848         PR middle-end/30313
17849         * passes.c (execute_one_pass): Reset in_gimple_form to not
17850         confuse non-unit-at-a-time mode.
17851
17852 2007-01-29  Roger Sayle  <roger@eyesopen.com>
17853             Richard Guenther  <rguenther@suse.de>
17854
17855         * fold-const.c (round_up): Make HIGH an unsigned HOST_WIDE_INT to
17856         avoid undefined behaviour on overflow.  Use force_fit_type_double
17857         to construct the constant with the specified TREE_OVERFLOW.
17858
17859 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
17860
17861         * config/dfp-bit.c: Add parameterized support for fp exceptions.
17862         * config/dfp-bit.h: Ditto.
17863
17864 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17865
17866         * c-decl.c (pop_scope): Replace warnings with call to
17867         warn_for_unused_label.
17868         * c-common.h (warn_for_unused_label): Declare.
17869         * c-common.c (warn_for_unused_label): Define.
17870
17871 2007-01-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17872
17873         * tree-optimize.c (update_inlined_to_pointers): Delete unused
17874         function.
17875
17876 2007-01-29  Janis Johnson  <janis187@us.ibm.com>
17877
17878         * Makefile.in (USER_H): Remove decfloat.h.
17879         * ginclude/decfloat.h: Delete, moving contents to ...
17880         * ginclude/float.h: Add support for decimal floating point,
17881         guarded by __STDC_WANT_DEC_FP__.
17882
17883 2007-01-29  Mike Stump  <mrs@apple.com>
17884
17885         * doc/gccint.texi (Top): Rename Loop Representation to Loop
17886         Analysis and Representation to resolve case insensitive conflict.
17887         * doc/loop.texi (Loop Analysis and Representation): Likewise.
17888
17889 2007-01-28  Daniel Berlin  <dberlin@dberlin.org>
17890
17891         * tree.h (struct tree_memory_tag): Add aliases member.
17892         (MTAG_ALIASES): New macro.
17893         * tree-ssa-alias.c (alias_bitmap_obstack): New variable.
17894         (add_may_alias): Remove pointer-set. Update for may_aliases being
17895         a bitmap.
17896         (mark_aliases_call_clobbered): Update for may_aliases being a
17897         bitmap.
17898         (compute_tag_properties): Ditto.
17899         (create_partition_for): Ditto.
17900         (compute_memory_partitions): Ditto.
17901         (dump_may_aliases_for): Ditto.
17902         (is_aliased_with): Ditto.
17903         (add_may_alias_for_new_tag): Ditto.
17904         (rewrite_alias_set_for): Rewrite for may_aliases being a bitmap.
17905         (compute_is_aliased): New function.
17906         (compute_may_aliases): Call compute_is_aliased).
17907         (init_alias_info): Initialize alias_bitmap_obstack.
17908         (union_alias_set_into): New function.
17909         (compute_flow_sensitive_aliasing): Use union_aliases_into.
17910         (have_common_aliases_p): Rewrite to take two bitmaps and use
17911         intersection.
17912         (compute_flow_insensitive_aliasing): Stop using pointer-sets.
17913         Update for bitmaps.
17914         (finalize_ref_all_pointers): Update for add_may_alias changes.
17915         (new_type_alias): Ditto.
17916         * tree-flow-inline.h (may_aliases): Return a bitmap.
17917         * tree-dfa.c (dump_variable): Check for MTAG_P'ness.
17918         * tree-ssa.c (verify_flow_insensitive_alias_info): Update for
17919         may_aliases being a bitmap.
17920         * tree-flow.h (struct var_ann_d): Remove may_aliases member.
17921         may_aliases now returns a bitmap.
17922         * tree-ssa-structalias.c (merge_smts_into): Update for may_aliases
17923         being a bitmap.
17924         * tree-ssa-operands.c (add_virtual_operand): Update for
17925         may_aliases being a bitmap.
17926
17927 2007-01-29  Daniel Berlin  <dberlin@dberlin.org>
17928
17929         PR tree-optimization/30630
17930         * tree-ssa-structalias.c (do_complex_constraint): Mark correct
17931         variable as changed.
17932
17933 2007-01-29  Simon Martin  <simartin@users.sourceforge.net>
17934
17935         PR c++/28266
17936         * gimplify.c (gimplify_target_expr): Make sure that the TARGET_EXPR is
17937         expanded only once even if an error occurs.
17938
17939 2007-01-29  Ben Elliston  <bje@au.ibm.com>
17940
17941         * gcov-io.h (__gcov_indirect_call_profiler): Declare.
17942         (__gcov_average_profiler): Likewise.
17943         (__gcov_ior_profiler): Likewise.
17944         (__gcov_merge_ior): Likewise.
17945
17946 2007-01-28  Jan Hubicka  <jh@suse.cz>
17947
17948         * builtins.c (expand_builtin_memset): Fix typo in my last patch.
17949         * value-prof.c (stringop_block_profile): Likewise.
17950
17951 2007-01-28  Jan Hubicka  <jh@suse.cz>
17952
17953         * expr.c (emit_block_move_via_movmem, emit_block_move_via_libcall):
17954         Add variant handling histograms; add wrapper.
17955         (clear_storage_via_libcall): Export.
17956         (emit_block_move_hints): Break out from ...; add histograms.
17957         (emit_block_move): ... this one.
17958         (clear_storage_hints): Break out from ...; add histograms.
17959         (clear_storage): ... this one.
17960         (set_storage_via_memset): Handle histogram.
17961         * expr.h (emit_block_move_via_libcall, emit_block_move_hints): Declare.
17962         (clear_storage_hints, clear_storage_via_libcall): Declare.
17963         (set_storage_via_setmem): Update prototype.
17964         * doc/md.texi (movmem, setmem): Document new arguments.
17965
17966         * value-prof.c (dump_histogram_value, tree_find_values_to_profile):
17967         Add new histograms.
17968         (stringop_block_profile): New global function.
17969         (tree_stringops_values_to_profile): Profile block size and alignment.
17970         * value-prof.h (enum hist_type): add HIST_TYPE_AVERAGE and
17971         HIST_TYPE_IOR.
17972         (struct profile_hooks): Add gen_average_profiler and gen_ior_profiler.
17973         (stringop_block_profile): Declare.
17974         * builtins.c: Include value-prof.h.
17975         (expand_builtin_memcpy, expand_builtin_memset): Pass block profile.
17976         * gcov-ui.h (GCOV_COUNTER_NAMES): Add new counter.
17977         (GCOV_COUNTER_AVERAGE, GCOV_COUNTER_IOR): New constants.
17978         (GCOV_COUNTERS, GCOV_LAST_VALUE_COUNTER): Update.
17979         * profile.c (instrument_values): Add new counters.
17980         * cfgexpand.c (expand_gimple_basic_block): Propagate histograms to
17981         calls.
17982         * tree-profile.c (tree_average_profiler_fn, tree_ior_profiler_fn): New.
17983         (tree_init_edge_profiler): Build new profilers.
17984         (tree_gen_average_profiler, tree_gen_ior_profiler): New.
17985         (pass_tree_profile): Add dump.
17986         (tree_profile_hooks): Update.
17987         * Makefile.in (LIBGCOV): Add new constants.
17988         * libgcov.c (__gcov_merge_ior, __gcov_average_profiler,
17989         __gcov_ior_profiler): New.
17990         * i386.md (movmem/setmem expanders): Add new optional arguments.
17991
17992 2007-01-28  David Edelsohn  <edelsohn@gnu.org>
17993
17994         * doc/md.texi (Standard Pattern Names): Document blockage pattern.
17995
17996 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
17997
17998         * tree-ssa-loop-unswitch.c: Include tree-inline.h.
17999         (tree_unswitch_single_loop): Pass eni_size_weights to
18000         tree_num_loop_insns.
18001         * tree-ssa-loop-manip.c: Include tree-inline.h.
18002         (can_unroll_loop_p): Pass eni_size_weights to
18003         tree_num_loop_insns.
18004         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p):
18005         Pass eni_size_weights to estimate_num_insns.
18006         * tree.h (init_inline_once): Export.
18007         * toplev.c (backend_init): Call init_inline_once.
18008         * cgraphunit.c (cgraph_process_new_functions,
18009         cgraph_analyze_function): Pass eni_inlining_weights to
18010         estimate_num_insns.
18011         * ipa-inline.c (compute_inline_parameters): Ditto.
18012         * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Pass weights
18013         to estimate_num_insns.
18014         (try_unroll_loop_completely): Pass eni_size_weights to
18015         tree_num_loop_insns.
18016         * tree-eh.c (decide_copy_try_finally): Pass eni_size_weights
18017         ot estimate_num_insns.
18018         * tree-ssa-loop-prefetch.c: Include tree-inline.h.
18019         (loop_prefetch_arrays): Pass eni_time_weights to tree_num_loop_insns.
18020         * tree-inline.c (eni_inlining_weights, eni_size_weights,
18021         eni_time_weights): New variables.
18022         (init_inline_once): Initialize them.
18023         (struct eni_data): Mew.
18024         (estimate_num_insns_1, estimate_num_insns): Use weights.
18025         * tree-inline.h (struct eni_weights_d): New.
18026         (eni_inlining_weights, eni_size_weights, eni_time_weights): Declare.
18027         (estimate_num_insns): Declaration changed.
18028         * cfgloop.h (tree_num_loop_insns): Declaration changed.
18029         * Makefile.in (tree-ssa-loop-unswitch.o, tree-ssa-loop-prefetch.o,
18030         tree-ssa-loop-manip.o): Add TREE_INLINE_H dependency.
18031
18032 2007-01-28  Zdenek Dvorak <dvorakz@suse.cz>
18033
18034         * tree-data-ref.c (conflict_fn): Assert that the number of affine
18035         relations in the conflict function is valid.
18036
18037 2007-01-27  Ian Lance Taylor  <iant@google.com>
18038
18039         * common.opt: Add fstrict-overflow.
18040         * opts.c (decode_options): Set flag_strict_overflow if -O2.
18041         * flags.h (TYPE_OVERFLOW_WRAPS): Define.
18042         (TYPE_OVERFLOW_UNDEFINED): Define.
18043         (TYPE_OVERFLOW_TRAPS): Define.  This replaces TYPE_TRAP_SIGNED.
18044         Replace all uses.
18045         * tree.h (TYPE_TRAP_SIGNED): Don't define.
18046         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_UNDEFINED.
18047         (fold_negate_expr): Likewise.
18048         (make_range): Likewise.
18049         (extract_muldiv_1): Likewise.
18050         (maybe_canonicalize_comparison): Likewise.
18051         (fold_comparison): Likewise.
18052         (fold_binary): Likewise.
18053         (tree_expr_nonnegative_p): Likewise.
18054         (tree_expr_nonzero_p): Likewise.
18055         * tree-vrp.c (compare_values): Likewise.
18056         (extract_range_from_binary_expr): Likewise.
18057         (extract_range_from_unary_expr): Likewise.
18058         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness):
18059         Likewise.
18060         (nowrap_type_p): Likewise.
18061         * tree-scalar-evolution.c (simple_iv): Likewise.
18062         * fold-const.c (negate_expr_p): Use TYPE_OVERFLOW_WRAPS.
18063         (build_range_check): Likewise.
18064         (extract_muldiv_1): Likewise.
18065         (fold_comparison): Likewise.
18066         * tree-vrp.c (vrp_int_const_binop): Likewise.
18067         (extract_range_from_unary_expr): Likewise.
18068         * convert.c (convert_to_integer): Likewise.
18069         * fold-const.c (fold_negate_expr): Use TYPE_OVERFLOW_TRAPS.
18070         (fold_comparison): Likewise.
18071         (fold_binary): Likewise.
18072         * optabs.c (optab_for_tree_code): Likewise.
18073         * tree-vectorizer.c (vect_is_simple_reduction): Likewise.
18074         * simplify-rtx.c (simplify_const_relational_operation): Check
18075         flag_strict_overflow and flag_trapv.
18076         (simplify_const_relational_operation): Likewise.
18077         * doc/invoke.texi (Option Summary): Mention -fstrict-overflow.
18078         (Optimize Options): Add -fstrict-overflow to -O2 list.  Document
18079         -fstrict-overflow.
18080
18081 2007-01-27  Roger Sayle  <roger@eyesopen.com>
18082
18083         * tree.c (tree_fold_gcd): Delete.
18084         * tree.h (tree_fold_gcd): Remove prototype.
18085         * tree-data-ref.c (tree_fold_divides_p): Don't use tree_fold_gcd to
18086         test whether one constant integer is a multiple of another.  Instead
18087         call int_const_binop with TRUNC_MOD_EXPR and test for a zero result.
18088         * fold-const.c (multiple_of_p):  We've determined both TOP and
18089         BOTTOM are integer constants so we can call int_const_binop directly
18090         instead of the more generic const_binop.
18091
18092 2007-01-27  Roger Sayle  <roger@eyesopen.com>
18093
18094         * fold-const.c (size_binop): In the fast-paths for X+0, 0+X, X-0 and
18095         1*X check that the constant hasn't overflowed, to preserve the
18096         TREE_OVERFLOW bit.
18097         (round_up): Provide an efficient implementation when rouding-up an
18098         INTEGER_CST to a power-of-two.
18099
18100 2007-01-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18101
18102         * doc/sourcebuild.texi: Add comma for clarity.
18103         * doc/extend.texi: Fix some typos.
18104         * doc/passes.texi: Likewise.
18105         * doc/cppinternals.texi: Likewise.
18106         * doc/c-tree.texi: Likewise.
18107         * doc/tree-ssa.texi: Likewise.
18108         * doc/install.texi: Likewise.
18109
18110 2007-01-27  Jan Hubicka  <jh@suse.cz>
18111
18112         * tree-sra.c (sra_walk_function): Don't rely on aliases being build.
18113         (pass_sra): Do not require alias information.
18114         * passes.c (init_optimization_passes): Add SRA
18115
18116 2007-01-27  Steven Bosscher  <steven@gcc.gnu.org>
18117
18118         * tracer.c (rest_of_handle_tracer): We already cleaned
18119         up the CFG in tracer() so don't do it here again.
18120         * cfgcleanup.c (rest_of_handle_jump2): Don't repeat
18121         cleanup_cfg here, either.  And don't call renumber_insns.
18122
18123         * cfgrtl.c (rtl_verify_flow_info_1): Don't verify that BB_END
18124         and BB_HEAD are in the insn stream here.  Instead make sure
18125         that BB_INSN is valid on all insns.  Also, do check here that
18126         there are no pending branch predictions...
18127         (rtl_verify_flow_info): ...instead of doing it here.  Checks
18128         for BB_END and BB_HEAD moved from rtl_verify_flow_info_1 to
18129         here.
18130
18131 2007-01-26  Roger Sayle  <roger@eyesopen.com>
18132
18133         * config/i386/i386.c (ix86_swap_binary_operands_p): New helper
18134         function to simplify/factorize operand order canonicalization.
18135         (ix86_fixup_binary_operands): Reorganize using the above function.
18136         (ix86_binary_operator_ok): Likewise.
18137
18138 2007-01-27  Jakub Jelinek  <jakub@redhat.com>
18139
18140         * genattrtab.c (struct attr_value_list, insn_code_values): Move to
18141         file scope from optimize_attrs.
18142         (simplify_test_exp): If insn_code_values is not NULL, use it to speed
18143         up search.
18144         (optimize_attrs): Clear insn_code_values after freeing it.
18145
18146 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
18147
18148         * tree-ssa-address.c (create_mem_ref): Remove ", bsi" from
18149         a parts.base assignment.
18150
18151 2007-01-26  Zdenek Dvorak <dvorakz@suse.cz>
18152
18153         * tree-data-ref.c (dump_subscript): Use dump_conflict_function.
18154         (compute_subscript_distance, initialize_data_dependence_relation,
18155         finalize_ddr_dependent, analyze_ziv_subscript,
18156         analyze_siv_subscript_cst_affine,
18157         compute_overlap_steps_for_affine_univar,
18158         compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine,
18159         analyze_siv_subscript, analyze_miv_subscript,
18160         analyze_overlapping_iterations, subscript_dependence_tester_1,
18161         compute_self_dependence, free_dependence_relation): Work
18162         with affine_fn instead of chrecs.
18163         (dump_affine_function, dump_conflict_function, affine_function_equal_p,
18164         common_affine_function, affine_function_base,
18165         affine_function_constant_p, affine_fn_op, affine_fn_plus,
18166         affine_fn_minus, affine_fn_free, conflict_fn_not_known,
18167         conflict_fn_no_dependence, free_conflict_function, free_subscripts,
18168         conflict_fn, affine_fn_cst, affine_fn_univar): New functions.
18169         (all_chrecs_equal_p): Removed.
18170         * tree-data-ref.h (affine_fn, conflict_function): New types.
18171         (struct subscript): Change type of conflicting_iterations_in_a
18172         and conflicting_iterations_in_b.
18173
18174 2007-01-26  Steve Ellcey  <sje@cup.hp.com>
18175
18176         PR other/30182
18177         * config/pa/pa.h (TARGET_HPUX_11): New.
18178         * config/pa/pa-hpux11.h (TARGET_HPUX_11): New.
18179         * config/pa/pa.c (pa_init_builtins): Use TARGET_HPUX_11.
18180
18181 2007-01-26  Daniel Berlin  <dberlin@dberlin.org>
18182         Richard Guenther  <rguenther@suse.de>
18183
18184         * tree-ssa-structalias.c (solve_graph): Handle case
18185         we merged the variable to another.
18186
18187 2007-01-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18188
18189         * builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
18190         functions.
18191
18192         * fold-const.c (negate_mathfn_p): Treat casin, casinh, catan,
18193         catanh, cproj, csin, csinh, ctan and ctanh as 'odd' functions.
18194
18195 2007-01-25  DJ Delorie  <dj@redhat.com>
18196
18197         * config/m32c/m32c.c (m32c_cannot_change_mode_class): We don't
18198         allow changes to modes which don't fit in those registers.
18199
18200         * reload1.c (choose_reload_regs): Check for invalid subregs before
18201         computing their locations, not after.
18202
18203 2007-01-25  Geoffrey Keating  <geoffk@apple.com>
18204
18205         PR 25127
18206         * config/rs6000/rs6000.c (first_altivec_reg_to_save): On Darwin,
18207         save Altivec registers in an eh_return function.
18208         (compute_vrsave_mask): Likewise.
18209         (rs6000_stack_info): Correct AIX/Darwin stack alignment computation
18210         for saving Altivec registers.
18211         (rs6000_emit_prologue): Don't allocate stack twice in
18212         eh_return function.  Correct expected value of altivec_save_offset
18213         when using save_world.  Describe save of R0 to stack when using
18214         save_world.  Describe stack pointer adjustment when using
18215         save_world.  Remove duplicated eh_return parameter register saving.
18216         Update sp_offset variable after save_world.
18217         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): Remove
18218         darwin-world.asm.
18219         (LIB2FUNCS_EXTRA): Add darwin-world.asm.
18220         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): -m64
18221         implies Altivec.
18222
18223 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
18224
18225         * config.gcc (ia64*-*-hpux*): Make posix threads the default.
18226
18227 2007-01-25  Steve Ellcey  <sje@cup.hp.com>
18228
18229         PR other/30182
18230         * config/pa/pa.c (pa_init_builtins): Set asm names for finite routines.
18231         * config/ia64/ia64.c (ia64_init_builtins):  Ditto.
18232
18233 2007-01-25  Richard Guenther  <rguenther@suse.de>
18234
18235         * doc/invoke.texi (-Wcoverage-mismatch): Document.
18236         * common.opt (-Wcoverage-mismatch): New warning option.
18237         * coverage.c (get_coverage_counts): Ignore coverage mismatch
18238         if -Wcoverage-mismatch is given.
18239
18240 2007-01-25  Razya Ladelsky  <razya@il.ibm.com>
18241
18242         * ipa-cp.c (ipcp_insert_stage, ipcp_driver): Support for SSA.
18243         (ipcp_driver): Change to static definition.
18244         Add dumping of the ifunctions.
18245         (constant_val_insert): Remove unused parameter. Support for SSA.
18246         (ipcp_propagate_const): Support for SSA.
18247         (ipcp_profile_bb_print): Print only analyzed nodes.
18248         (ipcp_replace_map_create): Remove support for Fortran constant
18249         for now.
18250         * ipa-prop.c (ipa_method_modify_stmt,
18251         ipa_callsite_compute_param): Support for SSA.
18252         * ipa-prop.h (ipcp_driver): Remove declaration.
18253         (IS_VALID_TREE_MAP_INDEX): Add define.
18254
18255 2007-01-24  Geoffrey Keating  <geoffk@apple.com>
18256
18257         * unwind-dw2.c (execute_stack_op): Handle DW_OP_swap.
18258
18259 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18260
18261         PR middle-end/30447
18262         * builtins.c (fold_builtin_cabs): Use MPFR to evaluate a
18263         constant argument to cabs and do it without checking for
18264         -funsafe-math-optimizations.
18265
18266 2007-01-24  Douglas Gregor  <dgregor@osl.iu.edu>
18267
18268         * c-common.h (RID_FIRST_CXX0X): New.
18269         (RID_LAST_CXX0X): New.
18270         * c-opts.c (c_common_handle_option): -Wc++0x-compat is triggered
18271         by -Wall.
18272         * c.opt (Wc++0x-compat): New.
18273         * doc/invoke.texi (-Wc++0x-compat): Document.
18274
18275 2007-01-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18276
18277         * builtins.c (fold_builtin_carg): New.
18278         (fold_builtin_1): Use it.
18279
18280 2007-01-24  Jan Hubicka  <jh@suse.cz>
18281
18282         * ipa-inline.c (cgraph_decide_inlining): Initialize initial_insns.
18283
18284         * ipa-inline.c (initial_insns, max_insns): Delete.
18285         (compute_max_insns): New function.
18286         (cgraph_decide_inlining_of_small_function): Use it; take minimal
18287         amount of insns as base for code growth.
18288         (cgraph_decide_inlining): Make initial_insns local; do not compute
18289         max_insns.
18290         * params.def (PARAM_INLINE_UNIT_GROWTH): Set to 60.
18291         * doc/invoke.texi (inline-unit-growth): Update docs.
18292
18293 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
18294
18295         * config/i386/i386.h (x86_cmpxchg16b): Remove const.
18296         (TARGET_CMPXCHG16B): Define to x86_cmpxchg16b.
18297         * config/i386/i386.c (x86_cmpxchg16b): Remove const.
18298         (override_options): Add PTA_CX16 flag.  Set x86_cmpxchg16b
18299         for CPUs that have PTA_CX16 set.
18300
18301         PR middle-end/27416
18302         * gimplify.c (omp_check_private): New function.
18303         (gimplify_scan_omp_clauses): Use it for
18304         firstprivate/lastprivate/reduction.
18305
18306         PR middle-end/30494
18307         * gimplify.c (omp_add_variable): Don't call omp_notice_variable
18308         on TYPE_SIZE_UNIT for GOVD_LOCAL VLAs.
18309
18310         PR middle-end/30421
18311         * omp-low.c (lower_omp_for_lastprivate): Add dlist argument.
18312         If lower_lastprivate_clauses emits some statements, append them
18313         to dlist rather than body_p and to body_p append an initializer.
18314         (lower_omp_for): Adjust caller.
18315
18316 2007-01-24  Steve Ellcey  <sje@cup.hp.com>
18317
18318         * target.h (globalize_decl_name): New.
18319         * target-def.h (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
18320         * output.h (default_globalize_decl_name): New.
18321         * varasm.c (asm_output_bss): Use globalize_decl_name instead of
18322         globalize_label.
18323         (globalize_decl): Ditto.
18324         (default_globalize_decl_name): New.
18325         * config/ia64/ia64.c (ia64_globalize_decl_name): New.
18326         (ia64_handle_version_id_attribute): New.
18327         (TARGET_ASM_GLOBALIZE_DECL_NAME): New.
18328         (ia64_asm_output_external): Use globalize_decl_name instead
18329         of globalize_label.
18330         * doc/extend.texi (version_id): New pragma.
18331         * doc/tm.texi (ARGET_ASM_GLOBALIZE_DECL_NAME): New target hook.
18332
18333 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
18334
18335         * unwind-dw2-fde.c (get_cie_encoding): Replaced _Unwind_Word with
18336         _uleb128_t and _Unwind_SWord with _sleb128_t.
18337         * unwind-dw2.c (extract_cie_info, execute_stack_op,
18338         execute_cfa_program, uw_frame_state_for, uw_update_context_1):
18339         Likewise.
18340         * unwind-c.c (parse_lsda_header, PERSONALITY_FUNCTION): Likewise.
18341         * unwind-pe.h (read_uleb128, read_sleb128,
18342         read_encoded_value_with_base): Likewise.
18343         * unwind-generic.h: Define _sleb128_t and _uleb128_t types.
18344
18345 2007-01-24  Richard Guenther  <rguenther@suse.de>
18346
18347         * builtins.c (expand_builtin_cexpi): Get the fndecl
18348         for cexp in the correct way.
18349
18350 2007-01-24  Jan Hubicka  <jh@suse.cz>
18351
18352         * tree-ssa-dce.c (eliminate_unnecesary_stmts): Remove dead LHS
18353         of calls.
18354
18355 2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
18356
18357         * c-cppbuiltin.c (builtin_define_type_sizeof): New function.
18358         (c_cpp_builtins): New builtin macros: __SIZEOF_INT__, __SIZEOF_LONG__,
18359         __SIZEOF_LONG_LONG__, __SIZEOF_SHORT__, __SIZEOF_POINTER__,
18360         __SIZEOF_FLOAT__, __SIZEOF_DOUBLE__, __SIZEOF_LONG_DOUBLE__,
18361         __SIZEOF_SIZE_T__, __SIZEOF_WCHAR_T__, __SIZEOF_WINT_T__ and
18362         __SIZEOF_PTRDIFF_T__.
18363         * doc/cpp.texi: Documentation for the new builtin macros added.
18364
18365 2007-01-24  Uros Bizjak  <ubizjak@gmail.com>
18366
18367         * config/i386/i386.md (tanxf2, tan<mode>2, atan<mode>2, log<mode>2,
18368         log10<mode>2, log2<mode>2, expxf2, exp10xf2, exp2xf2): Use op2
18369         instead of operands[2] to avoid access past the end of array.
18370
18371 2007-01-24  Richard Sandiford  <richard@codesourcery.com>
18372
18373         * reload1.c (emit_reload_insns): Pass the reload register
18374         for a non-spill output reload through forget_old_reloads_1.
18375
18376 2007-01-23  Joseph Myers  <joseph@codesourcery.com>
18377
18378         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
18379         _SOFT_DOUBLE if doubles use software floating-point.
18380         * config/rs6000/libgcc-ppc-glibc.ver: Export additional long
18381         double functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
18382         * config/rs6000/darwin-ldouble.c: Also compile functions for
18383         hard-float without FPRs.  Use fmsub function for all __NO_FPRS__
18384         cases.  Compile extra functions if _SOFT_DOUBLE, not _SOFT_FLOAT.
18385         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove
18386         commented-out long double override.
18387         (CPP_LONGDOUBLE_DEFAULT_SPEC): Likewise.
18388         * config/rs6000/eabispe.h: Likewise.
18389         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
18390         long double for non-SPE.
18391         (rs6000_handle_option): Likewise.
18392         (invalid_e500_subreg): Disallow more subregs involding DImode,
18393         DFmode, TImode or TFmode.
18394         (rs6000_legitimate_offset_address_p): Check TFmode offsets for
18395         E500 double.
18396         (legitimate_lo_sum_address_p): Also check for TFmode for E500
18397         double.
18398         (rs6000_legitimize_address): Also handle TFmode for E500 double.
18399         (rs6000_legitimize_reload_address): Also handle TFmode for E500
18400         double.
18401         (rs6000_legitimate_address): Also check for TFmode for E500
18402         double.
18403         (rs6000_emit_move): Use DFmode subregs of TFmode for E500 double.
18404         (spe_build_register_parallel): Handle TFmode and TCmode.
18405         (rs6000_spe_function_arg): Handle TFmode and TCmode for E500
18406         double.
18407         (function_arg): Handle TFmode and TCmode for E500 double.
18408         (rs6000_init_libfuncs): Initialize extra libfuncs for soft double
18409         in general.
18410         (print_operand): Handle TFmode and TImode for %y.
18411         (rs6000_generate_compare): Handle TFmode comparisons for E500
18412         double.
18413         (spe_func_has_64bit_regs_p): Check for TFmode for E500 double.
18414         (rs6000_function_value): Handle TFmode and TCmode for E500 double.
18415         (rs6000_libcall_value): Handle TFmode and TCmode for E500 double.
18416         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Check for
18417         TFmode for E500 double.
18418         * config/rs6000/rs6000.md (FP): Allow TF for E500 double.
18419         (floatsidf2): Enable for E500 double.
18420         (movtf_softfloat): Use rs6000_nonimmediate_operand.
18421         (extenddftf2): Change to extenddftf2_fprs.
18422         (extenddftf2): Call gen_spe_extenddftf2 or gen_extenddftf2_fprs
18423         depending on TARGET_E500_DOUBLE.
18424         (extendsftf2): Enable for E500 double.
18425         (trunctfdf2): Enable for E500 double.
18426         (trunctfsf2): Change to trunctfsf2_fprs.
18427         (trunctfsf2): Call gen_spe_trunctfsf2 or gen_trunctfsf2_fprs
18428         depending on TARGET_E500_DOUBLE.
18429         (floatsitf2): Enable for E500 double.
18430         (fix_trunctfsi2): Change to fix_trunctfsi2_fprs.
18431         (fix_trunctfsi2): Call gen_spe_fix_trunctfsi2 or
18432         gen_fix_trunctfsi2_fprs depending on TARGET_E500_DOUBLE.
18433         (negtf2): Change to negtf2_internal.
18434         (negtf2): New expander.
18435         (abstf2): Enable for E500 double.  Call gen_spe_abstf2_tst,
18436         gen_spe_abstf2_cmp or gen_abstf2_internal depending on
18437         TARGET_E500_DOUBLE and flag_unsafe_math_optimizations.
18438         (movdi_internal32): Use rs6000_nonimmediate_operand.
18439         (unnamed splitter): Likewise.
18440         * config/rs6000/spe.md (CMPTFEQ_GPR, TSTTFEQ_GPR, CMPTFGT_GPR,
18441         TSTTFGT_GPR, CMPTFLT_GPR, TSTTFLT_GPR): New unspecs.
18442         (SPE64TF, DITI): New mode macros.
18443         (frob_df_di): Change to frob_<SPE64:mode>_<DITI:mode>; allow more
18444         modes.
18445         (frob_tf_ti): New.
18446         (frob_<mode>_di_2): New.
18447         (frob_tf_di_8_2): New.
18448         (frob_di_df): Change to frob_di_<mode>; allow more modes.
18449         (frob_ti_tf): New.
18450         (frob_di_df_2): Change to frob_<DITI:mode>_<SPE64:mode>_2; allow
18451         more modes.
18452         (frob_ti_<mode>_8_2): New.
18453         (frob_ti_tf_2): New.
18454         (mov_si<mode>_e500_subreg0, mov_si<mode>_e500_subreg0_2,
18455         mov_si<mode>_e500_subreg4, mov_si<mode>_e500_subreg4_2): Allow
18456         TFmode.
18457         (mov_sitf_e500_subreg8, mov_sitf_e500_subreg8_2,
18458         mov_sitf_e500_subreg12, mov_sitf_e500_subreg12_2): New.
18459         (spe_trunctfdf2_internal1, spe_trunctfsf2, spe_extenddftf2,
18460         spe_fix_trunctfsi2, spe_fix_trunctfsi2_internal,
18461         spe_negtf2_internal, spe_abstf2_cmp, spe_abstf2_tst): New.
18462         (cmptfeq_gpr, tsttfeq_gpr, cmptfgt_gpr, tsttfgt_gpr, cmptflt_gpr,
18463         tsttflt_gp): New.
18464
18465 2007-01-23  Ian Lance Taylor  <iant@google.com>
18466
18467         * Makefile.in (OBJS-common): Reformat, alphabetize, but put
18468         insn-*.o first.
18469         (OBJS-archive): Reformat, alphabetize.
18470         (OBJS): Change out_object_file to OBJS-md.
18471
18472 2007-01-23  Uros Bizjak  <ubizjak@gmail.com>
18473
18474         * config/i386/i386.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
18475         JUMP_P and CALL_P predicates where applicable.
18476         * config/i386/i386.c: Ditto.
18477         * config/i386/i386.md: Ditto.
18478         * config/i386/mmx.md: Ditto.
18479         * config/i386/predicates.md: Ditto.
18480
18481 2007-01-22  Andreas Schwab  <schwab@suse.de>
18482
18483         * config/m68k/m68k.h: Fix comment.
18484
18485 2007-01-22  Jan Hubicka  <jh@suse.cz>
18486
18487         * passes.c (init_optimization_passes): Do not rerun
18488         pass_early_warn_uninitialized.
18489
18490 2007-01-22  Richard Guenther  <rguenther@suse.de>
18491
18492         PR tree-optimization/30038
18493         * tree-ssa-math-opts.c (maybe_record_sincos): New static helper
18494         function.
18495         (execute_cse_sincos_1): Likewise.
18496         (execute_cse_sincos): Likewise.
18497         (gate_cse_sincos): Likewise.
18498         (pass_cse_sincos): New pass CSEing sin() and cos() calls using
18499         the cexpi() canonicalization of sincos().
18500         * tree-pass.h (pass_cse_sincos): Declare.
18501         * passes.c (init_optimization_passes): New pass pas_cse_sincos.
18502
18503 2007-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
18504
18505         PR rtl-optimization/29329
18506         * combine.c (replaced_rhs_insn): Rename to i2mod.
18507         (replaced_rhs_value): Rename to i2mod_new_rhs.
18508         (i2mod_old_rhs): New global variable.
18509         (combine_instructions): Adjust for above change.  Save a copy of
18510         the old RHS into i2mod_old_rhs when the contents of a REG_EQUAL
18511         note are substituted in the second instruction.
18512         (distribute_notes) <REG_DEAD>: Adjust for above change.  Do not
18513         ditch the note if it pertains to the second eliminated register
18514         and this register is mentioned in i2mod_old_rhs.
18515
18516         Revert:
18517         2006-09-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
18518
18519         * combine.c (distribute_notes) <REG_DEAD>: Do not consider SETs past
18520         the insn to which the note was originally attached.
18521
18522 2007-01-21  Jan Hubicka  <jh@suse.cz>
18523
18524         * ipa-inline.c (inlining_mode): Comment, move up.
18525         (cgraph_decide_inlining_incrementally): Do not perform inlining
18526         itself; fix handling of flattening of self recursive functions.
18527         (cgraph_find_cycles): Remove.
18528         (cgraph_flatten_node): Remove.
18529         (cgraph_decide_inlining): Use incremental inliner to handle flattening.
18530         (try_inline): New function.
18531         (cgraph_early_inlining): Update call of
18532         cgraph_decide_inlining_incrementally.  Apply inlining here.
18533         (apply_inline): Update call of cgraph_decide_inlining_incrementally.
18534
18535 2007-01-21  Dirk Mueller  <dmueller@suse.de>
18536
18537         PR bootstrap/30511
18538         * tree-vrp.c (check_array_bounds): do not warn
18539         about ADDR_EXPR's of ARRAY_REF's which are immediately
18540         used in binary expressions.
18541
18542 2007-01-21  Ira Rosen  <irar@il.ibm.com>
18543
18544         * tree-vectorizer.h (struct _stmt_vec_info): Add new field
18545         read_write_dep and macros for its access.
18546         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new field.
18547         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Remove
18548         argument, call vect_check_interleaving for every independent pair of
18549         data-refs. Mark loads that access the same memory location as a store
18550         in the loop.
18551         (vect_check_dependences): Remove.
18552         (vect_analyze_data_ref_dependences): Remove  vect_check_dependences
18553         call, fix the call to vect_analyze_data_ref_dependence.
18554         (vect_analyze_data_ref_access): For statements that access the same
18555         data-ref, check that they are not stores; for loads, check that there
18556         is no store that access the same location.
18557
18558 2007-01-20  Roger Sayle  <roger@eyesopen.com>
18559             Joseph Myers  <joseph@codesourcery.com>
18560
18561         * doc/invoke.texi (-fdump-rtl-combine): Fix under/overfull hbox.
18562         (-fdump-rtl-stack): Likewise.
18563         (-fno-signed-zeros): Use @minus{} for a minus sign.  Correct typo.
18564         (-mcheck-zero-division, -mcpu): Fix under/overfull hbox.
18565         (-mpt-fixed): Use @minus{} for minus sign.
18566         (Using Precompiled Headers): Fix under/overfull hbox.
18567
18568 2007-01-20  Jan Hubicka  <jh@suse.cz>
18569
18570         * tree-flow.h (struct stmt_ann_d): Move references_memory to proper
18571         place within annotation.
18572
18573 2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18574
18575         * pa.c (output_move_double): Change array size of xoperands to 4.
18576
18577 2007-01-20  Jan Hubicka  <jh@suse.cz>
18578
18579         * tree-tailcall.c (adjust_return_value): Do not use RESULT_DECL
18580         as temporary.
18581
18582 2007-01-19  Ian Lance Taylor  <iant@google.com>
18583
18584         * expmed.c (expand_divmod) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: Cast
18585         constant to unsigned HOST_WIDE_INT before negating.
18586
18587 2007-01-19  Ian Lance Taylor  <iant@google.com>
18588
18589         * tree-ssa-operands.h (struct vuse_vec_d): Change num_vuse field
18590         to unsigned.
18591         (VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Use unsigned comparison.
18592         (VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
18593         (SET_VUSE_VECT_ELEMENT) [ENABLE_CHECKING]: Likewise.
18594         (SET_VUSE_ELEMENT_VAR) [ENABLE_CHECKING]: Likewise.
18595         (SET_VUSE_ELEMENT_PTR) [ENABLE_CHECKING]: Likewise.
18596         (realloc_vdef, realloc_vuse): Change second parameter to
18597         unsigned.
18598         (ssa_operand_iterator_d): Change vuse_index and mayuse_index
18599         fields to unsigned.
18600         * tree-ssa-operands.c (realloc_vop): Change num_elem parameter to
18601         unsigned. Change x and lim locals to unsigned.
18602         (realloc_vdef, realloc_vuse): Change num_elem parameter to
18603         unsigned.
18604         (finalize_ssa_vuse_ops): Change old_i local to unsigned.
18605         (copy_virtual_operands): Change i and n locals to unsigned.
18606
18607 2007-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18608
18609         PR middle-end/29335
18610         * builtins.c (fold_builtin_1): Handle builtin fdim.
18611
18612 2007-01-20  Jan Hubicka  <jh@suse.cz>
18613
18614         * tree-ssa.c (init_tree_ssa): Do not call init_alias_heapvars.
18615         * tree-ssa-structalias.c (compute_points_to_sets): Do call
18616         init_alias_heapvars.
18617         (init_alias_heapvars): Initialize only when not already initialized.
18618         (delete_alias_heapvars): Set heapvar_for_stmt to NULL.
18619
18620 2007-01-19  Roger Sayle  <roger@eyesopen.com>
18621
18622         * common.opt (fsigned-zeros): New command line option.
18623         * flags.h (HONOR_SIGNED_ZEROS): Control via flag_signed_zeros instead
18624         of flag_unsafe_math_optimizations.
18625         * opts.c (set_fast_math_flags): The -ffast-math command line option
18626         implies -fno-signed-zeros.
18627         (fast_math_flags_set_p): Likewise.
18628
18629         * doc/invoke.texi: Document new -fno-signed-zeros option, and update
18630         the documentation of -ffast-math appropriately.  Wrap long lines.
18631
18632 2007-01-19  Steve Ellcey  <sje@cup.hp.com>
18633
18634         * system.h (ASM_MAKE_LABEL_LINKONCE): Poison.
18635         * varasm.c (globalize_decl): Remove ASM_MAKE_LABEL_LINKONCE ifdef.
18636
18637 2007-01-19  Tomas Bily  <tbily@suse.cz>
18638
18639         * cgraphunit.c (cgraph_finalize_function): Updating of pid
18640         * tree-profile.c:
18641         (tree_init_ic_make_global_vars): New function
18642         (tree_init_edge_profiler): call of tree_init_ic_make_global_vars
18643         (tree_gen_ic_profiler): New function
18644         (tree_gen_ic_func_profiler): New function
18645         (tree_profiling): Added calling of tree_gen_ic_func_profiler
18646         (tree_profile_hooks): Added hook for indirec/virtual calls
18647         * value-prof.c (tree_find_values_to_profile): New case for
18648         indirect calls
18649         (tree_values_to_profile): Call for determining indirect/virtual
18650         counters
18651         (tree_indirect_call_to_profile): New function
18652         (tree_ic_transform): New function
18653         (tree_ic): New function
18654         (find_func_by_pid): New function
18655         (init_pid_map): New function
18656         (tree_value_profile_transformations): Added check for
18657         indirect/virtual call transformation
18658         * value-prof.h (enum hist_type): New counter type for
18659         indirect/virtual calls
18660         (profile_hooks): Added new hook for profiling indirect/virtual
18661         calls
18662         * profile.c (instrument_values): New case for indirect/virtual
18663         call added
18664         * gcov-io.h (GCOV_LAST_VALUE_COUNTER): Changed to 6
18665         (GCOV_COUNTER_V_INDIR): New counter type
18666         (GCOV_COUNTER_NAMES): New name of counter "indirect" added
18667         (GCOV_MERGE_FUNCTIONS): New merge function for indirect/virtual
18668         call added
18669         * cgraph.c: Definition of cgraph_max_pid
18670         (cgraph_create_node): Default init of pid attribute
18671         * cgraph.h: Declaration of cgraph_max_pid
18672         (struct cgraph_node): Added pid attribute
18673         * libgcov.c (__gcov_indirect_call_profiler): New function
18674         (__gcov_one_value_profiler_body): New function
18675         (__gcov_one_value_profiler): Body was moved to
18676         __gcov_one_value_profiler_body and calls it
18677
18678 2007-01-19  Basile Starynkevitch  <basile@starynkevitch.net>
18679
18680         * doc/gty.texi (Options): Document the mark_hook option to GTY.
18681         * gengtype.c (write_types_data, write_func_for_structure,
18682         write_types, ggc_wtd, pch_wtd): Add skip_hooks to
18683         write_types_data, ggc_wtd, pch_wtd for processing mark_hook.
18684         (walk_type, write_func_for_structure): Generate the mark_hook if
18685         needed.
18686
18687 2007-01-19  Jan Hubicka  <jh@suse.cz>
18688
18689         * ipa-inline.c (cgraph_decide_inlining_incrementally): Instead of
18690         'early' argument take inlining mode argument specifying whether to
18691         inline for size/speeed or all functions; add support for flattening;
18692         improve dumpting.
18693         (cgraph_early_inlining): Update call of decide_inlining_incrementally.
18694
18695 2007-01-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
18696
18697         PR c++/17947
18698         * toplev.c (warn_deprecated_use): Use %qD instead of %qs to print
18699         the name of the declared identifier.
18700
18701 2007-01-19  Dirk Mueller  <dmueller@suse.de>
18702
18703         * config/i386.h (CONDITIONAL_REGISTER_USAGE): Store
18704         result of PIC_OFFSET_TABLE_REGNUM in temporary variable to avoid
18705         duplicate evaluation.
18706
18707 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
18708
18709         * config/i386/i386.md (acos<mode>2): Rename from acossf2 and acosdf2.
18710         Macroize expander using X87MODEF12 mode macro.  Extend operand 1
18711         to XFMode, use acosxf2 and truncate result to requested mode.
18712         Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
18713         (asin<mode>2): Similarly, with asin expanders.
18714         (*fscalexf4_i387): Rename from *fscalexf4.
18715         (expNcorexf3): New expander.
18716         (expxf2, exp10xf2, exp2xf2): Use expNcorexf3 expander.
18717         (exp<mode>2): Rename from expsf2 and expdf2. Macroize expander using
18718         X87MODEF12 mode macro.  Extend operand 1 to XFMode, use expxf2 and
18719         truncate result to requested mode. Use SSE_FLOAT_MODE_P to disable
18720         patterns for SSE math.
18721         (exp10<mode>2): Similarly, with exp10 expanders.
18722         (exp2<mode>2): Similarly, with exp2 expanders.
18723         (expm1<mode>2): Similarly, with expm1 expanders.
18724         (ldexp<mode>3): Similarly, with ldexp expanders.
18725         (log<mode>2, log10<mode>2, log2<mode>2, log1p<mode>2, logb<mode>2):
18726         Use gen_truncxf<mode>2_i387_noop to truncate result.
18727
18728 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18729
18730         * config/m68k/m68k.h (PREFERRED_STACK_BOUNDARY): Define to 32
18731         for ColdFire targets.
18732
18733 2007-01-19  Nathan Sidwell  <nathan@codesourcery.com>
18734             Richard Sandiford  <richard@codesourcery.com>
18735
18736         * config/m68k/m68k.h (M68K_STATIC_CHAIN_REG_NAME): New macro.
18737         (INITIALIZE_TRAMPOLINE): Use STATIC_CHAIN_REGNUM.
18738         (__transfer_from_trampoline): Use M68K_STATIC_CHAIN_REG_NAME.
18739         * config/m68k/m68kelf.h (STATIC_CHAIN_REGNUM): Override.
18740         (M68K_STATIC_CHAIN_REG_NAME): Likewise.
18741         * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
18742
18743 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18744
18745         * config/m68k/m68k.md (adddi_dilshr32): Rename to...
18746         (*adddi_dilshr32): ...this.  Fix formatting.  Remove commented-out
18747         non-canonical pattern.  Restrict to !TARGET_COLDFIRE.
18748         (*adddi_dilshr32_cf): New pattern.
18749         (adddi3, subdi3): Remove first alternatives.
18750
18751 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18752
18753         * config/m68k/m68k.c (notice_update_cc): If an SFmode move is
18754         implemented using move.l, do not use its cc result for floating-point
18755         comparisons.
18756
18757 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18758
18759         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Stop the 'T' constraint
18760         from accepting 's' constraints if flag_pic.
18761
18762 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18763
18764         * config/m68k/m68k.md (bordered, bunordered, buneq, bunge, bungt)
18765         (bunle, bunlt, bltgt, bordered_rev, bunordered_rev, buneq_rev)
18766         (bunge_rev, bungt_rev, bunle_rev, bunlt_rev, bltgt_rev): Change
18767         condition from TARGET_68881 to TARGET_HARD_FLOAT.
18768
18769 2007-01-19  Sandra Loosemore  <sandra@codesourcery.com>
18770
18771         * longlong.h (count_leading_zeros, COUNT_LEADING_ZEROS_0): Add
18772         ColdFire alternatives.
18773         * config/m68k/m68k.h (CLZ_DEFINED_VALUE_AT_ZERO): New macro.
18774         * config/m68k/m68k.md (clzsi2):  Define for ColdFire
18775         architectures that support ff1 instruction.
18776
18777 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18778             Julian Brown  <julian@codesourcery.com>
18779
18780         * config/m68k/m68k.h (CONST_OK_FOR_LETTER_P): Add an 'R' case.
18781         * config/m68k/m68k.md (*movsi_cfv4): Fold into...
18782         (*movsi_cf): ...here.  Remove unnecessary 'R' from 'Rg'.
18783         Add commentary.
18784
18785 2007-01-19  Richard Sandiford  <richard@codesourcery.com>
18786
18787         * config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
18788         and return a bool.
18789         (output_move_const_into_data_reg, output_move_simode_const): Delete.
18790         * config/m68k/m68k.c (const_method, const_int_cost): Take a
18791         HOST_WIDE_INT instead of an rtx.
18792         (m68k_rtx_costs): Update call accordingly.
18793         (output_move_const_into_data_reg): Likewise.  Fix formatting.
18794         (valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
18795         Return a bool.
18796         (output_move_simode_const): Update calls after above changes.
18797         Rework to use automatic variables and predicates like MEM_P.
18798         * config/m68k/m68k.md (pushexthisi_const): Update call to
18799         valid_mov3q_const.
18800
18801 2007-01-19  Dirk Mueller  <dmueller@suse.de>
18802
18803         * tree-ssa-alias.c (perform_var_substitution): Fix typo
18804         in dump_flags test.
18805
18806 2007-01-19  Richard Guenther  <rguenther@suse.de>
18807
18808         * builtins.c (expand_builtin_cexpi): Fall back to expanding
18809         via cexp in case sincos is not available.
18810
18811 2007-01-19  Richard Guenther  <rguenther@suse.de>
18812
18813         * doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
18814         * defaults.h (TARGET_HAS_SINCOS): Default to off.
18815         * config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
18816         * config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
18817         * config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
18818         * config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
18819         * config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
18820         * config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.
18821
18822 2007-01-19  Uros Bizjak  <ubizjak@gmail.com>
18823
18824         * config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
18825         New insn patterns.
18826         (atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
18827         (atan2xf3): Directly generate RTL pattern.
18828         (atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
18829         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
18830         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
18831         disable patterns for SSE math.
18832         (atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
18833         patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
18834         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
18835         disable patterns for SSE math.
18836
18837 2007-01-19  Alexandre Oliva  <aoliva@redhat.com>
18838
18839         * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
18840
18841 2007-01-18  Roger Sayle  <roger@eyesopen.com>
18842
18843         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
18844         VIEW_CONVERT_EXPR to the same type as it's operand.
18845
18846 2007-01-18  David Edelsohn  <edelsohn@gnu.org>
18847
18848         * config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
18849         configured for long double 128.
18850
18851 2007-01-18  Mike Stump  <mrs@apple.com>
18852
18853         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
18854         error.
18855
18856 2007-01-18  Michael Meissner  <michael.meissner@amd.com>
18857
18858         * i386.c (ix86_compute_frame_layout): Make fprintf's in #if 0 code
18859         type correct.
18860
18861 2007-01-18  Jan Hubicka  <jh@suse.cz>
18862
18863         * tree-ssa-operands.c (vop_free_bucket_size): Never return value
18864         greater than NUM_VOP_FREE_BUCKETS.
18865
18866 2007-01-18  Daniel Berlin  <dberlin@dberlin.org>
18867
18868         * tree-ssa-structalias.c: Update comments.
18869         (ptabitmap_obstack): Removed.
18870         (pta_obstack): New.
18871         (oldpta_obstack): Ditto.
18872         (stats): Add a few members.
18873         (struct variable_info): Remove node, complex, address_taken, and
18874         indirect_target members. Add oldsolution member.
18875         (new_var_info): Do not initialize removed members.
18876         (constraint_expr_type): Remove INCLUDES.
18877         (constraint_graph): Add size, implicit_preds, rep,
18878         indirect_cycles, eq_rep, label, direct_nodes, and complex members.
18879         (FIRST_REF_NODE): New macro.
18880         (LAST_REF_NODE): Ditto.
18881         (FIRST_ADDR_NODE): Ditto.
18882         (find): New function.
18883         (unite): Ditto.
18884         (dump_constraint): Do not handle INCLUDES.
18885         (insert_into_complex): Do not insert duplicate constraints.
18886         (condense_varmap_nodes): Renamed and rewritten into ...
18887         (merge_node_constraints): This. Also fix bug in handling of
18888         offseted copy constraints.
18889         (clear_edges_for_node): No longer need to deal with preds at all,
18890         or removing associated preds/succs.
18891         (merge_graph_nodes): Deal with indirect_cycles.
18892         Don't deal with predecessors.
18893         (add_implicit_graph_edge): New function.
18894         (add_pred_graph_edge): Ditto.
18895         (add_graph_edge): Don't deal with predecessors.
18896         (build_constraint_graph): Removed.
18897         (build_pred_graph): New function.
18898         (build_succ_graph): Ditto.
18899         (struct scc_info): Removed in_component. Added roots, dfs, and
18900         node_mapping. Remove visited_index, unification_queue.
18901         (scc_visit): Deal with union-find we do now.
18902         Deal with cycles with REF nodes.
18903         (collapse_nodes): Renamed and rewritten to ...
18904         (unify_nodes): This.
18905         (process_unification_queue): Removed.
18906         (topo_visit): Cleanup
18907         (do_da_constraint): Use find.
18908         (do_sd_constraint): Ditto.
18909         (do_ds_constraint): Ditto.
18910         (do_complex_constraint): Ditto.
18911         (init_scc_info): Update for removed and added members.
18912         (find_and_collapse_graph_cycles): Renamed and rewritten into ...
18913         (find_indirect_cycles): This.
18914         (equivalence_class): New variable.
18915         (label_visit): New function.
18916         (perform_variable_substitution): Rewritten.
18917         (free_var_substitution_info): New function.
18918         (find_equivalent_node): Ditto.
18919         (move_complex_constraints): Ditto.
18920         (eliminate_indirect_cycles): Ditto.
18921         (solve_graph): Only propagate changed bits.
18922         Use indirect cycle elimination.
18923         Use find.
18924         (tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
18925         (tree_id_eq): Renamed to ...
18926         (tree_vi_eq): This. Update for member change
18927         (insert_id_for_tree): Renamed and rewritten to ...
18928         (insert_vi_for_tree): This.
18929         (lookup_id_for_tree): Renamed and rewritten to ...
18930         (lookup_vi_for_tree): This.
18931         (get_id_for_tree): Renamed and rewritten to ...
18932         (get_vi_for_tree): Ditto.
18933         (get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
18934         (process_constraint): Don't handle INCLUDES.
18935         Remove special ADDRESSOF case.
18936         (find_func_aliases): Rewrite to use vi functions instead of id
18937         ones.
18938         (create_function_info_for): Ditto.
18939         (create_variable_info_for): Ditto.
18940         (intra_create_variable_infos): Ditto.
18941         (merge_smts_into): Ditto.
18942         (find_what_p_points_to): Ditto.
18943         (init_base_vars): Ditto.
18944         (init_alias_vars): Ditto.
18945         (remove_preds_and_fake_succs): New function.
18946         (dump_sa_points_to_info): Dump new stats.
18947         (dump_solution_for_var): Use find.
18948         (set_used_smts): Fix formatting.
18949         (compute_points_to_sets): Updated for new functions.
18950         (ipa_pta_execute): Ditto.
18951
18952 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
18953             Richard Sandiford  <richard@codesourcery.com>
18954
18955         * doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
18956         parallels.
18957         * calls.c (expand_call): If the return value is a PARALLEL,
18958         extract its first member.
18959         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
18960         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
18961         use FUNCTION_EXTRA_EPILOGUE.
18962         (m68k_function_value): Return a PARALLEL if the return value
18963         is of a pointer type.
18964         * config/m68k/netbsd-elf.h (current_function_returns_pointer)
18965         (FUNCTION_EXTRA_EPILOGUE): Remove.
18966         * config/m68k/m68k.md (D0_REG): New constant.
18967
18968 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
18969
18970         * config/m68k/m68k.c (m68k_output_function_epilogue): Don't
18971         output a NOP for empty epilogues.
18972
18973 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
18974
18975         * config/m68k/m68k.c (m68k_use_return_insn): Update comments
18976         before function.  Extend register save check to include all
18977         registers, not just integer ones.
18978
18979 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
18980
18981         * config/m68k/m68k-protos.h (use_return_insn): Rename to...
18982         (m68k_use_return_insn): ...this.
18983         * config/m68k/m68k.h (USE_RETURN_INSN): Delete.
18984         * config/m68k/m68k.c (use_return_insn): Rename to...
18985         (m68k_use_return_insn): ...this.
18986         * config/m68k/m68k.md (return): Use m68k_use_return_insn instead
18987         of USE_RETURN_INSN.
18988
18989 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
18990
18991         * config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
18992         nearest even, fix denormal rounding overflow.
18993
18994 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
18995
18996         * config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
18997         f%$smove and f%$move.
18998         (movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
18999         (extendsfdf2_cf): Use fdmove instead of f%&move.
19000         (truncdfsf2_cf): Use fsmove instead of f%$smove.
19001         (add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
19002
19003 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19004
19005         * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
19006         GPR<-GPR moves.
19007
19008 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19009
19010         * real.h (real_format): Add a canonical_nan_lsbs_set field.
19011         (coldfire_single_format): Declare.
19012         (coldfire_double_format): Likewise.
19013         * real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
19014         of qnan_msb_set to determine the lower bits of a canonical
19015         NaN significand.
19016         (encode_ieee_double): Likewise.
19017         (encode_ieee_quad): Likewise.
19018         (ieee_single_format): Initialize canonical_nan_lsbs_set.
19019         (mips_single_format): Likewise.
19020         (ieee_double_format): Likewise.
19021         (mips_double_format): Likewise.
19022         (ieee_extended_motorola_format): Likewise.
19023         (ieee_extended_intel_96_format): Likewise.
19024         (ieee_extended_intel_128_format): Likewise.
19025         (ieee_extended_intel_96_round_53_format): Likewise.
19026         (ibm_extended_format): Likewise.
19027         (mips_extended_format): Likewise.
19028         (ieee_quad_format): Likewise.
19029         (mips_quad_format): Likewise.
19030         (vax_f_format): Likewise.
19031         (vax_d_format): Likewise.
19032         (vax_g_format): Likewise.
19033         (i370_single_format): Likewise.
19034         (i370_double_format): Likewise.
19035         (decimal_single_format): Likewise.
19036         (decimal_double_format): Likewise.
19037         (decimal_quad_format): Likewise.
19038         (c4x_single_format): Likewise.
19039         (c4x_extended_format): Likewise.
19040         (real_internal_format): Likewise.
19041         (coldfire_single_format): New real_format.
19042         (coldfire_double_format): Likewise.
19043         * config/pdp11/pdp11.c (pdp11_f_format): Initialize
19044         canonical_nan_lsbs_set.
19045         (pdp11_d_format): Likewise.
19046         * config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
19047         if TARGET_COLDFIRE_CPU.
19048
19049 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19050
19051         * config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
19052         (output_call, m68k_legitimize_call_address): Declare.
19053         * config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
19054         parenthesees.  Add support for a 'W' constraint.
19055         (LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
19056         (PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
19057         (m68k_symbolic_call, m68k_symbolic_jump): Declare.
19058         * config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
19059         variables.
19060         (override_options): Initialize them.  Do not set flag_no_function_cse
19061         for TARGET_ID_SHARED_LIBRARY.
19062         (m68k_output_pic_call): Delete.
19063         (m68k_legitimize_call_address): New function.
19064         (print_operand): Remove the %o prefix.  Handle the %p prefix.
19065         (output_call): New function.
19066         (m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
19067         target address from the GOT if symbolic jumps are not allowed.
19068         * config/m68k/m68k.md (call, general_operand): Do not set
19069         SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
19070         Merge separate flag_pic and !flag_pic define_insns into...
19071         (*call, *call_value): ...these new patterns.  Match the address
19072         rather than the containing MEM and require it to be a call_operand.
19073         Use output_call to generate the asm template.
19074         * config/m68k/predicates.md (const_call_operand): New predicate.
19075         (call_operand): Likewise.
19076
19077 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
19078
19079         * config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
19080         (STACK_GROWS_DOWNWARD): Define to 1.
19081         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
19082         comments, emphasizing that these values are only defaults.
19083         * config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
19084         * config/m68k/m68k.c (const_method): Remove trailing whitespace.
19085
19086 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19087
19088         * config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.
19089
19090 2007-01-18  Kazu Hirata  <kazu@codesourcery.com>
19091             Richard Sandiford  <richard@codesourcery.com>
19092
19093         * config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
19094         (FP_REGNO_P): New macros.
19095         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
19096         (REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
19097         (EH_RETURN_STACKADJ_RTX): Use A0_REG.
19098         * config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.
19099
19100 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
19101
19102         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
19103         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
19104         to $tmake_file.
19105         * config/m68k/t-floatlib: New file, extracting common code from...
19106         * config/m68k/t-m68kbare, config/m68k/t-m68kelf,
19107         * config/m68k/t-uclinux: Here.
19108         * config/m68k/fpgnulib.c: Do not compile extendeed precision
19109         routines on ColdFire targets.
19110
19111 2007-01-18  Nathan Sidwell  <nathan@codesourcery.com>
19112
19113         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
19114         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
19115         (m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
19116         (m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
19117         explicitly set MOTOROLA to 1.
19118         * config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.
19119
19120 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19121             Nathan Sidwell  <nathan@codesourcery.com>
19122
19123         * config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
19124         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
19125         * config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
19126         * config/m68k/m68020-elf.h (LIB_SPEC): Delete.
19127         * config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
19128         * config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
19129         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
19130         (NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
19131         (BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
19132         * config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
19133         * config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
19134         (WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
19135         (TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
19136         (DBX_REGISTER_NUMBER): Delete.
19137         * config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
19138         (PCC_STATIC_STRUCT_RETURN): Don't undefine.
19139         * config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.
19140
19141 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19142
19143         * config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
19144         * config/flat.h: New file.
19145         * crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
19146         OBJECT_FORMAT_FLAT.
19147         * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
19148         indirect references for -msep-data or -mid-shared-library.
19149         Do not use PC-relative code addresses either.
19150         * config/m68k/m68k.c (override_options): Restrict -fPIC error
19151         to -mpcrel.
19152         * config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
19153         for shared libraries and crt1.o for executables.  Use crti.o and
19154         crtbegin.o.
19155         (ENDFILE_SPEC): Use crtend.o and crtn.o.
19156         (LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
19157         Do not add -elf2flt or -shared-lib-id options here.
19158         (LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
19159         Pass -shared-lib-id if -mid-shared-library, taking the library
19160         identifier from -mshared-library-id if given, otherwise
19161         defaulting to 0.
19162         (EH_FRAME_IN_DATA_SECTION): Do not undefine.
19163         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
19164         (TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
19165         and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
19166         (DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
19167         * config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
19168         and crtend.o.
19169         * config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
19170         jump sequence for ISA A and ISA A+.
19171         (PICJUMP): Likewise.
19172
19173 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19174
19175         * config.gcc (m68k-*-uclinux*): Base the port on the common
19176         and m68k GNU/Linux files rather than on the generic ELF ones.
19177         * config/m68k/uclinux.h (TARGET_VERSION): Override.
19178         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
19179
19180 2007-01-18  Julian Brown  <julian@codesourcery.com>
19181             Richard Sandiford  <richard@codesourcery.com>
19182
19183         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
19184         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
19185         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
19186         before redefining.
19187         * config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
19188         80 unconditionally.
19189         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
19190
19191 2007-01-18  Richard Sandiford  <richard@codesourcery.com>
19192
19193         * doc/install.texi: Document m68k-uclinuxoldabi.
19194         * config.gcc (m68k-*-uclinuxoldabi): New configuration.
19195         * config/m68k/uclinux-oldabi.h: New file, copied from
19196         config/m68k/uclinux.h.
19197
19198 2007-01-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
19199
19200         * config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
19201         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
19202         (m32r_compute_frame_size): Use unsigned for regno.
19203         (m32r_reload_lr): Use gen_frame_mem.
19204         (pop): New.
19205         (m32r_output_function_epilogue): Don't output the function epilogue
19206         textually here.
19207         (m32r_expand_epilogue): New.
19208         (direct_return): Return false if the function has the interrupt
19209         attribute.
19210         (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
19211         * config/m32r/m32r.md (epilogue): New expander.
19212         (return_lr, return_rte): New insns.
19213         (return): Make it expander.
19214         (return_normal): New expander.
19215
19216 2007-01-18  Josh Conner  <jconner@apple.com>
19217
19218         PR target/30485
19219         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
19220         support for UNLE, UNLT, UNGE, and UNGT.
19221
19222 2007-01-18  Jan Hubicka  <jh@suse.cz>
19223
19224         * tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
19225         * tree-tailcall (add_virtual_phis): Likewise.
19226         (optimize_tail_call): Return TODOs.
19227         (execute_tail_calls): Return TODOs.
19228         * tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
19229         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
19230         changed.
19231         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
19232         Cleanup cfg using TODO.
19233         * tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
19234         * passes.c (execute_function_todo): When cleanup did something, remove
19235         unused locals.
19236         * tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
19237         (make_edges): Don't cleanup_cfg.
19238
19239 2007-01-18  Uros Bizjak  <ubizjak@gmail.com>
19240
19241         * reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
19242         UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
19243         operate on the top of stack.
19244         [UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
19245         register handling of instructions that output to the second
19246         stack slot.
19247         [UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
19248         (move_for_stack_reg): Special-case check for dead destination
19249         stack slot for constant load of 1.0 inside UNSPEC_TAN.
19250
19251         * config/i386/i386.md (UNSPEC_TAN): New constant.
19252         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
19253         (fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
19254         to correctly model move of constant 1.0 to top stack slot.
19255         (*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
19256         (unnamed peephole2 pattern): Remove corresponding peephole2
19257         pattern that optimizes tan insn and loading of constant 1.0.
19258         (tanxf2): Use fptanxf4_i387.
19259         (tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
19260         patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
19261         and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
19262         disable patterns for SSE math.
19263         (sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
19264         (fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.
19265
19266 2007-01-18  Dirk Mueller  <dmueller@suse.de>
19267             Richard Guenther <rguenther@suse.de>
19268
19269         PR diagnostic/8268
19270         * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
19271         * common.opt (Warray-bounds): Add new warning option.
19272         * c-opts.c (c_common_handle_option): Define -Warray-bounds
19273         if -Wall is given.
19274         * Makefile.in: make tree-vrp.o depend on toplev.h
19275         * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
19276         is enabled.
19277         (check_array_refs, check_array_bounds, check_array_ref): New.
19278
19279 2007-01-18  Jan Hubicka  <jh@suse.cz>
19280
19281         * tree-ssa-ccp.c (ccp_finalize): Return if something changed.
19282         (execute_ssa_ccp): Return flags conditionally.
19283         * tree-ssa-propagate.c (substitue_and_fold): Return if something was
19284         changed.
19285         * tree-ssa-propagate.h (substitute_and_fold): Update prototype.
19286
19287 2007-01-18  Steven Bosscher  <steven@gcc.gnu.org>
19288
19289         * cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
19290         the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
19291
19292         * Makefile.c (GTFILES): Add cfglayout.h.
19293         * gengtype.c (open_base_files): Likewise.
19294         * cfglayout.c (cfg_layout_function_footer,
19295         cfg_layout_function_header) Reindent to make gengtype happy.
19296         * cfglayout.h (cfg_layout_function_footer,
19297         cfg_layout_function_header): Add GTY(()) marker.
19298
19299         * ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.
19300
19301 2007-01-18  Ben Elliston  <bje@au.ibm.com>
19302
19303         * genautomata.c (write_automata): Include xstrerror output in the
19304         error message if writing the DFA description file fails.
19305
19306 2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>
19307
19308         * config/mips/mips-protos.h (mips_output_external): Make it
19309         return void.
19310         * config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
19311         * config/mips/mips.c (irix_output_external_libcall): Likewise.
19312         (extern_list): Likewise.
19313         (extern_head): Likewise.
19314         (TARGET_ASM_FILE_END): Likewise.
19315         (mips_file_end): Likewise.
19316         (mips_output_external): Rewritten.
19317
19318 2007-01-18  Ben Elliston  <bje@au.ibm.com>
19319
19320         * genpreds.c (write_insn_preds_c): Only write out the function
19321         body for regclass_for_constraint if we have register constraints.
19322
19323 2007-01-17  Tom Tromey  <tromey@redhat.com>
19324
19325         * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
19326         * doc/install.texi (Testing): Use sourceware.org.
19327         (Binaries): Likewise.
19328         (Specific): Likewise.
19329         * doc/contrib.texi (Contributors): Use sourceware.org.
19330
19331 2007-01-17  Anatoly Sokolov <aesok@post.ru>
19332
19333         * config/avr/avr.h (AVR_HAVE_LPMX): New macro.
19334         (AVR_ENHANCED): Rename to ...
19335         (AVR_HAVE_MUL): ... new.
19336         (avr_enhanced_p): Rename to ...
19337         (avr_have_mul_p): ... new.
19338         (TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of
19339         'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
19340         * config/avr/avr.c (avr_enhanced_p): Rename to ...
19341         (avr_have_mul_p): ... new.
19342         (base_arch_s): Rename 'enhanced' to 'have_mul'.
19343         (avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
19344         'avr_enhanced_p' and 'enhanced'.
19345         (ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use
19346         AVR_HAVE_MUL instead of AVR_ENHANCED.
19347         * avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
19348         (mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3,
19349         *mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL
19350         instead of AVR_ENHANCED.
19351         (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
19352         * libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
19353         (__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.
19354
19355 2007-01-17  Ian Lance Taylor  <iant@google.com>
19356
19357         * vec.h (VEC_reserve_exact): Define.
19358         (vec_gc_p_reserve_exact): Declare.
19359         (vec_gc_o_reserve_exact): Declare.
19360         (vec_heap_p_reserve_exact): Declare.
19361         (vec_heap_o_reserve_exact): Declare.
19362         (VEC_OP (T,A,reserve_exact)): New static inline function, three
19363         versions.
19364         (VEC_OP (T,A,reserve)) [all versions]: Remove handling of
19365         negative parameter.
19366         (VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
19367         (VEC_OP (T,A,copy)) [all versions]: Likewise.
19368         (VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
19369         * vec.c (calculate_allocation): Add exact parameter.  Change all
19370         callers.
19371         (vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
19372         (vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
19373         (vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
19374         (vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
19375         (vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
19376         (vec_heap_p_reserve_exact): New function.
19377         (vec_heap_o_reserve_exact): New function.
19378
19379 2007-01-17  Jan Hubicka  <jh@suse.cz>
19380
19381         * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
19382
19383 2007-01-17  Eric Christopher  <echristo@apple.com>
19384
19385         * config.gcc: Support core2 processor.
19386
19387 2007-01-16  Jan Hubicka  <jh@suse.cz>
19388
19389         * tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
19390         the names, just unlink the chain so we don't crash on dangling
19391         pointers
19392         to dead SSA names.
19393
19394 2007-01-16  Jan Hubicka  <jh@suse.cz>
19395
19396         * cgraph.h (cgraph_decide_inlining_incrementally): Kill.
19397         * tree-pass.h: Reorder to make IPA passes appear toegher.
19398         (pass_early_inline, pass_inline_parameters, pass_apply_inline):
19399         Declare.
19400         * cgraphunit.c (cgraph_finalize_function): Do not compute inling
19401         parameters, do not call early inliner.
19402         * ipa-inline.c: Update comments.  Include tree-flow.h
19403         (cgraph_decide_inlining): Do not compute inlining parameters.
19404         (cgraph_decide_inlining_incrementally): Return TODOs; assume to
19405         be called with function context set up.
19406         (pass_ipa_inline): Remove unreachable functions before pass.
19407         (cgraph_early_inlining): Simplify assuming to be called from the
19408         PM as local pass.
19409         (pass_early_inline): New pass.
19410         (cgraph_gate_ipa_early_inlining): New gate.
19411         (pass_ipa_early_inline): Turn into simple wrapper.
19412         (compute_inline_parameters): New function.
19413         (gate_inline_passes): New gate.
19414         (pass_inline_parameters): New pass.
19415         (apply_inline): Move here from tree-optimize.c
19416         (pass_apply_inline): New pass.
19417         * ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
19418         transforming.
19419         * tree-inline.c (optimize_inline_calls): Return TODOs rather than
19420         doing them by hand.
19421         (tree_function_versioning): Do not allocate dummy struct function.
19422         * tree-inline.h (optimize_inline_calls): Update prototype.
19423         * tree-optimize.c (execute_fixup_cfg): Export.
19424         (pass_fixup_cfg): Remove
19425         (tree_rest_of_compilation): Do not apply inlines.
19426         * tree-flow.h (execute_fixup_cfg): Declare.
19427         * Makefile.in (gt-passes.c): New.
19428         * passes.c: Include gt-passes.h
19429         (init_optimization_passes): New passes.
19430         (nnodes, order): New static vars.
19431         (do_per_function_toporder): New function.
19432         (execute_one_pass): Dump current pass here.
19433         (execute_ipa_pass_list): Don't dump current pass here.
19434
19435 2007-01-16  Janis Johnson  <janis187@us.ibm.com>
19436
19437         * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
19438         (DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
19439
19440 2007-01-16  David Edelsohn  <edelsohn@gnu.org>
19441
19442         * config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
19443         (strong_alias): Define.
19444         (__gcc_qmul): Provide non-FMA for soft-float.
19445         (__gcc_qdiv): Same.
19446         (__gcc_qneg): New.
19447         (__gcc_qeq): New.
19448         (__gcc_qle): New.
19449         (__gcc_qge): New.
19450         (__gcc_qunord): New.
19451         (__gcc_stoq): New.
19452         (__gcc_dtoq): New.
19453         (__gcc_qtos): New.
19454         (__gcc_qtod): New.
19455         (__gcc_qtoi): New.
19456         (__gcc_qtou): New.
19457         (__gcc_itoq): New.
19458         (__gcc_utoq): New.
19459         (fmsub): New.
19460         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
19461         soft-float functions.
19462         * config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
19463         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
19464         about long double soft float.
19465
19466 2007-01-16  Dorit Nuzman  <dorit@il.ibm.com>
19467             Tehila Meyzels  <tehila@il.ibm.com>
19468
19469         * tree-vectorizer.h (is_pattern_stmt_p): New.
19470         * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
19471         formatting (tabs instead of spaces). Cleanup and clarify setting
19472         of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
19473         * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
19474         (vectorizable_type_demotion): Check that types are integral.
19475         (vectorizable_type_promotion): Likewise.
19476         (vectorizable_store): Fix typo.  Eliminate new-line at end of
19477         comments.
19478
19479 2007-01-16  Jan Hubicka  <jh@suse.cz>
19480
19481         * tree-ssanames.c (release_dead_ssa_names): Remove invalidated
19482         cgraph edges too.
19483
19484 2007-01-15  Eric Christopher  <echristo@apple.com>
19485
19486         * ifcvt.c: Include vec.h, vecprim.h.
19487         (check_cond_move_block): New argument regs.
19488         Reorganize. Add registers used to regs.
19489         (cond_move_process_if_block): Use regs set above as
19490         loop bounds.
19491
19492 2007-01-15  Eric Christopher  <echristo@apple.com>
19493
19494         * config/darwin.h: Update copyright.
19495         (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
19496         (LINK_COMMAND_SPEC): Add -u.
19497         (LINK_SPEC): Fix umbrella for above.
19498
19499 2007-01-15  Joseph S. Myers  <joseph@codesourcery.com>
19500
19501         * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
19502         glibc CVS.
19503
19504 2007-01-15  Tom Tromey  <tromey@redhat.com>
19505
19506         * doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
19507         * doc/install.texi (Testing): Don't mention jacks.
19508         (Configuration): Document --enable-java-maintainer-mode.  Move
19509         --with-java-home to libgcj-specific section.  Document
19510         --with-ecj-jar.
19511         (Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
19512
19513 2007-01-15  Jan Hubicka  <jh@suse.cz>
19514
19515         * tree-ssa-dce.c (DCE_TODOs): New.
19516         (propagate_necessity): Return if something changed.
19517         (eliminate_unnecessary_stmts): Likewise.
19518         (perform_tree_ssa_dce): Return TODO flags when needed.
19519         (pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.
19520
19521 2007-01-15  Uros Bizjak  <ubizjak@gmail.com>
19522
19523         * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
19524         (fyl2x_extend<mode>xf3_i387): New insn pattern.
19525         (log<mode>2): Rename from logsf2 and logdf2 and macroize insn
19526         patterns using X87MODEF12 mode macro.  Extend operand 1
19527         to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
19528         (log10<mode>2): Ditto.
19529         (log2<mode>2): Ditto.
19530         (log1p<mode>2): Ditto.
19531         (logb<mode>2): Ditto.
19532         (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
19533         (fyl2xp1_extend<mode>xf3_i387): New insn pattern.
19534         (*fxtractxf3_i387): Rename from *fxtractxf3.
19535         (fxtract_extend<mode>xf3_i387): New insn pattern.
19536         (ilogbsi2): Use match_dup 3, not match_operand:XF 3.
19537         * config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
19538         and gen_fyl2xxf3_i387().
19539
19540 2007-01-14  Zdenek Dvorak <dvorakz@suse.cz>
19541
19542         * loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
19543         * cfgloopmanip.c (fix_loop_placement): Made static.  Use
19544         get_loop_exit_edges.  Changed return type to bool.
19545         * cfgloop.h (fix_loop_placement): Declaration removed.
19546
19547 2007-01-14  Dorit Nuzman  <dorit@il.ibm.com>
19548
19549         * param.h (MIN_VECT_LOOP_BOUND): New.
19550         * params.def (MIN_VECT_LOOP_BOUND): New.
19551         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
19552         argument - minimum threshold for number of iterations.
19553         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
19554         argument to declaration.
19555         * tree-vect-analyze.c (vect_analyze_operations): Check value of
19556         MIN_VECT_LOOP_BOUND.
19557         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
19558         slpeel_tree_peel_loop_to_edge with additional argument.
19559         (vect_do_peeling_for_alignment): Likewise.
19560         * doc/invoke.texi (min-vect-loop-bound): Document new param option.
19561
19562 2007-01-14  Uros Bizjak  <ubizjak@gmail.com>
19563
19564         PR target/30413
19565         * config/i386/i386.c (print_operand) ['z']: Output 'b' for
19566         operands of size 1.
19567
19568 2007-01-14  Jan Hubicka  <jh@suse.cz>
19569
19570         * tree-dfa.c (remove_referenced_var): New function.
19571         * tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
19572         prune referenced vars list too.
19573         * tree-flow.h (remove_referenced_var): Declare.
19574
19575 2007-01-14  Jan Hubicka  <jh@suse.cz>
19576
19577         * tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
19578         separately.
19579         (remove_stmt_from_eh_region_fn): Do not remove call_exprs.
19580         (verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
19581         * except.h (verify_eh_throw_table_statements): Kill prototype.
19582         * cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
19583         into call exrepssions.
19584         * tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
19585         eh trhow verifier.
19586         * tree-cfg.c: Include pointer-set.h.
19587         (verify_node_sharing): Work on pointer set.
19588         (verify_eh_throw_stmt_node): New.
19589         (verify_stmts): Use pointers sets, verify throw_stmt.
19590
19591 2007-01-13  Zdenek Dvorak <dvorakz@suse.cz>
19592
19593         * ipa-reference.c (analyze_function): Consider also addresses taken
19594         in phi nodes.
19595
19596 2007-01-12  Roger Sayle  <roger@eyesopen.com>
19597
19598         * c-typeck.c (null_pointer_constant_p): Replace use of
19599         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
19600         (build_c_cast): Likewise.
19601
19602 2007-01-12  Roger Sayle  <roger@eyesopen.com>
19603
19604         * tree.h (force_fit_type_double): Remove unused final argument.
19605         * c-common.c (constant_expression_warning): Replace use of
19606         TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
19607         (convert_and_check): Likewise.
19608         (shorten_compare): Update call to force_fit_type_double.
19609         (c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
19610         * convert.c (convert_to_pointer): Update call to
19611         force_fit_type_double.
19612         * fold-const.c (force_fit_type_double): Remove overflowed_const
19613         argument.
19614         (int_const_binop, fold_convert_const_int_from_int,
19615         fold_convert_const_int_from_real, fold_div_compare,
19616         fold_sign_changed_comparison, fold_unary, fold_negate_const,
19617         fold_abs_const, fold_not_const): Remove the final argument from
19618         calls to force_fit_type_double.
19619
19620 2007-01-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19621
19622         * configure.ac: Set insn to "nop" for spu-*-* also.
19623         * configure: Regenerate.
19624
19625 2007-01-12  Olga Golovanevsky  <olga@il.ibm.com>
19626
19627         * builtins.def : Add BUILT_IN_FREE.
19628
19629 2007-01-12  Jan Hubicka  <jh@suse.cz>
19630
19631         PR tree-optimization/30443
19632         * tree-inline.c (tree_function_versioning): Do not optimize when
19633         cloning for inlining.
19634
19635 2007-01-12  Zdenek Dvorak <dvorakz@suse.cz>
19636
19637         * doc/loop.texi: Document recording of loop exits.
19638         * cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
19639         (update_single_exits_after_duplication,
19640         update_single_exit_for_duplicated_loop,
19641         update_single_exit_for_duplicated_loops): Removed.
19642         (duplicate_loop_to_header_edge): Do not call
19643         update_single_exits_after_duplication and
19644         update_single_exit_for_duplicated_loops.
19645         (loop_version): Do not update single_exit information.
19646         (fix_loop_structure): Use record_loop_exits instead of
19647         mark_single_exit_loops.
19648         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
19649         the lists of loop exits.
19650         * cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
19651         split_edge, merge_blocks): Update the lists of loop exits.
19652         * modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
19653         loop_optimizer_init.
19654         * loop-init.c (loop_optimizer_init): Call record_loop_exits instead
19655         of mark_single_exit_loops.
19656         (loop_optimizer_finalize): Call release_recorded_exits.
19657         * tree-ssa-loop.c (tree_loop_optimizer_init): Pass
19658         LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
19659         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
19660         update single exit information.
19661         * lambda-code.c (perfect_nestify): Ditto.
19662         * cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
19663         (mark_single_exit_loops): Removed.
19664         (alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
19665         get_exit_descriptions, rescan_loop_exit, record_loop_exits,
19666         dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
19667         functions.
19668         (get_loop_exit_edges, single_exit): Use recorded exit lists.
19669         (add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
19670         (verify_loop_structure): Verify consistency of the exit lists.
19671         (flow_loops_find): Use alloc_loop.  Initialize exits hash.
19672         (set_single_exit): Removed.
19673         * cfgloop.h (struct loop_exit): New function.
19674         (struct loop): single_exit_ field replaced by exits field.
19675         (LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by
19676         LOOPS_HAVE_RECORDED_EXITS.
19677         (struct loops): Added exits hash.
19678         (mark_single_exit_loops, set_single_exit): Declaration removed.
19679         (release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.
19680
19681 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19682
19683         * doc/invoke.texi: Avoid use of @headitem.
19684
19685 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19686
19687         * cse.c (cse_insn): Move HAVE_CC0 code after declarations.
19688
19689 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19690
19691         * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
19692         list of targets.
19693
19694 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
19695             Richard Sandiford  <richard@codesourcery.com>
19696
19697         * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
19698         * config/m68k/m68k.opt: Resort options.
19699         (mbitfield, mrtd, mshort): Remove RejectNegative properties.
19700
19701 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
19702             Richard Sandiford  <richard@codesourcery.com>
19703
19704         * doc/invoke.texi: Document the macros that are defined by
19705         m68k's -mtune and -mhard-float options.
19706         * config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
19707         (m68k_cpp_cpu_family): Likewise.
19708         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
19709         of __ucfv*__ macros.  Define __mcffpu__ if generating code for
19710         ColdFire FPUs.  Define __mcf_cpu_* and __mcf_family_* macros.
19711         * config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
19712         (m68k_cpp_cpu_family): Likewise.
19713
19714 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19715
19716         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
19717         macros besides mc68000 as tuning macros.  Use a switch statement
19718         to set them and mcpu32.
19719
19720 2007-01-12  Julian Brown  <julian@codesourcery.com>
19721
19722         * config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
19723         (TARGET_68040_ONLY): Rename to...
19724         (TARGET_68040): ...this.
19725         * config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
19726         * config/m68k/m68k.md: Likewise.
19727
19728 2007-01-12  Julian Brown  <julian@codesourcery.com>
19729             Nathan Sidwell  <nathan@codesourcery.com>
19730             Richard Sandiford  <richard@codesourcery.com>
19731
19732         * config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
19733         the -mcpu= argument associated with the --with-cpu setting.
19734         Define M68K_DEFAULT_TUNE to the default -mtune= option,
19735         if different from the one implied by the -mcpu setting.
19736         Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
19737         using mcpu=FOO as the default CPU option.  Set target_cpu_default2.
19738         * doc/invoke.texi: Mention ColdFire in the introduction to the
19739         m68k options.  Document the new -march, -mcpu, -mtune, -mdiv,
19740         -mno-div and -mhard-float options.  Make -m68881 a synonym for
19741         -mhard-float.  Document the previously-undocumented -m5206e,
19742         -m528x, -m5307 and -m5407 options.  Tweak the existing option
19743         documentation for consistency.
19744         * doc/install.texi: Mention new --with-cpu arguments.
19745         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
19746         default CPU if neither -mcpu nor -march are specified.
19747         (ASM_CPU_SPEC): Pass down -mcpu and -march options.
19748         (TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
19749         TARGET_ISA*.  Set the legacy __mcf*__ cpu macros in the same way,
19750         using m68k_tune to decide between families that implement the
19751         same ISA.  Use m68k_tune to set __mcfv4e__.
19752         (FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
19753         (FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
19754         (FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
19755         (FL_ISA_C, FL_ISA_MMU): New macros.
19756         (MASK_COLDFIRE): Delete.
19757         (TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
19758         (TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
19759         (TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
19760         (TARGET_HARD_FLOAT): Do not define here.
19761         (TARGET_ISAAPLUS, TARGET_ISAC): New macros.
19762         (TUNE_68000): New macro.
19763         (TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
19764         (TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
19765         (TUNE_CFV2): Redefine in terms of m68k_tune.
19766         (uarch_type, target_device, fpu_type): New enums.
19767         (m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
19768         * config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
19769         (FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
19770         (FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
19771         (FL_FOR_isa_c): New macros.
19772         (m68k_isa): New enum.
19773         (m68k_target_selection): New structure.
19774         (all_devices, all_isas, all_microarchs): New tables.
19775         (m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
19776         (m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
19777         (MASK_ALL_CPU_BITS): Delete.
19778         (m68k_find_selection): New function.
19779         (m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
19780         Map the legacy target options to a combination of the new ones.
19781         (override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
19782         m68k_cpu_flags.  Handle M68K_DEFAULT_TUNE.  Use m68k_cpu_flags
19783         to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
19784         settings.
19785         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
19786         (m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
19787         properties.
19788         (m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
19789         (march=, mcpu=, mdiv, mhard-float, mtune=): New options.
19790         * config/m68k/m68k-devices.def: New file.
19791
19792 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19793             Nathan Sidwell  <nathan@codesourcery.com>
19794
19795         * config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
19796         (SUBTARGET_EXTRA_SPECS): New macros.
19797         * config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
19798         use %(asm_cpu_spec) instead.
19799         * config/m68k/m68k-none.h (ASM_SPEC): Likewise.
19800         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
19801         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
19802         (EXTRA_SPECS): Rename to...
19803         (SUBTARGET_EXTRA_SPECS): ...this.
19804
19805 2007-01-12  Nathan Sidwell  <nathan@codesourcery.com>
19806             Richard Sandiford  <richard@codesourcery.com>
19807             Julian Brown  <julian@codesourcery.com>
19808
19809         * config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
19810         (m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
19811         to the configuration's default CPU.
19812         (m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
19813         Remove default masks.
19814         (m680[012]0-*-*): Set the default with_cpu to the first part of
19815         the target name.
19816         (m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
19817         (m68k*-*-linux): Extend the --with-cpu handling to...
19818         (m680[012]0-*-*, m68k*-*-*): ...these configurations.  Allow m68000
19819         and m68010.  Don't set target_cpu_default2.
19820         * doc/install.texi: Document --with-cpu for m68k.
19821         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
19822         * config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
19823         (M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
19824         (M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
19825         (ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
19826         (ASM_SPEC): Remove use of %(asm_cpu_default).
19827         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
19828         * config/m68k/linux.h (TARGET_DEFAULT): Delete.
19829         (CPP_SPEC): Merge definitions.  Do not handle __HAVE_68881__ here.
19830         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
19831         __HAVE_FPU__ if TARGET_HARD_FLOAT.
19832         (TARGET_DEFAULT): Delete.
19833         (EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
19834         cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
19835         (CPP_CPU_SPEC): Delete.
19836         (TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
19837         the appropriate string.
19838         (CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
19839         (CPP_SPEC): Define to NETBSD_CPP_SPEC.
19840         (ASM_SPEC): Don't use %(asm_default_spec).
19841         * config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
19842         TARGET_DEFAULT and add MASK_68881.
19843         * config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.
19844
19845 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19846
19847         * config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
19848         (m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
19849         MASK_68010 alongside MASK_68020.
19850         * doc/invoke.texi: Document -m68010.
19851         * config/m68k/m68k.opt (m68010): New.
19852         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
19853         if TUNE_68010.
19854         (TUNE_68010): New macro.
19855         * config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
19856         (M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
19857         (M68K_CPU_m68332): Add MASK_68010.
19858         * config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
19859         fallback definition.
19860         * config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
19861         defines.
19862         * config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
19863         (m68k_handle_option): Handle OPT_m68010.  Add MASK_68010
19864         to all entries that use MASK_68020.
19865         (output_move_simode_const, output_move_himode, output_move_qimode)
19866         (output_move_stricthi, output_move_strictqi): Use TARGET_68010
19867         instead of TARGET_68020 to select clr behavior.  Remove comment
19868         about there being no TARGET_68010.
19869         * config/m68k/m68k.md: Likewise throughout.
19870
19871 2007-01-12  Julian Brown  <julian@codesourcery.com>
19872
19873         * config/m68k/m68k.h (TARGET_ISAB): New macro.
19874         * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
19875         * config/m68k/m68k.md: Likewise.
19876
19877 2007-01-12  Julian Brown  <julian@codesourcery.com>
19878
19879         * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
19880         TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.
19881
19882 2007-01-12  Julian Brown  <julian@codesourcery.com>
19883
19884         * config/m68k/m68k.h (TUNE_68040_60): New macro.
19885         * config/m68k/m68k.c (standard_68881_constant_p): Use it.
19886         * config/m68k/m68k.md: Likewise.
19887
19888 2007-01-12  Julian Brown  <julian@codesourcery.com>
19889             Richard Sandiford  <richard@codesourcery.com>
19890
19891         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
19892         instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
19893         TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
19894         TARGET_CPU32.
19895         (TARGET_CPU32): Rename to...
19896         (TUNE_CPU32): ...this.
19897         (TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
19898         (TUNE_CFV2): New macros.
19899         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
19900         remove conditions that are implied by TARGET_68020.
19901         * config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
19902         instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
19903         (m68k_output_function_epilogue): Likewise.
19904         (m68k_rtx_costs): Likewise.  Use TUNE_68060 instead of TARGET_68060
19905         and TUNE_CFV2 instead of TARGET_5200.  Use TUNE_68000_10 instead of
19906         "!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
19907         non-68000 timings.  Refactor multiplication and division costs.
19908         (output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
19909         TUNE_CPU32 instead of TARGET_CPU32.
19910         (standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
19911         and TUNE_68060 instead of TARGET_68060.
19912         * config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
19913         TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
19914         TARGET_CPU32.
19915         (movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
19916         && !TARGET_COLDFIRE" to choose between moveq and clr.
19917         Likewise in the unnamed movsf pattern.
19918         (ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
19919         "!TARGET_68020 && !TARGET_COLDFIRE".  Likewise the unnamed
19920         ashiftrt pattern.
19921
19922 2007-01-12  Richard Sandiford  <richard@codesourcery.com>
19923
19924         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
19925         of tabbing before backslashes.
19926
19927 2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19928
19929         * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
19930         * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
19931         (ASM_OUTPUT_INTERNAL_LABEL): Define.
19932
19933 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
19934
19935         * tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
19936         find_interesting_uses_cond.
19937         (find_interesting_uses_cond): Use extract_cond_operands.
19938         (rewrite_use_compare): Use extract_cond_operands and
19939         force_gimple_operand_bsi.  Do not call update_stmt.
19940         (determine_use_iv_cost_condition): Use extract_cond_operands.
19941         Return cheaper of using original bound and changing the exit bound.
19942
19943 2007-01-11  Zdenek Dvorak <dvorakz@suse.cz>
19944
19945         PR tree-optimization/29516
19946         * tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
19947         most_expensive_mult_to_index, addr_to_parts,
19948         create_mem_ref, maybe_fold_tmr): Make the type of
19949         fields of TARGET_MEM_REF sizetype.
19950         (move_fixed_address_to_symbol, move_pointer_to_base):
19951         New functions.
19952         * tree.def (TARGET_MEM_REF): Add comment on types of
19953         the operands.
19954
19955 2007-01-11  Joseph Myers  <joseph@codesourcery.com>
19956
19957         * c-common.c (vector_types_convertible_p): Treat opaque types as
19958         always convertible if they have the same size, but not otherwise.
19959
19960 2007-01-11  Steven Bosscher  <steven@gcc.gnu.org>
19961
19962         * ifcvt.c (struct noce_if_info): Add comments to the fields.
19963         Remove the b_unconditional field.
19964         (noce_try_sign_mask): Do not look at b_unconditional.
19965         (noce_process_if_block): Do not use merge_if_blocks.  Update
19966         the CFG here.  Do not set b_unconditional.
19967         (cond_move_process_if_block): Likewise.
19968         (find_cond_trap): Likewise.
19969         (check_cond_move_block): Require simple jump insns at the end
19970         of the basic block.
19971
19972 2007-01-11  Jan Hubicka  <jh@suse.cz>
19973
19974         PR tree-optimization/1046
19975         * tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
19976         when alias info is not ready.
19977         (pass_tail_recursion): Do not require aliasing.
19978         * tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
19979         * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
19980         * tree-ssa-copy.c (pass_copy_prop): Likewise.
19981         * tree-ssa-forwprop.c (pass_forwprop): Likewise.
19982         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
19983         * passes.c (init_optimization_passes): Execute rename_ssa_copies,
19984         ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
19985         before inlining.
19986         * tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
19987         When aliasing is not build, mark statement as volatile.
19988
19989 2007-01-11  Tom Tromey  <tromey@redhat.com>
19990
19991         PR preprocessor/15185, PR preprocessor/20989:
19992         * doc/cppopts.texi <-MT>: Update description of algorithm for
19993         computing default target.
19994         <-M, -MD>: Reword "basename" text.
19995
19996 2007-01-11  Roger Sayle  <roger@eyesopen.com>
19997
19998         * builtins.c (expand_builtin_pow, expand_builtin_powi,
19999         fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
20000         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
20001         fold_builtin_int_int_roundingfn, fold_builtin_bitop,
20002         fold_builtin_bswap, real_constp, fold_builtin_pow,
20003         fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
20004         do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
20005         uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
20006         * convert.c (convert_to_pointer): Likewise.
20007         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
20008         * fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
20009         const_binop, fold_convert_const_int_from_int,
20010         fold_convert_const_int_from_real,
20011         fold_convert_const_real_from_real, sign_bit_p,
20012         optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
20013         fold_sign_changed_comparison, fold_unary, fold_comparison,
20014         fold_binary, multiple_of_p, tree_Expr_non_zero_p,
20015         fold_negate_const, fold_abs_const, fold_not_const): Likewise.
20016         * print-tree.c (print_node_brief, print_node): Likewise.
20017         * stor-layout.c (place_field, layout_type): Likewise.
20018         * tree-chrec.c (keep_cast): Likewise.
20019         * tree.c (build_vector, build_real, build_real_from_int_cst,
20020         build_complex): Likewise.
20021
20022 2007-01-11  Roger Sayle  <roger@eyesopen.com>
20023
20024         * tree.h (TREE_CONSTANT_OVERFLOW): Obsolete.  For the time being,
20025         treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.
20026
20027 2007-01-11  Paolo Bonzini  <bonzini@gnu.org>
20028
20029         * configure.ac (strict1_warn): Rename to strict_warn.
20030         (WERROR, --enable-werror, symlink hacks, stage1_cflags,
20031         cc_set_by_configure, quoted_cc_set_by_configure,
20032         stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
20033         all_boot_languages, all_stagestuff): Remove.
20034         (target_list): Remove bootstrap targets.
20035         * Makefile.in (quickstrap): Unconditionally make a synonym of all.
20036         (BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
20037         REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
20038         SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
20039         VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
20040         STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
20041         stage1_copy, stage2_build, stage2_copy, stageprofile_build,
20042         stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
20043         stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
20044         bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
20045         bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
20046         unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
20047         restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
20048         cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
20049         *compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
20050         stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
20051         stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
20052         risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
20053         (ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
20054         (STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
20055         (mostlyclean): Adjust.
20056         (clean, distclean): Don't mention bootstrap stuff.
20057         * configure: Regenerate.
20058         * ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
20059         java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
20060         treelang/config-lang.in (stagestuff): Remove.
20061         * doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
20062         stageprofile, stagefeedback, stagestuff): Remove mention.
20063
20064 2007-01-11  Nick Clifton  <nickc@redhat.com>
20065
20066         * config/mcore/predicates.md (mcore_general_movesrc_operand):
20067         Accept CONSTs.
20068         (mcore_general_movdst_operand): Do not accept CONST_INTs.
20069         (mcore_arith_K_S_operand): Run the test for the S constraint not
20070         the test for the M constraint.
20071         (mcore_addsub_operand): Do not accept integer values that are
20072         larger than 32 bits.
20073         * config/mcore/mcore.md: Remove unused constraints from split.
20074         (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
20075         (addsi3): Likewise.
20076         (allocate_stack): Likewise.
20077         * config/mcore/mcore.c (mcore_print_operand): Restrict output of P
20078         operands to 32 bits.
20079         (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an
20080         INTVAL.
20081         (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
20082         mcore_const_ok_for_inline, mcore_const_trick_uses_not,
20083         try_constant_tricks, mcore_num_ones, mcore_num_zeros,
20084         mcore_output_bclri, mcore_output_andn, output_inline_const,
20085         mcore_output_move, mcore_output_movedouble): Likewise.
20086         (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
20087         (output_inline_const): Likewise.
20088         (output_inline_const): Fix format strings used in sprintf
20089         statements.
20090         * config/mcore/mcore-protos.h: Update prototypes for changed
20091         functions in mcore.c.
20092         * config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to
20093         HOST_WIDE_INT and not int.
20094         (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
20095         CONST_OK_FOR_N): Likewise.
20096         (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
20097         (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold
20098         an INTVAL.
20099
20100 2007-01-10  Jan Hubicka  <jh@suse.cz>
20101
20102         * tree-vrp.c (remove_range_assertions): Release defs.
20103         * tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
20104         * tree-ssa-dom.c (remove_stmt_or_phi): Likewise.
20105
20106 2007-01-10  Paul Brook  <paul@codesourcery.com>
20107
20108         * config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
20109         * config/arm/arm.md (mulsi3subsi): New insn.
20110
20111 2007-01-10  Zdenek Dvorak <dvorakz@suse.cz>
20112
20113         * tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
20114         (tree_transform_and_unroll_loop): New.
20115         * tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
20116         Declare.
20117
20118 2007-01-10  Robert Kennedy <jimbob@google.com>
20119
20120         * fold-const.c (fold_comparison): Fold comparisons like (x *
20121         1000 < 0) to (x < 0).
20122
20123 2007-01-10  Ian Lance Taylor  <iant@google.com>
20124
20125         * tree-pretty-print.c (dump_generic_node): Print parentheses when
20126         operands have the same priority.
20127
20128 2007-01-10  Tom Tromey  <tromey@redhat.com>
20129
20130         * fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
20131         (fold_binary): Likewise.
20132         * langhooks.c (lhd_can_use_bit_fields_p): Removed.
20133         * langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
20134         (LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
20135         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
20136         * langhooks.h (struct lang_hooks): Removed field
20137         'can_use_bit_fields_p'.
20138
20139 2007-01-10  Ralf Corsépius <ralf.corsepius@rtems.org>
20140
20141         * config/bfin/t-bfin, config/bfin/t-bfin-elf: Remove GCC_CFLAGS.
20142
20143 2007-01-10  Razya Ladelsky  <razya@il.ibm.com>
20144
20145         * function.c (get_last_funcdef_no): New function.
20146         * function.h (get_last_funcdef_no): Declare.
20147         * tree-inline.c (initialize_cfun): Add initialization.
20148         (tree_function_versioning): Cleanup.
20149
20150 2007-01-10  Jan Hubicka  <jh@suse.cz>
20151
20152         * tree-inline.c (setup_one_parameter): Do not propagate into abnormal
20153         PHIs.
20154
20155 2007-01-10  Sa Liu  <saliu@de.ibm.com>
20156             Ben Elliston  <bje@au.ibm.com>
20157
20158         * spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
20159         for SAVE_NONLOCAL and Pmode for any other save level.
20160         * spu-protos.h (spu_restore_stack_block): Declare.
20161         * spu.md (save_stack_block): Remove.
20162         (restore_stack_block): Call spu_restore_stack_block.
20163         * spu.c (spu_restore_stack_block): New function.
20164         (spu_expand_epilogue): Remove old comment.
20165
20166 2007-01-09  Zdenek Dvorak <dvorakz@suse.cz>
20167
20168         PR tree-optimization/30322
20169         * tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
20170         (cand_value_at): Return the value as aff_tree.
20171         (may_eliminate_iv): Convert the bound from aff_tree to tree.
20172         * tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
20173         aff_combination_mult): New functions.
20174         (aff_combination_add): Use aff_combination_add_cst.
20175         (aff_combination_convert): Allow conversions to a wider type.
20176         (tree_to_aff_combination): Handle BIT_NOT_EXPR.
20177         * tree-affine.h (aff_combination_mult): Declare.
20178
20179 2007-01-09  Carlos O'Donell  <carlos@codesourcery.com>
20180
20181         * doc/tm.texi: Update documentation to reflect reality of exec
20182         and start file search behaviours. Update copyright year.
20183         * doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
20184         header file directories.
20185
20186 2007-01-09  Uros Bizjak  <ubizjak@gmail.com>
20187
20188         * config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
20189         (*cosxf2): Rename to cosxf2_i387.
20190         (*sindf2, *sinsf2): Extend operand 1 to XFmode.  Macroize patterns
20191         using X87MODEF12 mode macro. Rename patterns to
20192         *sin_extend<mode>xf2_i387.  Use SSE_FLOAT_MODE_P to disable patterns
20193         for SSE math.
20194         (*cosdf2, *cossf2): Ditto.
20195         (sincosdf3, sincossf3): Ditto.  Rewrite corresponding splitters
20196         to match extended input operands.
20197         (sincos<mode>3): New expander.
20198         (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
20199         insn patterns and corresponding splitters.
20200
20201 2007-01-09  Kaz Kojima  <kkojima@gcc.gnu.org>
20202
20203         * config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
20204         (SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
20205
20206 2007-01-09  Nicolas Pitre  <nico@cam.org>
20207
20208         PR target/30173
20209         * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
20210
20211 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
20212
20213         * target.h (struct gcc_target): New field library_rtti_comdat.
20214         * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
20215         (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
20216         * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
20217         * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.
20218
20219 2007-01-08  Geoffrey Keating  <geoffk@apple.com>
20220
20221         * doc/invoke.texi (Optimize Options): Correct description of -O0.
20222
20223 2007-01-08  Richard Guenther  <rguenther@suse.de>
20224
20225         * tree.h (force_fit_type_double): Export.
20226         (force_fit_type): Remove.
20227         * fold-const.c (force_fit_type_double): New function.
20228         (force_fit_type): Remove.
20229         (int_const_binop): Use it.
20230         (fold_convert_const_int_from_int): Likewise.
20231         (fold_convert_const_int_from_real): Likewise.
20232         (fold_div_compare): Likewise.
20233         (fold_sign_changed_comparison): Likewise.
20234         (fold_unary): Likewise.
20235         (fold_negate_const): Likewise.
20236         (fold_abs_const): Likewise.
20237         (fold_not_const): Likewise.
20238         * c-common.c (shorten_compare): Use force_fit_type_double.
20239         * convert.c (convert_to_pointer): Likewise.
20240
20241 2007-01-08  Richard Guenther  <rguenther@suse.de>
20242
20243         * tree.h (build_int_cst_wide_type): Export.
20244         * tree.c (build_int_cst_wide_type): New function.
20245         (build_int_cst_wide): Fix comment.
20246         * builtins.c (fold_builtin_object_size): Use build_int_cst
20247         to build -1 or 0 of the correct type.  Use fit_double_type
20248         to check for overflow.
20249         * fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
20250         to build the mask.
20251         (decode_field_reference): Likewise.
20252         (all_ones_mask_p): Likewise.
20253         (native_interpret_int): Use build_int_cst_wide_type.
20254         (fold_binary): Use build_int_cst_type to build an all-ones
20255         value.
20256         * stor-layout.c (set_sizetype): Use build_int_cst_wide_type.
20257
20258 2007-01-08  Daniel Jacobowitz  <dan@codesourcery.com>
20259
20260         * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
20261
20262 2007-01-09  Ben Elliston  <bje@au.ibm.com>
20263
20264         * genautomata.c (STATS_OPTION): New option.
20265         (stats_flag): New flag.
20266         (gen_automata_option): Handle it.
20267         (initiate_automaton_gen): Ditto.
20268         (write_automata): Output statistics only if stats_flag is
20269         set. Likewise, output time statistics only if time_flag is set.
20270         * doc/md.texi (Processor pipeline description): Document new flag.
20271
20272 2007-01-08  Richard Guenther  <rguenther@suse.de>
20273
20274         * builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
20275         * tree.c (build_int_cst_type): Likewise.
20276         (size_in_bytes): Don't call force_fit_type on the result.
20277         (int_fits_type_p): Use fit_double_type.
20278         * fold-const.c (fit_double_type): New function.
20279         (force_fit_type): Use it.
20280         * tree.h (fit_double_type): Export.
20281
20282 2007-01-08  Jan Hubicka  <jh@suse.cz>
20283
20284         * tree-vectorizer.c (gate_increase_alignment): Fix return type.
20285         * ipa.c (function_and_variable_visibility): Fix return type.
20286
20287 2007-01-08  Richard Guenther  <rguenther@suse.de>
20288
20289         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
20290         of offset to build the index.
20291         * tree-pretty-print.c (dump_generic_node): Don't build negated
20292         const just for printing.
20293         * c-pretty-print.c (pp_c_integer_constant): Likewise.
20294         * builtins.c (fold_builtin_int_roundingfn): Check if result
20295         fits the type by using force_fit_type and comparing the result.
20296         * predict.c (predict_loops): Use compare_tree_int for comparison.
20297         * tree.c (build_int_cst): Fall back to integer_type_node for
20298         NULL_TREE type.
20299         (build_int_cst_wide): Assert type is non-null.
20300
20301 2007-01-08  Roberto Costa  <roberto.costa@st.com>
20302
20303         * tree-vrp.c (extract_range_from_cond_expr): New.
20304         (extract_range_from_expr): Handle COND_EXPR nodes used as expressions.
20305         * tree-ssa-ccp.c (get_maxval_strlen): Handle COND_EXPR nodes used
20306         as expressions.
20307         (fold_stmt): Bug fix, avoid infinite recursion when folding COND_EXPRs.
20308         * tree-ssa-forwprop.c (simplify_cond, forward_propagate_into_cond,
20309         tree_ssa_forward_propagate_single_use_vars): Handle COND_EXPR nodes
20310         used as expressions.
20311         * tree-object-size.c (cond_expr_object_size): New.
20312         (collect_object_sizes_for): Handle COND_EXPR nodes used as expressions.
20313
20314 2007-01-08  Jan Hubicka  <jh@suse.cz>
20315
20316         * tree-ssa-forwprop.c (forward_propagate_into_cond,
20317         tree_ssa_forward_propagate_single_use_va): Release defs of propagated
20318         statement.
20319
20320 2007-01-08  Richard Guenther  <rguenther@suse.de>
20321
20322         PR tree-optimization/23603
20323         * tree-vrp.c (set_value_range_to_truthvalue): New function.
20324         (extract_range_from_binary): Fall back to truthvalue instead of
20325         varying for TRUTH_*_EXPR.
20326         (extract_range_from_comparison): Fall back to truthvalue instead of
20327         varying.
20328         (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
20329         if all visited PHI values were constant.
20330
20331 2007-01-08  Jan Hubicka  <jh@suse.cz>
20332
20333         * cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
20334         (cgraph_analyze_function): break out from ...
20335         (cgraph_finalize_compilation_unit): ... here.
20336         (cgraph_expand_function): Remove forgoten commented out line.
20337         (cgraph_optimize): Analyze functions.
20338
20339 2007-01-08  Jan Hubicka  <jh@suse.cz>
20340
20341         * tree-pas.h (TODO_remove_function): New flag.
20342         (TODO_update*): Renumber.
20343         (pass_ipa_increase_alignment,
20344         pass_ipa_function_and_variable_visibility): New passes.
20345         * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
20346         (cgraph_function_and_variable_visibility): Move to ipa.c
20347         (cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
20348         cgraph_increase_alignment.
20349         * ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
20350         (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
20351         calling tree-inline.
20352         (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
20353         (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
20354         * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
20355         (gate_increase_alignment): New function.
20356         (pass_ipa_increase_alignment): New pass.
20357         * ipa.c: Inline tree-pass.h and timevar.h
20358         (function_and_variable_visibility): Move here from cgraphunit.c
20359         * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
20360         * passes.c (init_optimization_passes): Add the two new passes.
20361         (execute_todo): Handle cgraph_remove_functions.
20362
20363 2007-01-08  Nick Clifton  <nickc@redhat.com>
20364
20365         * config/frv/predicates.md (reg_or_0_operand): Accept
20366         CONST_DOUBLEs.
20367
20368 2007-01-08  Ralf Corsépius <ralf.corsepius@rtems.org>
20369
20370         * config/bfin/rtems.h, config/bfin/t-rtems: New.
20371         * config.gcc: Add bfin*-rtems*.
20372
20373 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
20374
20375         * c.opt: Add -flax-vector-conversions.
20376         * c-typeck.c (convert_for_assignment): Pass flag to
20377         vector_types_convertible_p to allow emission of note.
20378         (digest_init): Likewise.
20379         * c-opts.c: Handle -flax-vector-conversions.
20380         * c-common.c (flag_lax_vector_conversions): New.
20381         (vector_types_convertible_p): Unless -flax-vector conversions
20382         has been passed, disallow conversions between vectors with
20383         differing numbers of subparts and/or element types.  If such
20384         a conversion is disallowed, possibly emit a note on the first
20385         occasion only to inform the user of -flax-vector-conversions.
20386         The new last argument specifies this.
20387         * c-common.h (flag_lax_vector_conversions): New.
20388         (vector_types_convertible_p): Add extra argument.
20389         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
20390         char_type_node for V*QI type vectors.
20391         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
20392         Update to satisfy new typechecking rules.
20393         * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge, for both
20394         C and C++ variants.
20395         * doc/invoke.texi (C Dialect Options): Document
20396         -flax-vector-conversions.
20397
20398 2007-01-08  Mark Shinwell  <shinwell@codesourcery.com>
20399
20400         PR tree-optimization/29877
20401         * tree-ssa-ter.c (is_replaceable_p): Deem assignments with
20402         a register variable on the RHS to not be replaceable.
20403
20404 2007-01-08  Chen Liqin  <liqin@sunnorth.com.cn>
20405         * config/score/t-score-elf (MULTILIB_OPTIONS): Change.
20406         * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
20407         const_simm15, const_pow2, const_npow2): Added.
20408         * config/score/misc.md (insv, extv, extzv, movmemsi,
20409         move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
20410         * config/score/score.c (score_address_cost, score_select_cc_mode):
20411         Added.
20412         Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
20413         Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
20414         Update score_print_operand.
20415         * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
20416         Adjust register allocate order and update some macro define.
20417         * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
20418         mdx_block_move_straight, mdx_block_move_loop_head,
20419         mdx_block_move_loop_body, mdx_block_move_loop_foot,
20420         mdx_block_move_loop, mdx_block_move): Added.
20421         (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
20422         mdp_limm): Updated and fix some bug and typo.
20423         * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
20424         (movsf, movdf, doloop_end): Added.
20425
20426 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
20427
20428         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
20429         config/arm/thumb2.md: Fix comment typos.
20430         * doc/extend.texi: Fix a typo.
20431
20432 2007-01-07  Eric Christopher  <echristo@apple.com>
20433
20434         * configure.ac: Check for __stack_chk_fail for darwin.
20435         * configure: Regenerate.
20436
20437 2007-01-07  Richard Guenther  <rguenther@suse.de>
20438
20439         * tree-vrp.c (extract_range_from_assert): CSE calls to
20440         compare_values where possible.
20441         (extract_range_from_unary_expr): Likewise.
20442
20443 2007-01-07  Anatoly Sokolov <aesok@post.ru>
20444
20445         * config/avr/avr-protos.h (call_insn_operand): Delete prototype.
20446         * config/avr/avr.c (call_insn_operand): Delete function.
20447         * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
20448         instead of register number. Use predicates.
20449         * config/avr/predicates.md (const0_operand, reg_or_0_operand,
20450         call_insn_operand): Add.
20451
20452 2007-01-06  Jan Hubicka  <jh@suse.cz>
20453
20454         * tree-pass.h (pass_build_cgraph_edges): Declare.
20455         * cgraphunit.c (record_refernece): Move to cgraphbuild.c
20456         (visited_nodes): Remove.
20457         (cgraph_create_edges): Move to cgraphbuild.c; rename to
20458         build_cgrpah_edges; make visited_nodes local.
20459         (cgraph_process_new_functions): DO not call initialize_inline_failed.
20460         (record_references_in_initializer): Move to cgraphbuild.c
20461         (initialize_inline_failed, rebuild_cgraph_edges,
20462         pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
20463         (verify_cgraph_node): Make visited_nodes local.
20464         (cgraph_analyze_function): Do not call cgraph_create_edges and
20465         initialize_inline_failed.
20466         (cgraph_expand_function): Do not call cgraph_lower_function;
20467         assert that function is already lowered.
20468         * Makefile.in (cgraphbuild.o): New.
20469         * passes.c (init_optimization_passes): Add pass_build_cgraph_edges
20470         at the end of lowering passes.
20471
20472 2007-01-06  Steven Bosscher  <steven@gcc.gnu.org>
20473
20474         * ifcvt.c (cond_move_convert_if_block): New function, code
20475         factored out from...
20476         (cond_move_process_if_block): ...here.  Call the new function
20477         on the THEN and ELSE blocks.
20478         (merge_if_block): Do not copy global_live_at_end, merge_blocks
20479         already takes care of this.
20480
20481 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20482
20483         PR c/19978
20484         * tree.h (TREE_OVERFLOW_P): New.
20485         * c-typeck.c (parser_build_unary_op): Warn only if result
20486         overflowed and operands did not.
20487         (parser_build_binary_op): Likewise.
20488         (convert_for_assignment): Remove redundant overflow_warning.
20489         * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.
20490
20491 2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20492
20493         * c-typeck.c (store_init_value): Split over two lines to follow
20494         the GNU coding style.
20495
20496 2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>
20497
20498         * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
20499         __GXX_EXPERIMENTAL_CXX0X__.
20500         * doc/cpp.texi: Same.
20501
20502 2007-01-05  Richard Guenther  <rguenther@suse.de>
20503
20504         PR middle-end/27826
20505         * tree.c (get_narrower): Do not construct COMPONENT_REFs
20506         with mismatched types.  Instead explicitly build a
20507         conversion NOP_EXPR.
20508
20509 2007-01-05  Ian Lance Taylor  <iant@google.com>
20510
20511         * c-common.c (decl_with_nonnull_addr_p): New function.
20512         (c_common_truthvalue_conversion): Call it.
20513         * c-typeck.c (build_binary_op): Likewise.
20514         * c-common.h (decl_with_nonnull_addr_p): Declare.
20515
20516 2007-01-05  Jakub Jelinek  <jakub@redhat.com>
20517
20518         PR c/30360
20519         * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
20520         denom against 0.0.
20521
20522 2007-01-05  Joel Brobecker  <brobecker@adacore.com>
20523
20524         * doc/install.texi (Final install): Document the fact that
20525         the GNAT runtime should not be stripped.
20526
20527 2007-01-04  Jan Hubicka  <jh@suse.cz>
20528
20529         * tree-inline.c (fold_marked_statements): Update operand caches
20530         and EH after folding
20531
20532 2007-01-04  Ian Lance Taylor  <iant@google.com>
20533
20534         * c-common.c (check_function_nonnull): Whitespace fix.
20535
20536 2007-01-04  Jan Hubicka  <jh@suse.cz>
20537
20538         * tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
20539         comitted older version of patch.
20540         (pass_fixup_cfg): Add TODOs to verify flow and statements, dump
20541         function, celanup cfg and collect garbage.
20542
20543 2007-01-04  Mike Stump  <mrs@apple.com>
20544
20545         * Makefile.in (mostlyclean): Don't remove libgcc anymore.
20546         (clean): Likewise.
20547
20548 2007-01-04  Eric Christopher  <echristo@apple.com>
20549
20550         * libgcc2.c (__bswapsi2): Use SItype.
20551         (__bswapdi2): Use DItype.
20552         * libgcc2.h: Update for above.
20553
20554 2007-01-04  Paul Brook  <paul@codesourcery.com>
20555
20556         * config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
20557         mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
20558         mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
20559         umulsidi3, umulsidi3adddi, smulsi3_highpart,
20560         umulsi3_highpart): Make conditional on !arm_arch6.
20561         (arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
20562         mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
20563         mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
20564         umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
20565         umulsi3_highpart_v6): New insns.
20566
20567 2007-01-04  Roger Sayle  <roger@eyesopen.com>
20568
20569         * fold-const.c (fold_convert): When casting an expression to void,
20570         fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
20571         have a type.  Instead of attempting to build a NOP_EXPR, return
20572         these "special" trees directly.
20573
20574 2007-01-04  Joseph Myers  <joseph@codesourcery.com>
20575
20576         * config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
20577         MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
20578         rs6000_cost->fp not 0 as adjustment for outer NEG.
20579
20580 2007-01-04  Jan Hubicka  <jh@suse.cz>
20581
20582         * cgraph.c (cgraph_release_function_body): New function.
20583         (cgraph_remove_node): Use it.
20584         * cgraph.h (cgraph_release_function_body): Declare.
20585         * cgraphunit.c (cgraph_expand_function): Use it.
20586         * ipa.c (cgraph_remove_unreahchable_nodes): Use it.
20587         * tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
20588         is initialized and while compilation of other function is running.
20589         * tree-optimize.c (execute_free_cfg_annotations): Move code to clear
20590         statement CFG annotations from here to ...
20591         * tree-cfg.c (delete_tree_cfg_annotations): ... here.
20592
20593 2007-01-04  Zdenek Dvorak <dvorakz@suse.cz>
20594
20595         * cfgloop.h (enum li_flags): Make the constants powers of two.
20596
20597 2007-01-04  Jan Hubicka  <jh@suse.cz>
20598
20599         * tree-inline.c (copy_bb): Insert new statements to statements_to_fold
20600         set.
20601         (fold_marked_statements): New function.
20602         (optimize_inline_calls, tree_function_versioning): Fold new statements.
20603         * tree-inline.h (copy_body_data): Add statements_to_fold.
20604
20605 2007-01-03  Daniel Jacobowitz  <dan@codesourcery.com>
20606
20607         * config.gcc: Mention libgcc/config.host.
20608         * Makefile.in: Update comments mentioning libgcc.
20609         (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
20610         (all.cross, start.encap, rest.encap, rest.cross): Update
20611         dependencies for libgcc move.
20612         (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
20613         (clean-target, clean-target-libgcc): Delete.
20614         (srcdirify, GCC_EXTRA_PARTS): New macros.
20615         (libgcc-support, libgcc.mvars): New rules.
20616         (distclean): Remove mention of mklibgcc.
20617         (install): Don't reference INSTALL_LIBGCC.
20618         (install-common): Don't reference EXTRA_PARTS.
20619         (install-libgcc, install-multilib): Delete rules.
20620         * mklibgcc.in: Delete file.
20621         * doc/configfiles.texi: Don't mention mklibgcc.
20622
20623         * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
20624         * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
20625         * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
20626         * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
20627         (mklibgcc, ldblspecs): Likewise.
20628
20629         * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
20630         (posixpre.def): Use $(T).
20631         (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
20632         (SHLIB_SRC, SHLIB_INSTALL): Delete.
20633         (SHLIB_LINK): Make dummy.
20634         * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.
20635
20636         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.
20637
20638         * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
20639         * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
20640         config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
20641         config/rs6000/t-newas, config/sparc/t-elf: Likewise.
20642
20643         * configure.ac (all_outputs): Remove mklibgcc.
20644         * configure: Regenerated.
20645
20646 2007-01-03  Josh Conner  <jconner@apple.com>
20647
20648         PR middle-end/29683
20649         * calls.c (compute_argument_addresses): Set stack and stack_slot
20650         for partial args, too.
20651         (store_one_arg): Use locate.size.constant for the size when
20652         generating a save_area.
20653
20654 2007-01-03  Robert Kennedy <jimbob@google.com>
20655
20656         * tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
20657         whose definitions are deleted due to basic block merging.
20658
20659 2007-01-03  Paul Brook  <paul@codesourcery.com>
20660
20661         PR target/16634
20662         * config/arm/arm.c (output_return_instruction): Pop PC in interrupt
20663         functions.
20664         (use_return_insn): Return 0 for Thumb interrupt functions.
20665         (print_multi_reg): Add rfe argument for IRQ returns.
20666         (arm_output_epilogue): Pop interrupt return address directly into PC.
20667         (arm_expand_prologue): Only adjust IRQ return address in Arm mode.
20668
20669 2007-01-03  Paul Brook  <paul@codesourcery.com>
20670
20671         Merge from sourcerygxx-4_1.
20672         * config/arm/thumb2.md: New file.
20673         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
20674         Thumb-2.
20675         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
20676         * config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
20677         (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
20678         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
20679         tables.
20680         (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
20681         * config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
20682         comptibility.
20683         * config/arm/ieee754-sf.S: Ditto.
20684         * config/arm/arm.c (thumb_base_register_rtx_p): Rename...
20685         (thumb1_base_register_rtx_p): ... to this.
20686         (thumb_index_register_rtx_p): Rename...
20687         (thumb1_index_register_rtx_p): ... to this.
20688         (thumb_output_function_prologue): Rename...
20689         (thumb1_output_function_prologue): ... to this.
20690         (thumb_legitimate_address_p): Rename...
20691         (thumb1_legitimate_address_p): ... to this.
20692         (thumb_rtx_costs): Rename...
20693         (thumb1_rtx_costs): ... to this.
20694         (thumb_compute_save_reg_mask): Rename...
20695         (thumb1_compute_save_reg_mask): ... to this.
20696         (thumb_final_prescan_insn): Rename...
20697         (thumb1_final_prescan_insn): ... to this.
20698         (thumb_expand_epilogue): Rename...
20699         (thumb1_expand_epilogue): ... to this.
20700         (arm_unwind_emit_stm): Rename...
20701         (arm_unwind_emit_sequence): ... to this.
20702         (thumb2_legitimate_index_p, thumb2_legitimate_address_p,
20703         thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
20704         thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
20705         arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
20706         thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
20707         thumb2_output_casesi): New functions.
20708         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
20709         (FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
20710         FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
20711         THUMB2_WORK_REGS): Define.
20712         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
20713         arm_condexec_mask, arm_condexec_masklen)): New variables.
20714         (all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
20715         (arm_override_options): Check new CPU capabilities.
20716         Set new architecture flag variables.
20717         (arm_isr_value): Handle v7m interrupt functions.
20718         (user_return_insn): Return 0 for v7m interrupt functions.  Handle
20719         Thumb-2.
20720         (const_ok_for_arm): Handle Thumb-2 constants.
20721         (arm_gen_constant): Ditto.  Use movw when available.
20722         (arm_function_ok_for_sibcall): Return false for v7m interrupt
20723         functions.
20724         (legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
20725         (thumb_find_work_register, arm_load_pic_register,
20726         legitimize_tls_address, arm_address_cost, load_multiple_sequence,
20727         emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
20728         print_multi_reg, output_mov_long_double_fpa_from_arm,
20729         output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
20730         output_mov_double_fpa_from_arm, output_move_double,
20731         arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
20732         output_return_instruction, arm_output_function_prologue,
20733         arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
20734         arm_output_mi_thunk, thumb_set_return_address): Ditto.
20735         (arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
20736         (arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
20737         (arithmetic_instr, shift_op): Use arm_shift_nmem.
20738         (arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
20739         '!' and 'L'.
20740         (arm_final_prescan_insn): Use extract_constrain_insn_cached.
20741         (thumb_expand_prologue): Use thumb_set_frame_pointer.
20742         (arm_file_start): Output directive for unified syntax.
20743         (arm_unwind_emit_set): Handle stack alignment instruction.
20744         * config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
20745         Add v6t2, v7, v7a, v7r and v7m.
20746         (RETLDM): Add Thumb-2 code.
20747         (do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
20748         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
20749         (TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
20750         TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
20751         THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
20752         ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
20753         THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
20754         CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
20755         ADJUST_INSN_LENGTH): Define.
20756         (TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
20757         STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
20758         BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
20759         PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
20760         SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
20761         TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
20762         HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
20763         HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
20764         REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
20765         REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
20766         LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
20767         GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
20768         ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
20769         FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
20770         PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
20771         (arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
20772         * config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
20773         cortex-m3.
20774         * config/arm/arm-tune.md: Regenerate.
20775         * config/arm/arm-protos.h: Update prototypes.
20776         * config/arm/vfp.md: Enable patterns for Thumb-2.
20777         (arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
20778         (arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
20779         (thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
20780         thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
20781         * config/arm/libunwind.S: Add Thumb-2 code.
20782         * config/arm/constraints.md: Update include Thumb-2.
20783         * config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
20784         * config/arm/ieee754-df.S: Ditto.
20785         * config/arm/bpabi.S: Ditto.
20786         * config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
20787         * config/arm/predicates.md (low_register_operand,
20788         low_reg_or_int_operand, thumb_16bit_operator): New.
20789         (thumb_cmp_operand, thumb_cmpneg_operand): Rename...
20790         (thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
20791         * config/arm/t-arm-elf: Add armv7 multilib.
20792         * config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
20793         Include thumb2.md.
20794         (UNSPEC_STACK_ALIGN, ce_count): New.
20795         (arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
20796         arm_zero_extendsidi2, arm_zero_extendqidi2): New
20797         insns/expanders.
20798         * config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
20799         (thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
20800         thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
20801         * config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
20802         (cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
20803         thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
20804         insns.
20805         * doc/extend.texi: Document ARMv7-M interrupt functions.
20806         * doc/invoke.texi: Document Thumb-2 new cores+architectures.
20807
20808 2007-01-03  Jakub Jelinek  <jakub@redhat.com>
20809
20810         * unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
20811         (struct _Unwind_Context): Rename args_size to flags, remove
20812         signal_frame field, add a new args_size field and version field.
20813         (_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
20814         _Unwind_IsExtendedContext): New inline functions.
20815         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
20816         Assume by_value array is only present if _Unwind_IsExtendedContext.
20817         (_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
20818         _Unwind_IsSignalFrame.
20819         (__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
20820         (uw_update_context_1): Use _Unwind_SetSignalFrame.
20821         (uw_init_context_1): Initialize context->flags to
20822         EXTENDED_CONTEXT_BIT.
20823         * config/rs6000/linux-unwind.h (frob_update_context): Use
20824         _Unwind_SetSignalFrame.
20825
20826 2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20827
20828         PR middle-end/30353
20829         * gimplify.c (gimplify_modify_expr_complex_part): Move below
20830         tree_to_gimple_tuple.  Call tree_to_gimple_tuple when we need
20831         the value.
20832
20833 2007-01-03  Kazu Hirata  <kazu@codesourcery.com>
20834
20835         * config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
20836         REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
20837         RET, AT_SP): Remove.
20838         * config/i386/i386.md (*sse_prologue_save_insn): Use return
20839         instead of RET.
20840
20841         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
20842         * cfgbuild.c (find_basic_blocks): Likewise.
20843         * cfgrtl.c (rtl_create_basic_block): Likewise.
20844         * function.c (temp_slots_at_level): Likewise.
20845         * reg-stack.c (stack_regs_mentioned): Likewise.
20846         * regclass.c (allocate_reg_info): Likewise.
20847         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
20848         set_bb_for_stmt, move_block_to_fn): Likewise.
20849         * tree-complex.c (tree_lower_complex): Likewise.
20850         * vec.h (VEC_safe_grow_cleared): New.
20851
20852         * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
20853
20854 2007-01-03  Zdenek Dvorak <dvorakz@suse.cz>
20855
20856         * loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
20857         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
20858         to loop_version.
20859         * cfgloopmanip.c (scale_loop_frequencies): Export.
20860         (loopify): Scale the frequencies by prescribed coefficients.
20861         (set_zero_probability): New function.
20862         (duplicate_loop_to_header_edge): Improve updating of frequencies.
20863         (lv_adjust_loop_entry_edge, loop_version): Set probabilities
20864         and frequencies according to arguments.
20865         * tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
20866         correctly.
20867         * cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
20868         * modulo-sched.c (sms_schedule): Set probabilities for entering
20869         versioned loop correctly.
20870         * tree-vect-transform.c (vect_transform_loop): Ditto.
20871         * cfgloop.h (loopify, loop_version): Declaration changed.
20872         (scale_loop_frequencies): Declared.
20873
20874 2007-01-02  Jan Hubicka  <jh@suse.cz>
20875
20876         * cgraph.c: Include tree-flow.h
20877         (cgraph_add_new-function): Handle IPA_SSA mode; execute
20878         early_local_passes.
20879         * cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
20880         * tree-pass.h (pass_all_early_optimizations): Declare.
20881         * cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
20882         early_local_passes.
20883         (cgraph_analyze_function): Do early_local_passes.
20884         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
20885         Do not add referenced vars.
20886         * tree-optimize.c (gate_all_optimizations): Do not execute when not in
20887         SSA form.
20888         (gate_all_early_local_passes): New gate.
20889         (pass_early_local_passes): Use new gate.
20890         (execute_early_local_optimizations): New functions.
20891         (gate_all_early_optimizations): New gate.
20892         (pass_all_early_optimizations): New pass.
20893         (execute_free_datastructures): Free SSA only when initialized.
20894         (gate_init_datastructures): Init only when optimizing.
20895         (tree_lowering_passes): Do early local passes when called late.
20896         * tree-profile.c (do_tree_profiling): Don't profile functions added
20897         late.
20898         (do_early_tree_profiling, pass_early_tree_profile): Kill.
20899         * tree-cfg.c (update_modified_stmts): Do not update when operands are
20900         not active.
20901         * passes.c (init_optimizations_passes): Reorder so we go into SSA
20902         during early_local_passes.
20903         * Makefile.in (cgraph.o): Add dependency on tree-flow.h.
20904
20905
20906 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
20907
20908         * Makefile.in: Update copyright year.
20909
20910 2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>
20911
20912         * Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
20913         in $(lang_checks) and check-consistency targets.
20914
20915 2007-01-02  Jan Hubicka  <jh@suse.cz>
20916
20917         * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
20918         Do not add referenced vars.
20919         * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
20920         are not active.
20921         * passes.c (init_optimization_passes): Put mudflap_2 after
20922         free_datastructures.
20923
20924 2007-01-02  Jan Hubicka  <jh@suse.cz>
20925
20926         * tree-optimize (execute_fixup_cfg): Set after_inlining flag.
20927         Set NOTHROW flag on call statements proved to be nothrow.
20928         Update statement of local calls so new pure/const functions are
20929         updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
20930         goto receivers.
20931         (tree_rest_of_compilation): Register hooks and initialize bitmap
20932         early. Do not set after_inlining flag.
20933
20934 2007-01-02  Steve Ellcey  <sje@cup.hp.com>
20935
20936         * sbitmap.c (HOST_BITS_PER_LONG_LONG):  Change to
20937         HOST_BITS_PER_LONGLONG
20938
20939 2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
20940
20941         PR c/19977
20942         * c-typeck.c (store_init_value): Don't emit pedantic overflow
20943         warning for non-static initializers.
20944
20945 2007-01-02  Steven Bosscher  <steven@gcc.gnu.org>
20946
20947         * config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
20948         m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
20949         rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
20950         Always use set_unique_reg_note to add REG_EQUAL notes.
20951
20952 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
20953
20954         Revert:
20955         2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
20956
20957         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
20958         * cfgbuild.c (find_basic_blocks): Likewise.
20959         * cfgrtl.c (rtl_create_basic_block): Likewise.
20960         * function.c (temp_slots_at_level): Likewise.
20961         * reg-stack.c (stack_regs_mentioned): Likewise.
20962         * regclass.c (allocate_reg_info): Likewise.
20963         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
20964         set_bb_for_stmt, move_block_to_fn): Likewise.
20965         * tree-complex.c (tree_lower_complex): Likewise.
20966         * vec.h (VEC_safe_grow_cleared): New.
20967
20968 2007-01-02  Ian Lance Taylor  <iant@google.com>
20969
20970         * c-common.c (c_common_truthvalue_conversion): When warning about
20971         using an assignment as a truth value, set TREE_NO_WARNING.
20972
20973 2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
20974
20975         PR middle-end/7651
20976         * c.opt (Wold-style-declaration): New.
20977         * doc/invoke.texi (C-only Warning Options): New.
20978         (Wold-style-declaration): Document it.
20979         (Wextra): Enabled by -Wextra.
20980         * c-opts.c (c_common_post_options): Enabled by -Wextra.
20981         * c-decl.c (declspecs_add_scspec): Replace -Wextra with
20982         -Wold-style-declaration.
20983
20984 2007-01-02  Kazu Hirata  <kazu@codesourcery.com>
20985
20986         * alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
20987         * cfgbuild.c (find_basic_blocks): Likewise.
20988         * cfgrtl.c (rtl_create_basic_block): Likewise.
20989         * function.c (temp_slots_at_level): Likewise.
20990         * reg-stack.c (stack_regs_mentioned): Likewise.
20991         * regclass.c (allocate_reg_info): Likewise.
20992         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
20993         set_bb_for_stmt, move_block_to_fn): Likewise.
20994         * tree-complex.c (tree_lower_complex): Likewise.
20995         * vec.h (VEC_safe_grow_cleared): New.
20996
20997 2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
20998
20999         * c-common.c (c_common_nodes_and_builtins): Since variants of
21000         void_type_node get built before it is given a name, we need to
21001         give those variants the name, too.
21002         (complete_array_type): We need to work with the canonical main
21003         type of the array, from which we will build the qualified version.
21004         * params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
21005         * print-tree.c (print_node): Display canonical type information
21006         for each type.
21007         * stor-layout.c (layout_type): When we don't know the
21008         alignment of a type for which we're building an array, we end up
21009         guessing wrong, so make the type require structural equality.
21010         * tree.c (make_node_stat): When we build a new type, it is its
21011         own canonical type.
21012         (build_type_attribute_qual_variant): When building an attribute
21013         variant, its canonical type is the non-attribute variant. However,
21014         if the attributes are target-dependent and they differ, we need to
21015         use structural equality checks for this type.
21016         (build_qualified_type): A qualified type is not equivalent to its
21017         unqualified variant; set the canonical type appropriately.
21018         (build_distinct_type_copy): When building a distinct type from
21019         another type, the new type is its own canonical type.
21020         (build_variant_type_copy): When building a new type variant, we
21021         assume that it is equivalent to the original type.
21022         (build_pointer_type_for_mode): When building a pointer type, also
21023         build a canonical type pointer.
21024         (build_reference_type_for_mode): When building a reference type,
21025         also build a canonical type reference.
21026         (build_index_type): When we can't hash an index type (e.g.,
21027         because its maximum value is negative), the index type requires
21028         structural equality tests.
21029         (build_array_type): Build the canonical form of an array type.
21030         (build_function_type): Function types require structural equality,
21031         because they contain default arguments, attributes, etc.
21032         (build_method_type_directly): Ditto for method types.
21033         (build_offset_type): Build the canonical offset type.
21034         (build_complex_type): Build the canonical vector type.
21035         (make_vector_type): Build the canonical vector type.
21036         * tree.h (TYPE_CANONICAL): New.
21037         (TYPE_STRUCTURAL_EQUALITY_P): New.
21038         (SET_TYPE_STRUCTURAL_EQUALITY): New.
21039         (struct tree_type): Added "canonical" field.
21040         * params.h (VERIFY_CANONICAL_TYPES): New.
21041         * doc/c-tree.texi (TYPE_CANONICAL): Document.
21042         (TYPE_STRUCTURAL_EQUALITY_P): Document.
21043         (SET_TYPE_STRUCTURAL_EQUALITY): Document.
21044         * doc/invoke.texi (verify-canonical-types): Document --param
21045         parameter for verifying canonical types.
21046
21047 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
21048
21049         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
21050         powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
21051         powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
21052         powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
21053         tm_file.
21054         * config/rs6000/e500.h: New.
21055         * config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
21056         TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
21057         Remove.
21058         * config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
21059         TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
21060         TARGET_E500_DOUBLE): Remove.
21061         * config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
21062         TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
21063         * config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
21064         * config/rs6000/rs6000.c (rs6000_override_options): Use
21065         CHECK_E500_OPTIONS.
21066
21067 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
21068
21069         * config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
21070         TARGET_E500_DOUBLE), not TARGET_E500, for %y.
21071         (rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
21072         rs6000_emit_cmove): Don't check TARGET_E500.
21073         * config/rs6000/rs6000.md (bunordered, bordered, sunordered,
21074         sordered): Don't check TARGET_E500.
21075
21076 2007-01-01  Eric Christopher  <echristo@apple.com>
21077
21078         * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
21079         HARD_REGISTER_NUM_P.
21080
21081 2007-01-01  Roger Sayle  <roger@eyesopen.com>
21082
21083         * fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
21084         "X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
21085         has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
21086         eq/ne Y".
21087
21088 2007-01-01  Mike Stump  <mrs@apple.com>
21089
21090         * configure.ac: Remove support for building with Apple's gcc-3.1.
21091
21092 2007-01-02  Joseph Myers  <joseph@codesourcery.com>
21093
21094         PR middle-end/30311
21095         * caller-save.c (add_stored_regs): Only handle SUBREGs if inner
21096         REG is a hard register.  Do not modify REG before calling
21097         subreg_nregs.
21098         * rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
21099         multiple of the size of YMODE for certain lowpart cases.
21100
21101 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
21102
21103         PR middle-end/30253
21104         * gimplify (voidify_wrapper_expr): Update for
21105         GIMPLE_MODIFY_STMT.
21106
21107 2007-01-01  Andreas Schwab  <schwab@suse.de>
21108
21109         PR target/29166
21110         * config/ia64/ia64.c (ia64_compute_frame_size): Account space for
21111         save of BR0 in extra_spill_size instead of spill_size.
21112         (ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
21113         area.
21114         (ia64_expand_epilogue): Restore BR0 from its new location.
21115
21116 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
21117
21118         * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
21119         Use a temporary variable if the left hand side is not a gimple
21120         register.
21121
21122 2007-01-01  Andrew Pinski  <pinskia@gmail.com>
21123
21124         * gimplify.c (gimplify_return_expr): Make the temporary variable
21125         for the return expression, a gimple register variable.
21126
21127 2007-01-01  Jan Hubicka  <jh@suse.cz>
21128
21129         * emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
21130         INSN_LIST.
21131
21132 2007-01-01  Mike Stump  <mrs@apple.com>
21133
21134         * configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
21135         .literal16.
21136         * config/darwin.c (machopic_select_rtx_section): Use
21137         HAVE_GAS_LITERAL16.
21138         (darwin_mergeable_constant_section): Likewise.
21139         * configure: Regenerate.
21140         * config.in: Regenerate.
21141
21142 2007-01-01  Jan Hubicka  <jh@suse.cz>
21143             Andrew Pinski  <pinskia@gmail.com>
21144
21145         * cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
21146         before starting IPA passes.