OSDN Git Service

PR tree-optimization/23744
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-11-29  Duncan Sands  <baldrick@free.fr>
2
3         PR tree-optimization/23744
4         * tree-vrp.c (vrp_meet): do not require ranges to intersect.
5
6 2006-11-29  Duncan Sands  <baldrick@free.fr>
7
8         PR tree-optimization/23744
9         * testsuite/gcc.dg/tree-ssa/pr23744.c: new test.
10
11 2006-11-29  Duncan Sands  <baldrick@free.fr>
12
13         PR tree-optimization/23744
14         * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail.
15
16 2006-11-29  Jie Zhang  <jie.zhang@analog.com>
17
18         * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
19
20 2006-11-29  J"orn Rennecke  <joern.rennecke@st.com>
21
22         * sh.opt (minline-ic_invalidate): New option.
23         (musermode): Adjust comment.
24         * sh.c (sh_initialize_trampoline): Emit library call unless
25         is set; if it is set, don't emit library call if we can use icbi
26         instead.
27         * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use
28         icbi for TARGET_SH4_300.
29         * t-sh (LIB1ASMFUNCS_CACHE): Set.
30         * doc/invoke.texi: Document -minline-ic_invalidate; Update
31         -musermode documentation.
32
33 2006-11-29  Jim Tison  <jtison@us.ibm.com>
34
35         * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
36         __gthread_recursive_mutex_init): Define.
37
38 2006-11-29  Joseph Myers  <joseph@codesourcery.com>
39
40         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
41         STRICT_ALIGNMENT and the type is more aligned than the saved
42         registers, copy via a temporary.
43
44 2006-11-28  Andrew Pinski  <pinskia@gmail.com>
45
46         PR tree-opt/29984
47         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
48         and MIN_EXRP.
49
50 2006-11-28  Bob Wilson  <bob.wilson@acm.org>
51
52         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit.
53
54 2006-11-28  Jan Hubicka  <jh@suse.cz>
55
56         Privatize SSA variables into gimple_df.
57         * tree-flow-inline.h
58         (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars,
59         gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var,
60         gimple_nonlocal_all): New accessors.
61         (first_referenced_var): Update.
62         (mark_stmt_modified): Update.
63         (is_call_clobbered): Update.
64         (mark_call_clobbered): Update.
65         (clear_call_clobbered): Update.
66         (mark_non_addressable): Update.
67         * tree-vrp.c (get_value_range): Update.
68         * tree-into-ssa.c (in_ssa_p): Kill.
69         (get_default_def_for): Update.
70         (rewrite_into_ssa): Update.
71         * tree-complex.c (init_parameter_lattice_values): Update.
72         (update_complex_assignment): Update.
73         (update_parameter_components): Update.
74         (expand_complex_libcall): Update.
75         (expand_complex_operations_1): Update.
76         * tree-tailcall.c (arg_needs_copy_p): Update.
77         (add_virtual_phis): Update.
78         (tree_optimize_tail_calls_1): Update.
79         * tree-ssa-dse.c (memory_ssa_name_same): Update.
80         * tree-ssa-copyrename.c
81         (copy_rename_partition_coalesce): Update.
82         * tree-ssa-math-opts.c (execute_cse_reciprocals): Update.
83         * tree-ssa-propagate.c (set_rhs): Update.
84         * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
85         addressable_vars, global_var):Kill.
86         (set_initial_properties): Update.
87         (init_alias_info): Update.
88         (finalize_ref_all_pointers): Update.
89         (setup_pointers_and_addressables): Update.
90         (maybe_create_global_var): Update.
91         (create_global_var): Update.
92         (dump_points_to_info): Update.
93         * function.h (struct gimple_df): Forward declare.
94         (struct function): Add GIMPLE_DF field.
95         * gimplify.c (force_gimple_operand): Update.
96         * tree-dfa.c (referenced_vars, default_defs): KIll.
97         (make_rename_temp): Update.
98         (dump_variable): Update.
99         (referenced_var_lookup): Update.
100         (referenced_var_check_and_insert): Update.
101         (default_def): Rename to ...
102         (gimple_default_def): ... this one; accept cfun argument.
103         (set_default_def): Update.
104         * tree-cfgcleanup.c (modified_noreturn_calls): Kill.
105         (cleanup_control_flow): Update.
106         * tree-ssa-pre.c (compute_avail): Update
107         * tree-ssa-live.c (calculate_live_on_entry): Update.
108         * tree-ssa.c (verify_use): Update.
109         (verify_call_clobbering): Update.
110         (verify_call_clobbering): Update.
111         (init_tree_ssa): Update.
112         (delete_tree_ssa): Update.
113         * tree-outof-ssa.c (coalesce_ssa_name): Update.
114         (rewrite_out_of_ssa): Update.
115         * tree-flow.h (gimple_df): New structure collecting dataflow variables.
116         (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New
117         private accessors.
118         (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs,
119         ssa_names, global_var, nonlocal_all, call_clobbered_vars,
120         addressable_vars, aliases_computed_p): Kill.
121         (default_def): Rename to...
122         (gimple_default_def): ... this one.
123         (defaule_def_fn): Kill.
124         (num_referenced_vars, ssa_names, num_ssa_names): Update.
125         * tree-ssa-structalias.c (nonlocal_all): Kill.
126         (get_constraint_exp_from_ssa_var): Update.
127         (create_nonlocal_var): Update.
128         (get_constraint_for): Update.
129         (update_alias_info): Update.
130         (find_global_initializers): Update.
131         (intra_create_variable_infos): Update.
132         (intra_create_variable_infos):
133         (find_what_p_points_to): Update.
134         (init_alias_heapvars): Update.
135         * tree-cfg.c (remove_bb): Update.
136         (gimplify_val): Update.
137         * tree-ssa-reassoc.c (get_rank): Update.
138         (init_reassoc): Update.
139         * tree-ssanames.c: Do not include gt-tree-ssanames.h
140         (ssa_names, free_ssanames): Kill.
141         (init_ssanames): Update.
142         (make_ssa_name): Update.
143         (release_ssa_name): Update.
144         (release_defs): Update.
145         (replace_ssa_name_symbol): Update.
146         * tree-ssa-operands.c (access_can_touch_variable): Update.
147         (add_virtual_operand): Update.
148         (add_call_clobber_ops): Update.
149         (add_call_read_ops): Update.
150         (get_call_expr_operands): Update.
151         (get_asm_expr_operands): Update.
152
153 2006-11-28  Jan Hubicka  <jh@suse.cz>
154
155         * builtins.c: Include tree-flow.h.
156         (fold_builtin_memory_op): Be more aggressive on converting memcpy to
157         assignment; convert memmove to memcpy for sizes greater than 1 where
158         alignment of operands prohibit the partial overlap.
159
160 2006-11-28  Jan Hubicka  <jh@suse.cz>
161
162         * invoke.texi (large-stack-frame, large-stack-frame-growth): New params.
163         * cgraph.c (dump_cgraph_node): Dump stack usage.
164         * cgraph.h (cgraph_local_info): Add estimated_self_stack_size.
165         (cgraph_global_info): Add estimated_stack_size and stack_frame_offset.
166         * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes.
167         * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage.
168         (cgraph_check_inline_limits): Limit stack growth.
169         * cfgexpand.c: Include tree-inline.h.
170         (account_stack_vars): New function.
171         (expand_one_var): New param to just account the stack; return estimated
172         size.
173         (expand_used_vars_for_block): Update call of expand_one_var.
174         (account_used_vars_for_block): New function.
175         (estimated_stack_frame_size): Likewise.
176         (init_vars_expansion, fini_vars_expansion): Break out from..
177         (expand_used_vars): ... here.
178         * tree-inline.h (estimated_stack_frame_size): Declare.
179         * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New.
180
181 2006-11-28  Richard Guenther  <rguenther@suse.de>
182
183         * ggc-page.c (ggc_print_statistics): Use %ul and a cast to
184         unsigned long for printing OBJECT_SIZE.
185
186 2006-11-27  Steven Bosscher  <steven@gcc.gnu.org>
187
188         * alias.c (init_alias_analysis): Remove simplification loop
189         after propagating pointers.
190
191 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
192
193         * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2
194         and m_GENERIC64.
195
196 2006-11-27  Bob Wilson  <bob.wilson@acm.org>
197
198         * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default.
199
200 2006-11-27  Roger Sayle  <roger@eyesopen.com>
201             Manuel Lopez-Ibanez <manu@gcc.gnu.org>
202             
203         * c-common.c (constant_fits_type_p): Delete.
204         (unsigned_conversion_warning): Delete.
205         (conversion_warning): Integrate Wconversion warning from
206         unsigned_conversion_warning.
207         (convert_and_check): Integrate Woverflow warning from
208         unsigned_conversion_warning.  Reorganize and simplify to avoid
209         dependence upon the middle-end setting TREE_OVERFLOW on integral
210         conversions, by using int_fits_type_p directly.
211
212 2006-11-27  Tobias Burnus  <burnus@net-b.de>
213
214         * doc/invoke.texi: Fixed typo.
215
216 2006-11-27  Michael Matz  <matz@suse.de>
217             Andreas Krebbel  <krebbel1@de.ibm.com>
218
219         PR target/29319
220         * config/s390/predicates.md (larl_operand): Check addend of larl
221         operand to be in range of -/+2GB.
222         * config/s390/s390.c (legitimize_pic_address): Likewise.  
223         Changed type of variable even to HOST_WIDE_INT.
224
225 2006-11-27  Jan Hubicka  <jh@suse.cz>
226
227         * expr.c (emit_block_move_via_libcall): Export.
228         (clear_storage_via_libcall): Rename to ...
229         (set_storage_via_libcall): ... this one; handle arbitrary value to set.
230         (clear_storage): Update to set_storage_via_libcall.
231         * expr.h (emit_block_move_via_libcall): Declare
232         * config/i386/i386.h (stringop_alg): New enum.
233         (MAX_STRINGOP_ALGS): New constant.
234         (stringop_algs): New struct.
235         (processor_costs): Add memcpy/memset descriptors.
236         (TARGET_REP_MOVEL_OPTIMAL): Remove.
237         * config/i386/i386.md (movsi_insv_1_rex64): New pattern.
238         (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands
239         for memset.
240         * config/i386/i386.opt (minline-stringops-dynamically,
241         mstringop-strategy): New
242         parameters.
243         * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype.
244         (ix86_expand-clrmem): Rename to ...
245         (ix86_expand_setmem): ... this one; update prototype.
246         * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant.
247         (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
248         geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost,
249         nocona_cost, core2_cost, generic_cost, generic64_cost,
250         generic32_cost): Add memcpy/memset descriptors.
251         (x86_rep_movl_optimal): Remove.
252         (stringop_alg): New static variable.
253         (ix86_expand_aligntest): Handle predictions.
254         (override_options): Add strgop_alg handling.
255         (predict_jump): New function.
256         (scale_counter): New function.
257         (expand_set_or_movmem_via_loop): New function.
258         (expand_movmem_via_rep_mov): New function.
259         (expand_setmem_via_rep_stots): New function.
260         (emit_strmov): New function.
261         (expand_movmem_epilogue): New function.
262         (expand_setmem_epilogue_via_loop): New function.
263         (expand_setmem_epilogue): New function.
264         (expand_movmem_prologue): New function.
265         (expand_setmem_prologue): New function.
266         (decide_alg): New function.
267         (decide_alignment): New function.
268         (ix86_exand_movmem): Rewrite.
269         (promote_duplicated_reg): New function.
270         (ix86_expand_clrmem): Rename to ...
271         (ix86_expand_setmem): ... this one. Rewrite.
272
273         * invoke.texi (minline-stringops-dynamically): New command line option.
274         (mstringop-strategy): Likewise.
275
276 2006-11-27  Jan Hubicka  <jh@suse.cz>
277
278         * cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
279         * rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
280         * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
281         * insn-notes.def (FUNCTION_END): Remove.
282         * jump.c (delete_related_insns): Don't worry about FUNCTION_END.
283         (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
284         note.
285         * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
286         * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
287         * cfglayout.c (duplicate_insn_chain): Don't worry about
288         NOTE_FUNCTION_END.
289
290 2006-11-27  Richard Guenther  <rguenther@suse.de>
291         Zdenek Dvorak <dvorakz@suse.cz>
292
293         * target.h (struct gcc_target): Add builtin_vectorized_function
294         target hook.
295         * target-def.h (TARGET_VECTORIZE): Likewise.
296         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
297         Document new target hook.
298         * targhooks.h (default_builtin_vectorized_function): Declare.
299         * targhooks.c (default_builtin_vectorized_function): Define.
300         * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
301         (vectorizable_call): Declare.
302         * tree-vect-analyze.c (vect_analyze_operations): Call
303         vectorizable_call.
304         * tree-vect-transform.c (vectorizable_function): New static function.
305         (build_vectorized_function_call): Likewise.
306         (vectorizable_call): New function.
307         (vect_transform_stmt): Handle vectorizable calls.
308
309 2006-11-27  Richard Guenther  <rguenther@suse.de>
310
311         PR middle-end/25620
312         * builtins.c (expand_builtin_pow): Optimize non integer valued
313         constant exponents using sqrt or cbrt if possible.  Always fall back
314         to expanding via optabs.
315
316 2006-11-27  Ira Rosen  <irar@il.ibm.com>
317
318         PR tree-optimization/22372
319         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
320         the type of the base address.
321         (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
322         it in the data-ref pointer creation.
323         (vect_init_vector): Add an argument, type of the init vector. Use it in
324         the stmt creation.
325         (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
326         (get_initial_def_for_reduction): Likewise.
327         (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
328         void_type_node.
329         (vectorizable_assignment, vect_permute_store_chain): Likewise.
330         (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
331         correct type in stmt creation.
332         (vect_setup_realignment): Use the correct type in stmt creation.
333         (vect_permute_load_chain): Change type of MODIFY_EXPR to
334         void_type_node.
335         (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
336         of MODIFY_EXPR to void_type_node.
337         (vectorizable_condition): Change type of MODIFY_EXPR to
338         void_type_node.
339         (vect_update_ivs_after_vectorizer): Use the correct type in stmt
340         creation.
341
342 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
343
344         Revert:
345         2006-05-08  Uros Bizjak  <uros@kss-loka.si>
346         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
347         standard 80387 constants, raise the cost to prevent
348         compress_float_constant() to generate load from memory.
349
350         * config/i386/i386.md: Add new splitter pattern to split
351         float_extended load of constant from constant pool into
352         pure constant load.
353
354 2006-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
355
356         * doc/install.texi: Move GMP/MPFR configure options from Fortran
357         section to general section.  Remove documentation for
358         --with-mpfr-dir and --with-gmp-dir, add documentation for
359         --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
360         --with-gmp-lib.
361
362         * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
363
364 2006-11-26  Razya Ladklesky  <razya@il.ibm.com> 
365
366         * testsuite/gcc.dg/ipa/ipa-6.c: New.
367
368 2006-11-26  Razya Ladklesky  <razya@il.ibm.com>
369         
370         PR tree-optimization/29122
371         * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME 
372         for the new version.  Assign NULL to DECL_RTL of the new version. 
373
374 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
375
376         * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
377
378 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
379
380         * cse.c (cse_altered): Remove.
381         (record_jump_equiv): Make true/false argument a bool instead
382         of an int.
383         (cse_insn): Don't set cse_altered.  Use delete_insn_and_edges
384         where appropriate.  Emit a new jump before the existing one
385         instead of after so that delete_insn_and_edges removes the
386         dead edges properly.  Check any_condjump_p before calling
387         record_jump_equiv.
388         (cse_basic_block): Check any_condjump_p before calling
389         record_jump_equiv.
390         (cse_main): Don't set/check cse_altered.  Remove USE_C_ALLOCA.
391
392 2006-11-25  Brooks Moses  <brooks.moses@codesourcery.com>
393
394         * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
395         -ffixed-line-length-* options.
396
397 2006-11-25  Uros Bizjak  <ubizjak@gmail.com>
398
399         * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387.
400         (fprem1xf4): Rename to fprem1xf4_i387.
401
402         (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
403         Rename patterns to fmod<mode>3.  Use general_operand operand
404         constraint for operands 1 and 2.  Use SSE_FLOAT_MODE_P to disable
405         patterns for SSE math.
406         (remaindersf3, remainderdf3): Ditto.
407
408 2006-11-25  Joseph Myers  <joseph@codesourcery.com>
409
410         * function.c (instantiate_virtual_regs_in_insn): Call force_reg
411         inside start_sequence / end_sequence pair.
412
413 2006-11-25  Steven Bosscher  <steven@gcc.gnu.org>
414
415         * jump.c (mark_all_labels): Work in cfglayout mode.
416         * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
417         when in cfglayout mode, because there are no dead jumptables
418         visible.
419         * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
420         in cfglayout mode.
421         (commit_edge_insertions): Do not allow insertion of instructions
422         with control flow insns when in cfglayout mode.
423
424 2006-11-25  Zdenek Dvorak <dvorakz@suse.cz>
425
426         * tree-vrp.c (execute_vrp): Do not pass loops structure through
427         arguments.
428         * loop-unswitch.c (unswitch_loops, unswitch_single_loop,
429         unswitch_loop): Ditto.
430         * tree-loop-linear.c (linear_transform_loops): Ditto.
431         * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
432         tree_ssa_lim): Ditto.
433         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
434         free_numbers_of_iterations_estimates): Ditto.
435         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
436         tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
437         * cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
438         remove_path, add_loop, loopify, unloop, fix_loop_placements,
439         place_new_loop, duplicate_loop, duplicate_subloops,
440         update_single_exit_for_duplicated_loops, copy_loops_to,
441         duplicate_loop_to_header_edge, create_preheaders,
442         force_single_succ_latches, loop_version, fix_loop_structure):
443         Ditto.
444         * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
445         tree_unroll_loop): Ditto.
446         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
447         * tree-scalar-evolution.c (select_loops_exit_conditions,
448         scev_initialize, scev_analysis): Ditto.
449         * tree-scalar-evolution.h (scev_initialize): Ditto.
450         * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
451         * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
452         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
453         * modulo-sched.c (sms_schedule): Ditto.
454         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
455         * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
456         rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
457         * ifcvt.c (if_convert): Ditto.
458         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
459         canonicalize_loop_induction_variables,
460         canonicalize_induction_variables,
461         tree_unroll_loops_completely, remove_empty_loops): Ditto.
462         * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
463         tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
464         tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
465         tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
466         tree_ssa_loop_done): Ditto.
467         * predict.c (predict_loops, tree_estimate_probability, estimate_loops,
468         estimate_bb_frequencies): Ditto.
469         * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
470         slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
471         * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
472         decide_unrolling_and_peeling, peel_loop_completely,
473         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
474         peel_loop_simple, unroll_loop_stupid): Ditto.
475         * loop-doloop.c (doloop_optimize_loops): Ditto.
476         * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
477         * loop-invariant.c (move_loop_invariants): Ditto.
478         * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
479         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
480         tree_ssa_prefetch_arrays): Ditto.
481         * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
482         Ditto.
483         * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
484         vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
485         * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
486         mark_single_exit_loops, cancel_loop, cancel_loop_tree,
487         verify_loop_structure): Ditto.
488         * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
489         canonicalize_induction_variables, tree_unroll_loops_completely,
490         tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
491         estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
492         tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
493         tree_unroll_loop, linear_transform_loops): Declaration changed.
494         * basic-block.h: Remove declaration of struct loops.
495         * cfghooks.h (struct cfg_hooks): Change type of
496         cfg_hook_duplicate_loop_to_header_edge.
497         (cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
498         * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
499         vect_transform_loop): Declaration changed.
500         * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
501         * cfgloop.h (flow_loops_dump, fix_loop_structure,
502         mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
503         cancel_loop_tree, create_preheaders, force_single_succ_latches,
504         verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
505         loopify, loop_version, remove_path, unswitch_loops,
506         unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
507         Declaration changed.
508
509 2006-11-24  Uros Bizjak  <ubizjak@gmail.com>
510
511         * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
512         (X87MODEF): New mode macro.
513         (ssemodefsuffix): New mode attribute.
514         (truncxf<mode>2_i387_noop_unspec): New insn pattern.
515         (sqrt_extend<mode>xf2_i387): New insn pattern.
516         (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
517         insn and truncate result back to original mode using
518         UNSPEC_TRUNC_NOOP truncation.
519         (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
520         ssemodefsuffix mode attribute.
521         (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
522         (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
523         (*sqrtextenddfxf2_i387): Remove insn patterns.
524
525         (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
526         truncation patterns.
527
528         * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP. 
529         
530 2006-11-24  Jakub Jelinek  <jakub@redhat.com>
531
532         PR c/29955
533         * c-tree.h (c_maybe_initialize_eh): New prototype.
534         * c-decl.c (finish_decl): Move EH initialization...
535         (c_maybe_initialize_eh): ... here.  New function.
536         * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
537         if not #pragma omp atomic.
538
539         PR c/29736
540         * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
541         or UNION_TYPE inner types.
542
543 2006-11-24  Andrew Pinski  <andrew_pinski@playstation.sony.com>
544
545         PR tree-opt/29964
546         * ipa-pure-const.c (check_tree): If the original tree
547         is volatile return early and say the function is not pure
548         nor const.  Remove the volatile check for writes.  
549         (analyze_function): Print out the result of the local
550         analysis pass.
551
552 2006-11-24  Joseph Myers  <joseph@codesourcery.com>
553
554         * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
555         MASK_STRICT_ALIGN.
556         * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
557         * config/rs6000/rs6000.c (rs6000_override_options): Use
558         MASK_STRICT_ALIGN for 8540 and 8548.  Add MASK_STRICT_ALIGN to
559         POWERPC_MASKS.
560
561 2006-11-24  Andreas Krebbel  <krebbel1@de.ibm.com>
562
563         * config/s390.c (s390_emit_compare_and_swap): New function.
564         (s390_expand_cs_hqi, s390_expand_atomic): Call 
565         s390_emit_compare_and_swap.
566
567 2006-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
568
569         * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
570
571 2006-11-24  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
572
573         PR c/2707
574         PR c++/26167
575         * c-common.c (conversion_warning): New.
576         (convert_and_check): Call conversion_warning unless there is an
577         overflow warning.
578         * doc/invoke.texi (-Wconversion): Update description.
579
580 2006-11-23  Daniel Berlin  <dberlin@dberlin.org>
581
582         * tree-ssa-alias.c (tree_pointer_compare): New function.
583         (compact_name_tags): New function.
584         (group_aliases): Call compact_name_tags.
585
586 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
587
588         * real.h (real_isinteger): Declare.
589         * real.c (real_isinteger): Define.
590         * builtins.c (integer_valued_real_p): Use it.
591
592 2006-11-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
593
594         PR c/9072 
595         * c.opt (Wtraditional-conversion): New.
596         (Wconversion): Update description.
597         * c-typeck.c (convert_arguments): Warnings for prototypes causing
598         type conversions different from what would happen in the absence
599         of prototype are now handled by Wtraditional-conversion.
600         * doc/invoke.texi (Wtraditional-conversion): New.
601         (Wconversion): Update description.
602         * doc/trouble.texi (Wconversion): Replace Wconversion by
603         Wtraditional-conversion.
604
605 2006-11-23  Andrew Pinski  <pinskia@gmail.com>
606
607         * predict.c (tree_estimate_probability): Check to make
608         sure current_loops is non null before calling flow_loops_dump.
609
610 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
611
612         * var-tracking.c (emit_note_insn_var_location): Revert previous patch.
613
614 2006-11-23  David Ung  <davidu@mips.com>
615
616         * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
617         combination.
618         (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
619         (ASM_SPEC): Pass along -mfp32 and -mfp64.
620         * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
621         high part of FP register when in 64-bit FP register mode.  Similarly
622         use gen_mfhc1 to load high part of FP register.
623         (override_options): Allow -mgp32 and -mfp64 combination if
624         ISA_HAS_MXHC1 (currently for O32 only).
625         (mips_cannot_change_mode_class): If floating-point registers are
626         bigger than word size. disallow conversion of float register from a
627         large integer mode to a float mode smaller than the float register
628         size.
629         (mips_class_max_nregs): Handle float registers case seperately.
630         * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
631         UNSPEC_MTHC1.
632         (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
633         (movdf_hardfloat_32bit): Similarly.
634         (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
635         support a full 64-bit fpu.
636         (mthc1): New pattern to generate MTHC1 instruction.
637         (mfhc1): New pattern to generate MFHC1 instruction.
638         * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
639         option for the MIPS32R2 and mention its use under O32 ABI.
640
641 2006-11-23  Bernd Schmidt  <bernd.schmidt@analog.com>
642
643         * var-tracking.c (emit_note_insn_var_location): Take care not to
644         cause verify_flow_info failures.
645
646 2006-11-22  Daniel Berlin  <dberlin@dberlin.org>
647
648         * tree-ssa-structalias.c: Remove edge weights in favor of just
649         processing them as complex constraints.
650         (struct constraint_graph): Remove weighted succs and preds. Rename
651         nonweighted succs and preds.
652         (constraint_edge): Removed.
653         (constraint_edge_t): Ditto.
654         (constraint_edge_pool): Ditto.
655         (new_constraint_edge): Ditto.
656         (constraint_edge_equal): Ditto.
657         (constraint_edge_less): Ditto.
658         (constraint_edge_vec_find): Ditto.
659         (erase_self_graph_edge): Ditto.
660         (add_graph_edge): Removed.
661         (get_graph_weights): Ditto.
662         (allocate_graph_weights): Ditto.
663         (valid_weighted_graph_edge): Ditto
664         (bitmap_other_than_zero_bit_set): Ditto.
665         (int_add_graph_edge): Renamed to add_graph_edge.
666         (clear_edges_for_node): Remove support for weighted edges.
667         (merge_graph_nodes): Ditto.
668         (valid_graph_edge): Ditto.
669         (build_constraint_graph): Ditto.
670         (scc_visit): Ditto.
671         (collapse_nodes): Ditto.
672         (process_unification_queue): Ditto.
673         (topo_visit): Ditto.
674         (do_ds_constraint): Ditto.
675         (perform_var_subsitution): Ditto.
676         (solve_graph): Ditto.
677         (init_alias_vars): Ditto.
678         (delete_points_to_sets): Ditto.
679         (do_complex_constraint): Support offsetted copies here.
680
681 2006-11-23  Ulrich Weigand  <uweigand@de.ibm.com>
682
683         * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to
684         SPU_RdEventMask.
685         * config/spu/spu_mfcio.h (spu_read_event_mask): Update.
686
687         * config/spu/spu_mfcio.h (struct mfc_list_element): Change width
688         of size bitfield.
689
690 2006-11-23  Ben Elliston  <bje@au.ibm.com>
691
692         * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p.
693
694 2006-11-23  Zdenek Dvorak <dvorakz@suse.cz>
695
696         PR tree-optimization/29921
697         * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider
698         signed and unsigned zero equal.
699
700 2006-11-22  Peter Bergner  <bergner@vnet.ibm.com>
701
702         * config/rs6000/rs6000.c (get_store_dest): New.
703         (adjacent_mem_locations): Use get_store_dest() to get
704         the rtl of the store destination.
705
706 2006-11-22  Joseph Myers  <joseph@codesourcery.com>
707
708         * config/rs6000/spe.md (SPE64): New mode macro.
709         (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0.  Add
710         memory load.
711         (mov_si<mode>_e500_subreg0_2): New.
712         (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4.  Add
713         memory load.
714         (mov_si<mode>_e500_subreg4_2): New.
715         * config/rs6000/predicates.md (input_operand): Do not allow
716         invalid E500 subregs.
717         (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
718         if TARGET_SPE.
719         * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
720         involving DFmode if TARGET_E500_DOUBLE.  Check for subregs
721         involving vector modes if TARGET_SPE.
722
723 2006-11-22  Kaz Kojima  <kkojima@gcc.gnu.org>
724
725         Revert
726         2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
727         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
728
729 2006-11-22  Bernd Schmidt  <bernd.schmidt@analog.com>
730
731         * config/bfin/predicates.md (d_register_operand, mem_p_address_operand,
732         mem_i_address_operand): New predicates.
733         * config/bfin/bfin.c (bfin_issue_rate): New function.
734         (TARGET_SCHED_ISSUE_RATE): New macro.
735         * config/bfin/bfin.md (addrtype): New attribute.
736         (slot0, slot1, slot2, store, pregs): New cpu_units.
737         (core): Now a define_reservation.
738         (alu): Remove some insn types from this reservation.
739         (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New
740         insn reservations.
741         (dummy reservation): Don't trigger for mcld insns.
742         (absence_sets): Two new absence sets to enforce slot ordering.
743         (popsi_insn): Set addrtype.
744
745 2006-11-22  Ira Rosen  <irar@il.ibm.com>
746
747         * doc/c-tree.texi: Document new tree codes.
748         * doc/md.texi: Document new optabs.
749         * tree-pretty-print.c (dump_generic_node): Handle print of new tree
750         codes.
751         * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs.
752         * optabs.h (optab_index): Add new.
753         (vec_extract_even_optab, vec_extract_odd_optab,
754         vec_interleave_high_optab, vec_interleave_low_optab): New optabs.
755         * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab,
756         vec_interleave_high_optab, vec_interleave_low_optab): Initialize
757         new optabs.
758         * expr.c (expand_expr_real_1): Add implementation for new tree codes.
759         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
760         * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving
761         along with macros for their access.
762         * tree-data-ref.h (first_location_in_loop, data_reference): Update
763         comment.
764         * tree-vect-analyze.c (toplev.h): Include.
765         (vect_determine_vectorization_factor): Fix indentation.
766         (vect_insert_into_interleaving_chain,
767         vect_update_interleaving_chain, vect_equal_offsets): New functions.
768         (vect_analyze_data_ref_dependence): Add argument for interleaving
769         check. Check for interleaving if it's true.
770         (vect_check_dependences): New function.
771         (vect_analyze_data_ref_dependences): Call vect_check_dependences for
772         every ddr. Call vect_analyze_data_ref_dependence with new argument.
773         (vect_update_misalignment_for_peel): Update for interleaving.
774         (vect_verify_datarefs_alignment): Check only first data-ref for
775         interleaving.
776         (vect_enhance_data_refs_alignment): Update for interleaving. Check
777         only first data-ref for interleaving.
778         (vect_analyze_data_ref_access): Check interleaving, update
779         interleaving data.
780         (vect_analyze_data_refs): Call compute_data_dependences_for_loop
781         with different parameters.
782         * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR,
783         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes.
784         * tree-inline.c (estimate_num_insns_1): Add cases for new codes.
785         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
786         Update step in case of interleaving.
787         (vect_strided_store_supported, vect_permute_store_chain): New
788         functions.
789         (vectorizable_store): Handle strided stores.
790         (vect_strided_load_supported, vect_permute_load_chain,
791         vect_transform_strided_load): New functions.
792         (vectorizable_load): Handle strided loads.
793         (vect_transform_stmt): Add argument. Handle strided stores. Check
794         that vectorized stmt exists for patterns.
795         (vect_gen_niters_for_prolog_loop): Update calculation for
796         interleaving.
797         (vect_transform_loop): Remove stmt_vec_info for strided stores after
798         whole chain vectorization.
799         * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD,
800         UNSPEC_INTERHI, UNSPEC_INTERLO): New constants.
801         (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even<mode>,
802         vec_extract_odd<mode>, altivec_vmrghsf, altivec_vmrglsf,
803         vec_interleave_high<mode>, vec_interleave_low<mode>): Implement.
804
805 2006-11-22  Steven Bosscher  <steven@gcc.gnu.org>
806
807         * cse.c (enum taken): Remove PATH_AROUND.
808         (addr_affects_sp_p, invalidate_skipped_set,
809         invalidate_skipped_block): Remove.
810         (cse_end_of_basic_block): Remove skip_blocks and related code.
811         (cse_main): Don't test for flag_cse_skip_blocks.
812         Update cse_end_of_basic_block call.
813         (cse_basic_block): Likewise.  Remove PATH_AROUND case.  Remove
814         code to lengthen the path if a jump was simplified.
815
816 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
817
818         PR rtl-optimization/29924
819         * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL.
820         (unroll_loop_runtime_iterations): Assert that the argument passed to
821         split_edge_and_insert is not NULL.
822         * loop-doloop.c (add_test): Ditto.
823
824 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
825
826         * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor
827         functions.
828         * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto.
829         * cfgloopmanip.c (update_single_exits_after_duplication,
830         update_single_exit_for_duplicated_loop, loop_version): Ditto.
831         * tree-scalar-evolution.c (get_loop_exit_condition,
832         get_exit_conditions_rec, loop_closed_phi_def,
833         number_of_iterations_in_loop, scev_const_prop): Ditto.
834         * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto.
835         * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule):
836         Ditto.
837         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
838         Ditto.
839         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
840         slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2,
841         slpeel_make_loop_iterate_ntimes,
842         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p,
843         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
844         Ditto.
845         * tree-if-conv.c (if_convertible_loop_p): Ditto.
846         * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p,
847         vect_analyze_loop_form): Ditto.
848         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p,
849         can_convert_to_perfect_nest, perfect_nestify): Ditto.
850         * tree-vect-transform.c (vect_create_epilog_for_reduction,
851         vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
852         vect_transform_loop): Ditto.
853         * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto.
854         (single_exit, set_single_exit): New functions.
855         * cfgloop.h (struct loop): Rename single_exit field to single_exit_.
856         (single_exit, set_single_exit): Declare.
857         * doc/loop.texi: Undocument single_exit field.  Document single_exit
858         accessor function.
859
860 2006-11-22  Zdenek Dvorak <dvorakz@suse.cz>
861
862         PR tree-optimization/29902
863         * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
864         any involved ssa name appears in abnormal phi node.
865
866 2006-11-21  Bob Wilson  <bob.wilson@acm.org>
867
868         * config/xtensa/xtensa.c (xtensa_char_to_class): Delete.
869         (xtensa_const_ok_for_letter_p): Delete.
870         (xtensa_extra_constraint): Delete.
871         (override_options): Delete xtensa_char_to_class initialization.
872         * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete.
873         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
874         (EXTRA_CONSTRAINT): Delete.
875         * config/xtensa/xtensa.md: Include constraints.md.
876         (call_internal): Combine alternatives.
877         (call_value_internal): Likewise, and remove invalid constraints.
878         * config/xtensa/constraints.md: New file.
879         * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete.
880         (xtensa_extra_constraint): Delete.
881         * doc/md.texi (Machine Constraints): Refer to constraints.md for
882         Xtensa constraints.
883
884 2006-11-21  Janis Johnson  <janis187@us.ibm.com>
885
886         * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result
887         of conversion that doesn't fit.
888
889         * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
890         * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
891         DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
892
893         * config/dfp-bit.c (dfp_binary_func): Fix typedef.
894
895 2006-11-21  Douglas Gregor <doug.gregor@gmail.com>
896
897         * c-common.h (enum rid): Add RID_STATIC_ASSERT.
898
899 2006-11-21  Richard Guenther  <rguenther@suse.de>
900
901         * tree-vectorizer.h (NUM_PATTERNS): Increase.
902         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
903         vect_recog_pow_pattern.
904         (vect_recog_pow_pattern): New function.
905
906 2006-11-21  Bernd Schmidt  <bernd.schmidt@analog.com>
907
908         * config/bfin/bfin.opt (mstack-check-l1): New.
909         * doc/invoke.texi (Blackfin Options): Document it.
910         * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use
911         stack bounds in L1 memory if the new option is enabled.
912         (override_options): Don't allow combinations of -fstack-limit and
913         -mstack-check-l1.
914         (add_to_reg): Renamed from add_to_sp.  All callers changed.  Lose some
915         dead code.
916
917         * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31
918         regs for DImode.
919         (bfin_register_move_cost): Bump costs if trying to move plain
920         integer values through accumulators.
921
922 2006-11-21  Ben Elliston  <bje@au.ibm.com>
923
924         * config/spu/spu.c (spu_expand_vector_init): Initialise x.
925
926 2006-11-20  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
927             Russell Olsen <Russell_Olsen@playstation.sony.com>
928             Dmitri Makarov <Dmitri_Makarov@playstation.sony.com>
929             Yukishige Shibata <shibata@rd.scei.sony.co.jp>
930             Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
931             Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
932             Andrew Pinski <Andrew_Pinski@playstation.sony.com>
933
934         * config.gcc: Add target for SPU.
935         * config/spu/constraints.md: New file.
936         * config/spu/crt0.c: New file.
937         * config/spu/crtend.c: New file.
938         * config/spu/crti.asm: New file.
939         * config/spu/crtn.asm: New file.
940         * config/spu/float_unsdidf.c: New file.
941         * config/spu/float_unssidf.c: New file.
942         * config/spu/predicates.md: New file.
943         * config/spu/spu-builtins.def: New file.
944         * config/spu/spu-builtins.h: New file.
945         * config/spu/spu-builtins.md: New file.
946         * config/spu/spu-c.c: New file.
947         * config/spu/spu-elf.h: New file.
948         * config/spu/spu-modes.def: New file.
949         * config/spu/spu-protos.h: New file.
950         * config/spu/spu.c: New file.
951         * config/spu/spu.h: New file.
952         * config/spu/spu.md: New file.
953         * config/spu/spu.opt: New file.
954         * config/spu/spu_internals.h: New file.
955         * config/spu/spu_intrinsics.h: New file.
956         * config/spu/spu_mfcio.h: New file.
957         * config/spu/t-spu-elf: New file.
958         * config/spu/vec_types.h: New file.
959         * config/spu/vmx2spu.h: New file.
960         * doc/contrib.texi: Document SPU contributor.
961         * doc/extend.texi: Document SPU extensions.
962         * doc/invoke.texi: Document SPU options.
963         * doc/md.texi: Document SPU constraints.
964
965 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
966
967         * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
968         of the loop.
969         * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
970         Removed.
971         (flow_loop_dump): Do not dump loop level.
972         (flow_loops_find): Do not call flow_loops_level_compute.
973         * cfgloop.h (struct loop): Remove level field.
974
975 2006-11-21  Zdenek Dvorak <dvorakz@suse.cz>
976
977         * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
978         hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
979         Use vector of edges instead of array.
980         * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
981         estimate_numbers_of_iterations_loop): Ditto.
982         * predict.c (predict_loops): Ditto.
983         * loop-unroll.c (analyze_insns_in_loop): Ditto.
984         * tree-ssa-threadupdate.c: Remove declaration of heap allocation for
985         edge vectors.
986         * basic-block.h: Declare heap allocation for edge vectors.
987         * tree-outof-ssa.c: Ditto.
988         * cfgloop.c (get_loop_exit_edges): Return vector of edges.
989         * cfgloop.h (get_loop_exit_edges): Declaration changed.
990
991 2006-11-20  Zack Weinberg  <zackw@panix.com>
992
993         * gengtype.c (process_gc_options): Remove unnecessary forward decl.
994         Add another out parameter, "skip".
995         (set_gc_used_type): Adjust calls to process_gc_options.  If a field
996         is tagged "skip", do not mark its type used.
997
998 2006-11-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
999
1000         PR tree-opt/25500
1001         * tree-sra.c (single_scalar_field_in_record_p): New function.
1002         (decide_block_copy): Use it.
1003
1004 2006-11-20  David Daney  <ddaney@avtrex.com>
1005
1006         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
1007         PC to point to following instruction.
1008
1009 2006-11-20  Anatoly Sokolov <aesok@post.ru>
1010
1011         PR target/18553
1012         PR target/29449
1013         * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
1014
1015         * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
1016
1017 2006-11-20  J"orn Rennecke  <joern.rennecke@st.com>
1018
1019         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
1020         Add sh/superh.h to tm_file.
1021
1022 2006-11-20  Carlos O'Donell  <carlos@codesourcery.com>
1023             Mark Mitchell  <mark@codesourcery.com>
1024
1025         * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and 
1026         gcc_exec_prefix.
1027         (cpp_relocated): New function.
1028         * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix 
1029         and cpp_relocated. 
1030         * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option.
1031         * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated,
1032         replace configured prefix with gcc_exec_prefix. 
1033
1034 2006-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
1035
1036         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call
1037         bfin_legitimate_constant_p.
1038         * config/bfin/bfin.md (movsi expander): Check return value of
1039         expand_mvoe.
1040         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare.
1041         (expand_move): Adjust prototype.
1042         * config/bfin/bfin.c (expand_move): Now returns bool.  Handle
1043         invalid constants specially.
1044         (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New
1045         functions.
1046         (TARGET_CANNOT_FORCE_CONST_MEM): New macro.
1047
1048         * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol,
1049         sibcall_value_symbol): Allow these patterns if
1050         TARGET_LEAF_ID_SHARED_LIBRARY.
1051         * config/bfin/bfin.c (bfin_expand_call): Allow them here as well.
1052         (override_options): Turn on id shared library flags if -msep-data,
1053         but disallow the combination of these options on the command line.
1054         * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA
1055         MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros.
1056         (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies
1057         -mid-shared-library.
1058         (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data.
1059         * doc/invoke.texi (Blackfin Options): Document new switches.
1060
1061         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
1062         edge cases with local functions and TARGET_ID_SHARED_LIBRARY.
1063
1064         * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially
1065         inflate costs for addresses with an out-of-bounds address.
1066
1067 2006-11-19  Andrew Pinski  <pinskia@gmail.com>
1068
1069         PR rtl-opt/29879
1070         * fwprop.c (loops): Remove.
1071         (forward_propagate_into): Use current_loops instead of
1072         loops.
1073         (fwprop_init): Call loop_optimizer_init instead of
1074         flow_loops_find.
1075         (fwprop_done): Call loop_optimizer_finalize instead of
1076         flow_loops_free.
1077         (fwprop): Use current_loops instead of loops.
1078
1079 2006-11-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1080
1081         PR c++/8586
1082         * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall.
1083
1084 2006-11-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1085
1086         PR target/29114
1087         * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
1088         larger than BITS_PER_WORD.
1089
1090 2006-11-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1091
1092         PR fortran/27885
1093         PR middle-end/28176
1094         * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
1095         to MAX_FIXED_MODE_SIZE.
1096
1097 2006-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1098
1099         * builtins.c (integer_valued_real_p): Handle fmin/fmax.
1100         (fold_builtin_fmin_fmax): New.
1101         (fold_builtin_1): Use it.
1102
1103         * fold-const.c (fold_strip_sign_ops): Handle copysign.
1104
1105 2006-11-18  Richard Guenther  <rguenther@suse.de>
1106
1107         * config/i386/i386.c (ix86_builtins): New array for ix86
1108         builtin function decls.
1109         (def_builtin): New function.
1110         (def_builtin_const): Likewise.
1111         (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
1112
1113 2006-11-18  Vladimir Makarov  <vmakarov@redhat.com>
1114
1115         * doc/invoke.texi (core2): Add item.
1116
1117         * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
1118         macros.
1119         (TARGET_CPU_CPP_BUILTINS): Add code for core2.
1120         (TARGET_CPU_DEFAULT_generic): Change value.
1121         (TARGET_CPU_DEFAULT_NAMES): Add core2.
1122         (processor_type): Add new constant PROCESSOR_CORE2.
1123
1124         * config/i386/i386.md (cpu): Add core2.
1125
1126         * config/i386/i386.c (core2_cost): New initialized variable.
1127         (m_CORE2): New macro.
1128         (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
1129         x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
1130         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
1131         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
1132         x86_partial_reg_dependency, x86_memory_mismatch_stall,
1133         x86_accumulate_outgoing_args, x86_prologue_using_move,
1134         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
1135         x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
1136         x86_use_incdec, x86_four_jump_limit, x86_schedule,
1137         x86_pad_returns): Add m_CORE2.
1138         (override_options): Add entries for Core2.
1139         (ix86_issue_rate): Add case for Core2.
1140         
1141 2006-11-18  Aldy Hernandez  <aldyh@redhat.com>
1142
1143         * doc/invoke.texi: Fix mno-isel typo.
1144
1145 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
1146
1147         * config/rs6000/spe.md (movv4hi_internal): Add alternative for
1148         easy vector constant loads.
1149
1150 2006-11-18  Joseph Myers  <joseph@codesourcery.com>
1151
1152         * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
1153         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1154         __NO_LWSYNC__ if TARGET_NO_LWSYNC.
1155         * config/rs6000/sync.md (lwsync): Emit plain sync if
1156         TARGET_NO_LWSYNC.
1157
1158 2006-11-17  DJ Delorie  <dj@redhat.com>
1159
1160         * reload1.c (reloads_unique_chain): New.
1161         (reloads_conflict): Call it.
1162
1163 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1164
1165         * config/xtensa/predicates.md (addsubx_operand): New.
1166         * config/xtensa/xtensa.c (xtensa_emit_branch): New.
1167         (xtensa_emit_bit_branch): New.
1168         (xtensa_emit_movcc): New.
1169         * config/xtensa/xtensa.md (any_minmax): New code macro.
1170         (minmax): New code attribute.
1171         (any_cond, any_scc, any_scc_sf): New code macros.
1172         (*addx2, *addx4, *addx8): Delete.
1173         (*addx): New.
1174         (*subx2, *subx4, *subx8): Delete.
1175         (*subx): New.
1176         (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
1177         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
1178         (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
1179         (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
1180         (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
1181         (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
1182         (movsfcc_internal0, movsfcc_internal1): Likewise.
1183         (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
1184         * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
1185         (xtensa_emit_bit_branch): New.
1186         (xtensa_emit_movcc): New.
1187         (function_arg_boundary): Add missing prototype.
1188
1189 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1190
1191         * config/xtensa/xtensa.md (tstsi): Delete
1192
1193 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1194
1195         * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
1196
1197 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1198
1199         * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1200
1201 2006-11-17  Bob Wilson  <bob.wilson@acm.org>
1202
1203         * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
1204
1205 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1206
1207         * tree-vrp.c (execute_vrp): Do not update current_loops.
1208         * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
1209         * doc/loop.texi: Remove documentation for cancelled functions.
1210         * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
1211         (move_computations, determine_lsm): Use bsi_commit_edge_inserts
1212         instead.
1213         * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
1214         (remove_path): Ensure that in delete_basic_blocks, the loops
1215         are still allocated.
1216         (add_loop): Work on valid loop structures.
1217         (loopify): Modify call of add_loop.
1218         (mfb_update_loops): Removed.
1219         (create_preheader): Do not update loops explicitly.
1220         (force_single_succ_latches, loop_version): Do not use
1221         loop_split_edge_with.
1222         (loop_split_edge_with): Removed.
1223         * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
1224         Do not use bsi_insert_on_edge_immediate_loop.
1225         (split_loop_exit_edge, tree_unroll_loop): Do not use
1226         loop_split_edge_with.
1227         (bsi_insert_on_edge_immediate_loop): Removed.
1228         * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops.  Do not
1229         use loop_split_edge_with.
1230         * cfghooks.c: Include cfgloop.h.
1231         (verify_flow_info): Verify that loop_father is filled iff current_loops
1232         are available.
1233         (redirect_edge_and_branch_force, split_block, delete_basic_block,
1234         split_edge, merge_blocks, make_forwarder_block, duplicate_block):
1235         Update cfg.
1236         * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
1237         no loops.
1238         * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
1239         loop_split_edge_with.
1240         (sms_schedule): Use current_loops.
1241         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
1242         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
1243         current_loops.
1244         (rtl_loop_init, rtl_loop_done): Do not set current_loops.
1245         * tree-ssa-sink.c (execute_sink_code): Use current_loops.
1246         * ifcvt.c (if_convert): Ditto.
1247         * predict.c (predict_loops): Do not clear current_loops.
1248         (tree_estimate_probability): Use current_loops.
1249         (propagate_freq): Receive head of the region to propagate instead of
1250         loop.
1251         (estimate_loops_at_level): Do not use shared to_visit bitmap.
1252         (estimate_loops): New function.  Handle case current_loops == NULL.
1253         (estimate_bb_frequencies): Do not allocate tovisit.  Use
1254         estimate_loops.
1255         * tree-ssa-loop.c (current_loops): Removed.
1256         (tree_loop_optimizer_init): Do not return loops.
1257         (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
1258         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
1259         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
1260         Do not update loops explicitly.
1261         * function.h (struct function): Add x_current_loops field.
1262         (current_loops): New macro.
1263         * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
1264         * loop-unroll.c (split_edge_and_insert): New function.
1265         (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
1266         use loop_split_edge_with.
1267         * loop-doloop.c (add_test, doloop_modify): Ditto.
1268         * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
1269         * cfglayout.c (copy_bbs): Do not update loops explicitly.
1270         * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
1271         * tree-vect-transform.c (vect_transform_loop): Do not update loops
1272         explicitly.
1273         * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
1274         (flow_loops_free): Do not free dfs_order and rc_order.
1275         (flow_loops_find): Do not set dfs_order and rc_order in loops
1276         structure.  Do not call loops and flow info verification.
1277         (add_bb_to_loop, remove_bb_from_loops): Check whether the block
1278         already belongs to some loop.
1279         * cfgloop.h (struct loops): Remove struct cfg.
1280         (current_loops, loop_split_edge_with): Declaration removed.
1281         (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
1282         * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
1283         Declaration removed.
1284         * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
1285         * basic-block.h (split_edge_and_insert): Declare.
1286         * tree-cfg.c (remove_bb): Do not update loops explicitly.
1287
1288 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1289
1290         PR tree-optimization/29801
1291         * tree-ssa-ccp.c (get_symbol_constant_value): New function.
1292         (get_default_value): Use get_symbol_constant_value.
1293         (set_lattice_value): ICE when the value of the constant is
1294         changed.
1295         (visit_assignment): Ignore VDEFs of read-only variables.
1296
1297 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1298
1299         * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
1300         formating.
1301         (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
1302         vect_gen_niters_for_prolog_loop): Fold the emited expressions.
1303
1304 2006-11-17  Zdenek Dvorak <dvorakz@suse.cz>
1305
1306         * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
1307         select subvars of var.
1308
1309 2006-11-17  Jakub Jelinek  <jakub@redhat.com>
1310
1311         PR middle-end/29584
1312         * tree-ssa-forwprop.c (simplify_switch_expr): Don't
1313         optimize if DEF doesn't have integral type.
1314
1315 2006-11-16  Mike Stump  <mrs@apple.com>
1316
1317         * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
1318         pre-darwin9 system, unless the user asks for it directly.
1319         (PREFERRED_DEBUGGING_TYPE): Likewise.
1320         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
1321         * config.gcc: Add suppport for darwin9.h.
1322         * config/darwin9.h: Add.
1323         * doc/install.texi (Specific): Clarify darwin documentation.
1324         
1325 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
1326
1327         * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
1328         optimizing for size.
1329
1330 2006-11-16  Mike Stump  <mrs@apple.com>
1331
1332         * Makefile.in (targhooks.o): Add $(OPTABS_H).
1333
1334 2006-11-16  Dirk Mueller  <dmueller@suse.de>
1335
1336         * tree-vrp.c (get_value_range): Use XCNEW instead
1337         of XNEW and memset.
1338         (insert_range_assertions): Use XCNEWVEC instead
1339         of XNEWVEC and memset.
1340         (vrp_initialize): Same.
1341         (vrp_finalize): Same.
1342         * tree-ssa-ccp.c (ccp_initialize): Same.
1343         * predict.c (tree_bb_level_predictions): Same.
1344         * calls.c (expand_call): Same.
1345         * tree-ssa-copy.c (init_copy_prop): Same.
1346         (fini_copy_prop): Same.
1347         * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
1348         of GGC_NEW and memset.
1349
1350 2006-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1351
1352         PR middle-end/26306
1353         * gimplify.c (gimplify_expr): Only force a load for references to
1354         non-BLKmode volatile values.
1355         * doc/implement-c.texi (Qualifiers implementation): Document the
1356         interpretation of what a volatile access is.
1357         * doc/extend.texi (C++ Extensions): Rework same documentation.
1358
1359 2006-11-16  Joseph Myers  <joseph@codesourcery.com>
1360
1361         * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
1362         memory operand.
1363
1364 2006-11-16  Richard Earnshaw  <rearnsha@arm.com>
1365
1366         * arm.md (abssi2): Allow Thumb as well.  Use an SImode scratch for
1367         Thumb.
1368         (arm_neg_abssi2): Renamed from neg_abssi2.
1369         (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
1370
1371 2006-11-16  Uros Bizjak  <ubizjak@gmail.com>
1372
1373         * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
1374         number of arguments passed to local functions in SSE registers is 3.
1375
1376         * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
1377         number of arguments passed in SSE registers to 3.
1378
1379 2006-11-16  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1380
1381         PR target/29201
1382         * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
1383         bb to ...
1384         (get_last_bb_insn): ... new global function.
1385         (basic_block.h): Declare it.
1386         * haifa-sched.c (create_recovery_block): Use it.
1387
1388 2006-11-15  H.J. Lu  <hongjiu.lu@intel.com>
1389
1390         PR middle-end/29862
1391         * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
1392
1393 2006-11-15  Paul Brook  <paul@codesourcery.com>
1394
1395         * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
1396         _Unwind_GetTextRelBase): Move from here ...
1397         * config/arm/pr-support.c (_Unwind_GetDataRelBase,
1398         _Unwind_GetTextRelBase): ... To here.
1399
1400 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1401
1402         * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
1403         addresses we generate for testing are aligned.
1404
1405 2006-11-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1406
1407         PR tree-opt/29788
1408         * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
1409         to what is the const decl is a place holder for.
1410
1411 2006-11-15  Uros Bizjak  <ubizjak@gmail.com>
1412
1413         * config/i386/i386.opt: New target option -mx87regparm.
1414
1415         * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
1416         and float_in_x87 variables. mmx_words, sse_words: Remove.
1417         (X87_REGPARM_MAX): Define.
1418
1419         * config/i386/i386.c (override_options): Error out for
1420         -mx87regparm but no 80387 support.
1421         (ix86_attribute_table): Add x87regparm.
1422         (ix86_handle_cconv_attribute): Update comments for x87regparm.
1423         (ix86_comp_type_attributes): Check for mismatched x87regparm types.
1424         (ix86_function_x87regparm): New function.
1425         (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
1426         point registers.
1427         (init_cumulative_args): Initialize x87_nregs and float_in_x87
1428         variables.
1429         (function_arg_advance): Process x87_nregs and x87_regno when
1430         floating point argument is to be passed in 80387 register.
1431         (function_arg): Pass XFmode arguments in 80387 registers for local
1432         functions.  Pass SFmode and DFmode arguments to local functions
1433         in 80387 registers when flag_unsafe_math_optimizations is set.
1434
1435         * reg-stack.c (convert_regs_entry): Disable NaN load for
1436         stack registers that are used for argument passing.
1437
1438         * doc/extend.texi: Document x87regparm function attribute.
1439         * doc/invoke.texi: Document -mx87regparm.
1440
1441 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1442
1443         * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
1444         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
1445         arg MODE; all callers changed.  Use it to determine validity per
1446         machine mode instead of using Pmode for all memory references.
1447         (get_address_cost): Likewise add and use new arg MEM_MODE.
1448
1449 2006-11-15  Rask Ingemann Lambertsen <rask@sygehus.dk>
1450             J"orn Rennecke <joern.rennecke@st.com>
1451
1452         * combine.c (likely_spilled_retval_1): Fix masking operation.
1453         (likely_spilled_retval_p): Use proper pattern for call to
1454         likely_spilled_retval_1.
1455
1456 2006-11-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1457
1458         * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
1459
1460         * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
1461         that tests for CONSTANT_POOL_ADDRESS_P.
1462
1463 2006-11-15  Jakub Jelinek  <jakub@redhat.com>
1464
1465         PR tree-optimization/29581
1466         * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
1467         REPLACEMENTS, FIRSTBSI arguments.  If initial condition or
1468         type is different between Y and USE, create a temporary
1469         variable, initialize it at the beginning of the body bb
1470         and use it as replacement instead of Y.
1471
1472 2006-11-15  Paolo Bonzini  <bonzini@gnu.org>
1473
1474         PR middle-end/29753
1475         * gimplify.c (fold_indirect_ref_rhs): Use
1476         STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
1477
1478 2006-11-14  Richard Earnshaw  <rearnsha@arm.com>
1479
1480         * expmed.c (emit_store_flag_1): New function.
1481         (emit_store_flag): Call it.  If we can't find a suitable scc insn,
1482         try a cstore insn.
1483         * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
1484         Use do_compare_rtx_and_jump.
1485         * arm.h (BRANCH_COST): Increase to 2 on Thumb.
1486         * arm.md (cstoresi4): New define_expand.
1487         (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
1488         (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
1489         (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
1490
1491 2006-11-14  Caroline Tice  <ctice@apple.com>
1492                 
1493         * dwarf2out.c (debug_pubtypes_section): New static global variable.
1494         (pubname_entry):  Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
1495         this type.
1496         (pubname_table):  Redefine as a vector.
1497         (pubtype_table):  New static global variable, defined as a vector.
1498         (pubname_table_allocated): Remove static global variable.
1499         (pubname_table_in_use): Remove static global variable.
1500         (PUBNAME_TABLE_INCREMENT): Remove constant.
1501         (size_of_pubnames): Add parameter to deal with either pubnames or 
1502         pubtypes, and change code to deal with table being a vector.
1503         (add_pubname):  Change to deal with table being a vector.
1504         (add_pubtype):  New function.
1505         (output_pubnames): Add parameter to deal with either pubnames or 
1506         pubtypes, and change code to deal with table being a vector.
1507         (gen_array_type_die):  Add call to add_pubtype.
1508         (gen_enumeration_type_die): Add call to add_pubtype.
1509         (gen_struct_or_union_type_die): Add call to add_pubtype.
1510         (gen_subroutine_type_die): Add call to add_pubtype.
1511         (gen_typedef_die):  Add call to add_pubtype.
1512         (dwarf2out_init): Add code to initialize pubname_table and 
1513         pubtype_table vectors; also initialize debug_pubtypes_section.
1514         (prune_unused_types):  Change to deal with pubnames being a vector.
1515         (dwarf2out_finish): Change to deal with pubnames being a vector; add 
1516         pubnames table to call to output_pubnames;  Add code to output pubtypes 
1517         table if DEBUG_PUBTYPES_SECTION is defined.
1518         * config/darwin.c (darwin_file_start):  Add DEBUG_PUBTYPES_SECTION to 
1519         debugnames.
1520         * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
1521
1522 2006-11-14  Joseph Myers  <joseph@codesourcery.com>
1523
1524         * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
1525         iwmmxt_nregs if TARGET_IWMMXT_ABI.
1526         * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
1527         movv2si_internal): Support moves between core registers.
1528
1529 2006-11-14  Eric Christopher  <echristo@apple.com>
1530
1531         * configure: Regenerate with autoconf 2.59.
1532
1533 2006-11-14  Daniel Berlin  <dberlin@dberlin.org>
1534
1535         Fix PR tree-optimization/27755
1536
1537         * tree-ssa-pre.c: Update comments.
1538         (bb_bitmap_sets): Add pa_in and  deferred member.
1539         (BB_DEFERRED): New macro.
1540         (maximal_set): New variable.
1541         (pre_stats): Add pa_insert member.
1542         (bitmap_set_and): Short circuit orig == dest.
1543         (bitmap_set_subtract_values): New function.
1544         (bitmap_set_contains_expr): Ditto.
1545         (translate_vuses_through_block): Add phiblock argument.
1546         (dependent_clean): New function.
1547         (compute_antic_aux): Update for maximal_set changes.
1548         (compute_partial_antic_aux): New function.
1549         (compute_antic): Handle partial anticipation.
1550         (do_partial_partial_insertion): New function.
1551         (insert_aux): Handle partial anticipation.
1552         (add_to_sets): Add to maximal set.
1553         (compute_avail): Ditto.
1554         (init_pre): Initialize maximal_set.
1555         (execute_pre): Do partial anticipation if -O3+.
1556
1557 2006-11-14  Paolo Bonzini  <bonzini@gnu.org>
1558
1559         PR rtl-optimization/29798
1560
1561         * fwprop.c (use_killed_between): Check that DEF_INSN dominates
1562         TARGET_INSN before any other check.
1563         (fwprop_init): Always calculate dominators.
1564         (fwprop_done): Always free them.
1565
1566 2006-11-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1567
1568         * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
1569         COND_EXPR.
1570
1571 2006-11-13  DJ Delorie  <dj@redhat.com>
1572
1573         * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
1574         temporary for intermediates.
1575
1576 2006-11-13  Kaz Kojima  <kkojima@gcc.gnu.org>
1577
1578         * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
1579         (sh_optimize_target_register_callee_saved): #if 0 the code
1580         using NOTE_INSN_LOOP_{BEG,END}.
1581
1582 2006-11-13  Roger Sayle  <roger@eyesopen.com>
1583
1584         * fold-const.c (optimize_bit_field_compare): Recursively call
1585         fold when simplifying non-constant comparisons between bit-fields.
1586
1587 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
1588
1589         * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
1590         test.
1591         * configure: Rebuilt.
1592
1593 2006-11-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1594
1595         * config/rs6000/cell.md: New file.
1596         * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
1597         variable.
1598         (ppccell_cost): New cost matrix.
1599         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
1600         (rs6000_override_options): Set rs6000_always_hint to false
1601         for cell. Also align functions/lables/loops to 8byte
1602         for the Cell. Use PROCESSOR_CELL.
1603         (rs6000_emit_epilogue): Rename using_mfcr_multiple to
1604         using_mtcr_multiple.
1605         (rs6000_variable_issue): If the insn is a nonpipelined instruction
1606         on the Cell, return 0.
1607         (rs6000_adjust_cost): Add Cell cost adjustments.
1608         (is_microcoded_insn): Return true for Cell microcoded
1609         instructions.
1610         (is_nonpipeline_insn): New function.
1611         (rs6000_issue_rate): Add PROCESSOR_CELL.
1612         (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
1613         instructions.
1614         (rs6000_use_sched_lookahead_guard): New function.
1615         (rs6000_sched_reorder):  Reorder the ready list, if the second
1616         to last ready insn is a nonepipeline insn on the Cell.
1617         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
1618         (ASM_CPU_SPEC): Add Cell.
1619         * config/rs6000/rs6000.md (cpu): Add Cell.
1620         (cell_micro): New Attr.
1621         Include cell.md
1622
1623 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
1624
1625         * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
1626         style versions.
1627         * configure: Rebuilt.
1628
1629 2006-11-13  Richard Guenther  <rguenther@suse.de>
1630
1631         * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
1632         return value.
1633         (ix86_expand_lfloorceil): Likewise.
1634         (ix86_expand_rint): Likewise.
1635         (ix86_expand_floorceildf_32): Likewise.
1636         (ix86_expand_floorceil): Likewise.
1637         (ix86_expand_rounddf_32): Likewise.
1638         (ix86_expand_truncdf_32): Likewise.
1639         (ix86_expand_round): Likewise.
1640
1641 2006-11-13  Carlos O'Donell  <carlos@codesourcery.com>
1642             Mark Mitchell  <mark@codesourcery.com>
1643
1644         * gcc.c: Organize search path variables into $prefix relative,
1645         and well-known native. Add comments.
1646         (add_sysrooted_prefix): Add comment.
1647         (process_command): If !gcc_exec_prefix add $prefix based paths.
1648         If *cross_compile == '0', add native well-known paths.
1649         Assert tooldir_base_prefix is always relative.
1650         (main): If print_search_dirs, and if gcc_exec_prefix is set,
1651         use this value for 'install:' path.
1652         * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
1653
1654 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
1655
1656         * config/i386/i386.c: Fix a typo in comment.
1657
1658 2006-11-13  Michael Matz  <matz@suse.de>
1659
1660         * genemit.c (gen_expand): Allocate enough memory.
1661
1662 2006-11-13  Joseph Myers  <joseph@codesourcery.com>
1663
1664         * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
1665         __GXX_TYPEINFO_EQUALITY_INLINE but not
1666         __GXX_MERGED_TYPEINFO_NAMES.
1667         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
1668         __GXX_MERGED_TYPEINFO_NAMES.
1669         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
1670         __GXX_TYPEINFO_EQUALITY_INLINE.
1671
1672 2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>
1673             Zdenek Dvorak <dvorakz@suse.cz>
1674
1675         PR tree-optimization/29680
1676         * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
1677         PR 14784.
1678
1679 2006-11-12  Jason Merrill  <jason@redhat.com>
1680             Andrew Pinski <pinskia@physics.uc.edu>
1681
1682         PR middle-end/28915
1683         * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
1684         vector ctors.
1685         * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
1686         vector ctors.
1687         * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
1688         * tree.c (build_vector): Handle non-_CST elements.
1689
1690 2006-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1691
1692         * genemit.c (gen_insn): Call gen_exp with a non-null used
1693         when handling multiple insns.
1694         (gen_expand): Likewise.
1695         * reorg.c (emit_delay_sequence): Copy the delay slot insn.
1696         * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
1697         (movsi_const_16bit+1): Copy operands[1].
1698         (call_pcrel): Copy the call_site pattern.
1699         (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
1700
1701 2006-11-12  Roger Sayle  <roger@eyesopen.com>
1702
1703         * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
1704         condition for transformations.  Use !HONOR_SIGN_DEPENDENT_ROUNDING
1705         && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
1706         (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
1707
1708 2006-11-12  Daniel Berlin  <dberlin@dberlin.org>
1709
1710         Fix PR tree-optimization/29587
1711         * tree-ssa-structalias.c (process_constraint): Don't
1712         mark address taken due only to escaped vars constraint.
1713
1714 2006-11-12  Michael Matz  <matz@suse.de>
1715             Roger Sayle  <roger@eyesopen.com>
1716
1717         PR rtl-optimization/29797
1718         * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
1719         BITS_BIG_ENDIAN targets.
1720
1721 2006-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1722
1723         * builtins.c (fold_builtin_cosh): New.
1724         (fold_builtin_1): Use it.
1725         * fold-const.c (negate_mathfn_p): Add llround, lround, round,
1726         trunc to the list of "odd" functions.  Also add llrint, lrint,
1727         rint and nearbyint when flag_rounding_math is false.
1728
1729 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1730
1731         * tree-flow.h (name_mappings_registered_p): Declare.
1732         * tree-into-ssa.c (name_mappings_registered_p): New function.
1733         * tree-cfg.c (tree_can_merge_blocks_p): Check
1734         name_mappings_registered_p instead of need_ssa_update_p.
1735
1736 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1737
1738         * tree-ssa-loop.c (tree_vectorize): Return the result of
1739         vectorize_loops.
1740         * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
1741         if anything changed.
1742         * tree-vectorizer.h (vectorize_loops): Declaration removed.
1743         * tree-flow.h (vectorize_loops): Declaration changed.
1744
1745 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1746
1747         * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
1748         comments.
1749         (issue_prefetch_ref): Move assignment to write_p out of loop.
1750         (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
1751         SIMULTANEOUS_PREFETCHES into account.
1752         (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
1753         * lambda-code.c (lcm): Renamed to ...
1754         (least_common_multiple): ... and exported.
1755         * tree-flow.h (least_common_multiple): Declare.
1756
1757 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1758
1759         * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
1760         * tree-ssa-loop-niter.c (derive_constant_upper_bound):  Follow
1761         ud-chains.  Handle AND_EXPR.
1762         (record_estimate): Record whether the estimate is realistic
1763         and whether it is derived from a loop exit.
1764         (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
1765         infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
1766         functions.
1767         (compute_estimated_nb_iterations): Take only realistic bounds into
1768         account.  Set estimate_state.  Use double_ints.
1769         (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
1770         and infer_loop_bounds_from_signedness.  Do not consider basic blocks
1771         that do not have to be always executed.
1772         (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
1773         to determine whether to call infer_loop_bounds_from_undefined
1774         and compute_estimated_nb_iterations.
1775         (n_of_executions_at_most): Use double_ints.
1776         (free_numbers_of_iterations_estimates_loop): Set estimate_state.
1777         (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
1778         * double-int.c (double_int_to_tree): Improve comment.
1779         (double_int_fits_to_tree_p): New function.
1780         * double-int.h (double_int_fits_to_tree_p): Declare.
1781         * tree-data-ref.c: Include langhooks.h.
1782         (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
1783         (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
1784         (analyze_array): Do not pass estimate_only argument to
1785         analyze_array_indexes.
1786         (get_number_of_iters_for_loop): Build tree from the stored double_int
1787         value.
1788         (get_references_in_stmt, find_data_references_in_stmt): New functions.
1789         (find_data_references_in_loop): Use find_data_references_in_stmt.
1790         * tree-data-ref.h (struct data_ref_loc_d): New.
1791         (get_references_in_stmt): Declare.
1792         (estimate_iters_using_array): Declaration removed.
1793         * cfgloop.h (struct nb_iter_bound): Change type of bound to
1794         double_int.  Improve comments.  Add is_exit and realistic
1795         fields.
1796         (struct loop): Changed type of estimated_nb_iterations to double_int.
1797         Added estimate_state field.
1798         (record_estimate): Declaration removed.
1799
1800 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1801
1802         * params.c (set_param_value): Initialize the "set" field.
1803         * params.h (struct param_info): Add "set" field.
1804         (PARAM_SET_P): New macro.
1805         (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
1806         L1_CACHE_LINE_SIZE): New macros.
1807         * toplev.c (DEFPARAM): Initialize the "set" field.
1808         * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
1809         SIMULTANEOUS_PREFETCHES): Removed.
1810         (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
1811         (tree_ssa_prefetch_arrays): Dump the values of the parameters.
1812         * config/sparc/sparc.c: Include params.h.
1813         (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
1814         L1_CACHE_LINE_SIZE parameters.
1815         * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1816         Removed.
1817         * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1818         Removed.
1819         * config/i386/i386.c: Include params.h.
1820         (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
1821         (override_options): Set SIMULTANEOUS_PREFETCHES and
1822         L1_CACHE_LINE_SIZE parameters.
1823         * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
1824         (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
1825         L1_CACHE_LINE_SIZE parameters.
1826         * config/ia64/ia64.c (ia64_optimization_options): Set
1827         SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
1828         * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
1829         Removed.
1830         * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
1831         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
1832         * doc/invoke.texi: Document new params.
1833
1834 2006-11-12  Roger Sayle  <roger@eyesopen.com>
1835
1836         PR tree-optimization/13827
1837         * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
1838         as ((X^Y)&C) op 0.
1839
1840 2006-11-12  Zdenek Dvorak <dvorakz@suse.cz>
1841
1842         * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
1843         update_single_exit_for_duplicated_loops): New functions.
1844         (duplicate_loop_to_header_edge): Use
1845         update_single_exit_for_duplicated_loops.
1846         * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
1847         functions only with ENABLE_CHECKING.
1848
1849 2006-11-12  Andreas Schwab  <schwab@suse.de>
1850
1851         * except.c (sjlj_emit_function_enter): Remove unused variable.
1852
1853 2006-11-11  Roger Sayle  <roger@eyesopen.com>
1854
1855         * fold-const.c (int_binop_types_match_p): New function.
1856         (size_binop): Relax constraint that both arguments must both have
1857         exactly the same sizetype type.  Instead use int_binop_types_match_p.
1858         (size_diffop): Likewise.
1859
1860         (make_range): Use build_int_cst instead of fold_convert.
1861         (fold_cond_expr_with_comparison): Use build_int_cst to construct
1862         integer constants of the correct type.
1863         (fold_div_compare): Likewise.
1864         (fold_single_bit_test): Likewise.
1865         (fold_binary): Likewise.
1866         * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
1867         has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
1868
1869 2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1870
1871         PR rtl-opt/28812
1872         * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
1873         non null value if the struct memory access is in the 0th
1874         aliasing set.
1875
1876 2006-11-12  Jie Zhang  <jie.zhang@analog.com>
1877
1878         Revert
1879         2006-11-11  Jie Zhang  <jie.zhang@analog.com>
1880         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1881         and __BFIN__.
1882
1883         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
1884         instead of builtin_define for bfin and BFIN.
1885
1886 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
1887
1888         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1889         and __BFIN__.
1890
1891 2006-11-11  Jan Hubicka  <jh@suse.cz>
1892
1893         * extend.texi (__builtin_expect): We no longer require second argument
1894         to be constant.
1895         * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
1896         * builtins.c (expand_builtin_expect): Simplify.
1897         (expand_builtin_expect_jump): Kill.
1898         * final.c (final_scan_insn): Do not skip the removed notes.
1899         * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
1900         EXPECTED_VALUE): Remove.
1901         * dojump.c (do_jump): Do not care about __builtin_expect.
1902         * predict.c (expected_value_to_br_prob): Kill.
1903         * function.c (expand_function_end): Do not expand
1904         NOTE_INSN_REPEATED_LINE_NUMBER.
1905         * print-rtl.c (print_rtx): Do not pretty print the removed notes.
1906         * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
1907         * cfgexpand.c (add_reg_br_prob_note): Export.
1908         * cfgcleanup.c (rest_of_handle_jump2): Do not call
1909         expected_value_to_br_prob.
1910         * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
1911         * rtl.h (add_reg_br_prob_note): Declare.
1912
1913 2006-11-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1914
1915         * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
1916
1917 2006-11-11  Jan Hubicka  <jh@suse.cz>
1918
1919         * predict.c (predict_loops): Kill RTL variant.
1920
1921 2006-11-11  Jan Hubicka  <jh@suse.cz>
1922
1923         * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
1924         * modulo-sched.c (find_line_note): Remove.
1925         (loop_canon_p): Do not worry about line number notes.
1926         (sms_schedule): Likewise.
1927         * cse.c (cse_main): Likewise.
1928         * regmove.c (fixup_match_1): Likewise
1929         * function.c (emit_return_info_block): Likewise.
1930         (expand_function_end): Likewise.
1931         (thread_prologue_an_epilogue_insns): Likewise.
1932         * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
1933         Likewise.
1934         * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
1935         emit_note_copy_after): Kill.
1936         (emit_note_copy): Do not worry about line numbers.
1937         * jump.c (purge_line_number_notes): Kill.
1938         (pass_purge_lineno_notes): Kill.
1939         * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
1940         call.
1941         * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
1942         * passes.c (init_optimization_passes): Don't purge_lineno_notes.
1943         * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
1944         * tree-pass.h (pass_purge_lineno_notes): Kill.
1945         * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
1946         rm_redundant_line_notes.
1947         * sched-rgb.c (schedule_region): Don't rm_line_notes,
1948         rm_redundant_line_notes.
1949         * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
1950         * haifa-sched.c: Update comment about handling notes.
1951         (unlink_line_notes): Kill.
1952         (rm_line_notes): Kill.
1953         (save_line_notes): Simplify.
1954         (rm_redundant_line_notes): Kill.
1955
1956 2006-11-11  Richard Guenther  <rguenther@suse.de>
1957
1958         * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
1959         Remove unused tree codes.
1960         * tree-vrp.c (extract_range_from_unary_expr): Remove handling
1961         of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1962         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1963         * tree.c (stabilize_reference): Likewise.
1964         * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
1965         fold_unary): Likewise.
1966         * tree-gimple.c (is_gimple_cast): Likewise.
1967         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
1968         * expr.c (expand_expr_real_1): Likewise.
1969         * tree-eh.c (tree_could_trap_p): Likewise.
1970         * gimplify.c (gimplify_expr): Likewise.
1971         * tree-inline.c (estimate_num_insns_1): Likewise.
1972         * tree-cfg.c (verify_expr): Likewise.
1973
1974 2006-11-11  Zdenek Dvorak <dvorakz@suse.cz>
1975
1976         * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
1977         * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
1978         (tree_ssa_prefetch_arrays): Do not dump for removed loops.
1979
1980 2006-11-11  Richard Sandiford  <richard@codesourcery.com>
1981
1982         PR middle-end/27528
1983         * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
1984         constraints accept neither registers or memories.
1985
1986 2006-11-11  Jie Zhang  <jie.zhang@analog.com>
1987
1988         * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
1989         (NO_PROFILE_COUNTERS): Define as 1.
1990
1991 2006-11-10  Roger Sayle  <roger@eyesopen.com>
1992
1993         * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
1994         Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
1995
1996 2006-11-10  Peter Bergner  <bergner@vnet.ibm.com>
1997
1998         * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
1999
2000 2006-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2001
2002         * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
2003         (fold_builtin_hypot): Likewise.
2004         * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
2005
2006         * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
2007
2008 2006-11-10  Roger Sayle  <roger@eyesopen.com>
2009
2010         * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
2011         when attempting to build INTEGER_CSTs of non-integral types.
2012         * expmed.c (make_tree): Use the correct type, i.e. the inner
2013         type, when constructing the individual elements of a CONST_VECTOR.
2014
2015 2006-11-10  Jan Hubicka  <jh@suse.cz>
2016
2017         * cse.c (cse_process_notes): Copy the propagated value.
2018         * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
2019         in REG_EQUIV notes.
2020         * gcse.c (try_replace_reg): Copy the replacement.
2021         * i386.c (emit_i387_cw_initialization): Copy stored_mode.
2022         (assign_386_stack_local): Always return copied memory expression
2023         * function.c (instantiate_virtual_regs_in_insn): Copy the operand
2024         duplicates.
2025
2026 2006-11-10  Jan Hubicka  <jh@suse.cz>
2027
2028         * final.c (final): Walk from first instruction.
2029         * cfglayout.c (insn_locators_initialize): Remove line number notes.
2030
2031 2006-11-10  Uros Bizjak  <ubizjak@gmail.com>
2032
2033         PR target/29777
2034         * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
2035         to define_expand.
2036         (umulv8hi3_highpart): Ditto.
2037         (vec_widen_smult_hi_v8hi): New expander.
2038         (vec_widen_smult_lo_v8hi): Ditto.
2039
2040 2006-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2041
2042         PR middle-end/29335
2043         * builtins.c (do_mpfr_arg3): New.
2044         (fold_builtin_1): Handle builtins fma, fmin and fmax.
2045
2046 2006-11-09  Eric Christopher  <echristo@apple.com>
2047
2048         PR bootstrap/26892
2049         PR bootstrap/27814
2050         PR other/28994
2051         * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
2052         * config.gcc (powerpc64-*-darwin*): New target.
2053         * config.host: Ditto.
2054         * config/rs6000/darwin64.h: New file.
2055         * config/rs6000/x-darwin64: Ditto.
2056         * config/rs6000/host-ppc64-darwin.c: Ditto.
2057
2058 2006-11-09  Steve Ellcey  <sje@cup.hp.com>
2059
2060         * config/ia64/ia64.c (ia64_hpux_init_libfuncs):  Use HP-UX millicode
2061         routines for integer division.
2062
2063 2006-11-09  Daniel Jacobowitz  <dan@codesourcery.com>
2064
2065         * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
2066
2067 2006-11-09  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
2068
2069         PR middle-end/29726
2070         * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
2071
2072 2006-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2073
2074         * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
2075         simplify_subreg with BLKmode outer mode.
2076
2077 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
2078
2079         * doc/invoke.texi: Minor formatting fixes in option lists.
2080
2081 2006-11-08  Zdenek Dvorak <dvorakz@suse.cz>
2082
2083         PR tree-optimization/29738
2084         * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
2085         (ccp_lattice_t): Remove UNKNOWN_VAL.
2086         (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
2087         Do not handle UNKNOWN_VAL.
2088         (get_default_value): Set initial value of virtual operands to
2089         VARYING.
2090         (get_value): Always use get_default_value on uninitialized
2091         operands.
2092         (set_value_varying, surely_varying_stmt_p): New functions.
2093         (set_lattice_value): Do not pass argument to get_value.
2094         Do not handle UNKNOWN_VAL.
2095         (likely_value): Follow the semantics described in the comment.
2096         (ccp_initialize): Use surely_varying_stmt_p.  Do not mark
2097         phi nodes DONT_SIMULATE_AGAIN.
2098         (ccp_fold): Do not pass argument to get_value.
2099         (fold_const_aggregate_ref, visit_assignment): Ditto.  Do not
2100         handle UNKNOWN_VAL.
2101
2102 2006-11-08  Andrew Pinski  <Andrew_Pinski@playstation.sony.com>
2103
2104         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
2105         HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
2106
2107 2006-11-08  Roger Sayle  <roger@eyesopen.com>
2108
2109         * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
2110         test for inclusion rather than as a test for exclusion.
2111         * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
2112         the condition after calling fold_binary.
2113         * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
2114         (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
2115         * builtins.c (fold_builtin_isascii): Likewise.
2116         (fold_builtin_isdigit): Likewise.
2117
2118 2006-11-08  Carlos O'Donell  <carlos@codesourcery.com>
2119
2120         * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
2121         * configure: Regenerate.
2122
2123 2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2124
2125         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
2126         enum argument instead of bool.
2127         (vect_analyze_operations): Call vectorizable_type_promotion.
2128         * tree-vectorizer.h (type_promotion_vec_info_type): New enum
2129         stmt_vec_info_type value.
2130         (supportable_widening_operation, vectorizable_type_promotion): New
2131         function declarations.
2132         * tree-vect-transform.c (vect_gen_widened_results_half): New function.
2133         (vectorizable_type_promotion): New function.
2134         (vect_transform_stmt): Call vectorizable_type_promotion.
2135         * tree-vect-analyze.c (supportable_widening_operation): New function.
2136         * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
2137         Add implementation.
2138         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
2139         mode.
2140
2141         * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
2142         (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
2143         * tree-inline.c (estimate_num_insns_1): Add cases for above new
2144         tree-codes.
2145         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2146         * expr.c (expand_expr_real_1): Likewise.
2147         * optabs.c (optab_for_tree_code): Likewise.
2148         (init_optabs): Initialize new optabs.
2149         * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
2150         vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
2151         vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
2152         vec_unpacku_lo_optab): Initialize new optabs.
2153         * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
2154         (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
2155         OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
2156         optab indices.
2157         (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
2158         (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
2159         (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
2160         (vec_unpacku_lo_optab): New optabs.
2161         * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
2162         (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
2163         (vec_widen_smult_hi, vec_widen_smult_lo): New.
2164         * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
2165         (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
2166         (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
2167
2168         * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
2169         (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
2170         (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
2171         (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
2172         (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
2173         implement the unsigned unpacking patterns.
2174         (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
2175         (vec_unpacks_lo_v8hi): New signed unpacking patterns.
2176         (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
2177         (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
2178         (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
2179         (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
2180         (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
2181         (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
2182         multiplication patterns.
2183
2184         * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
2185         * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
2186         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
2187         * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
2188         (rs6000_builtin_mul_widen_odd): New.
2189         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
2190         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
2191         * tree-vectorizer.h (enum vect_relevant): New enum type.
2192         (_stmt_vec_info): Field relevant chaned from bool to enum
2193         vect_relevant.
2194         (STMT_VINFO_RELEVANT_P): Updated.
2195         (STMT_VINFO_RELEVANT): New.
2196         * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
2197         instead of STMT_VINFO_RELEVANT_P.
2198         * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
2199         Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
2200         and boolean variable with enum vect_relevant.
2201         (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
2202         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
2203         (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
2204
2205         2006-11-08  Richard Henderson  <rth@redhat.com>
2206
2207         * config/i386/sse.md (vec_widen_umult_hi_v8hi,
2208         vec_widen_umult_lo_v8hi): New.
2209         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
2210         vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
2211
2212         * config/i386/i386.c (ix86_expand_sse_unpack): New.
2213         * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
2214         * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
2215         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
2216         vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
2217         vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
2218         vec_unpacks_lo_v4si): New.
2219
2220         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2221
2222         * tree-vect-transform.c (vectorizable_type_demotion): New function.
2223         (vect_transform_stmt): Add case for type_demotion_vec_info_type.
2224         (vect_analyze_operations): Call vectorizable_type_demotion.
2225         * tree-vectorizer.h (type_demotion_vec_info_type): New enum
2226         stmt_vec_info_type value.
2227         (vectorizable_type_demotion): New function declaration.
2228         * tree-vect-generic.c (expand_vector_operations_1): Consider correct
2229         mode.
2230
2231         * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
2232         * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
2233         VEC_PACK_SAT_EXPR.
2234         * tree-iniline.c (estimate_num_insns_1): Likewise.
2235         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2236         * optabs.c (optab_for_tree_code): Likewise.
2237
2238         * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
2239         compared against the predicate of the result is not 'mode' (the input
2240         to the function) but a mode with half the size of 'mode'.
2241         (init_optab): Initialize new optabs.
2242         * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
2243         New optab indices.
2244         (vec_pack_mod_optab, vec_pack_ssat_optab,  vec_pack_usat_optab): New
2245         optabs.
2246         * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
2247         (vec_pack_usat_optab): Initialize new optabs.
2248         * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
2249         * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
2250
2251         2006-11-08  Richard Henderson  <rth@redehat.com>
2252
2253         * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
2254         (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
2255         (vec_interleave_highv8hi, vec_interleave_lowv8hi):
2256         (vec_interleave_highv4si, vec_interleave_lowv4si):
2257         (vec_interleave_highv2di, vec_interleave_lowv2di): New.
2258
2259         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2260
2261         * tree-vect-transform.c (vectorizable_reduction): Support multiple
2262         datatypes.
2263         (vect_transform_stmt): Removed redundant code.
2264
2265         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2266
2267         * tree-vect-transform.c (vectorizable_operation): Support multiple
2268         datatypes.
2269
2270         2006-11-08  Dorit Nuzman  <dorit@il.ibm.com>
2271
2272         * tree-vect-transform.c (vect_align_data_ref): Removed.
2273         (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
2274         Updated function documentation. Return the increment stmt in ptr_incr.
2275         (bump_vector_ptr): New function.
2276         (vect_get_vec_def_for_stmt_copy): New function.
2277         (vect_finish_stmt_generation): Create a stmt_info to newly created
2278         vector stmts.
2279         (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
2280         argument.
2281         (vectorizable_reduction, vectorizable_assignment): Not supported yet if
2282         VF is greater than the number of elements that can fit in one vector
2283         word.
2284         (vectorizable_operation, vectorizable_condition): Likewise.
2285         (vectorizable_store, vectorizable_load): Support the case that the VF
2286         is greater than the number of elements that can fit in one vector word.
2287         (vect_transform_loop): Don't fail in case of multiple data-types.
2288         * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
2289         in case of multiple data-types; the smallest type determines the VF.
2290         (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
2291         if they are of different sizes.
2292         (vect_update_misalignment_for_peel): Compare misalignments in terms of
2293         number of elements rather than number of bytes.
2294         (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
2295         (vect_can_advance_ivs_p): Fix a dump printout
2296
2297 2006-11-07  Eric Christopher  <echristo@apple.com>
2298
2299         * libgcc2.c (__bswapdi2): Rename from bswapDI2.
2300         (__bswapsi2): Ditto.
2301         * libgcc2.h: Remove transformation of bswap routines.
2302         * config/i386/i386.md (bswapsi2): New.
2303         (bswapdi2): Ditto.
2304
2305 2006-11-07  Jakub Jelinek  <jakub@redhat.com>
2306
2307         * c-common.c (c_common_attributes): Add gnu_inline attribyte.
2308         (handle_gnu_inline_attribute): New function.
2309         * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
2310         (merge_decls, start_decl, start_function): Likewise.
2311         * doc/extend.texi: Document gnu_inline attribute.
2312
2313 2006-11-07  Steve Ellcey  <sje@cup.hp.com>
2314
2315         PR other/25028
2316         * config/ia64/t-hpux (LIB1ASMFUNCS):  Filter out _fixtfdi,
2317         _fixunstfdi, and  _floatditf
2318
2319 2006-11-06  Anatoly Sokolov <aesok@post.ru>
2320
2321         * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
2322         prototype.
2323         * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
2324         (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
2325         lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
2326         which start in an odd register.
2327
2328 2006-11-07  Richard Sandiford  <richard@codesourcery.com>
2329
2330         * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
2331
2332 2006-11-07  Josh Conner  <jconner@apple.com>
2333
2334         * doc/invoke.texi (fstrict-aliasing): Move implementation
2335         details...
2336         * doc/tree-ssa.texi (Alias analysis): ...here.
2337
2338 2006-11-07  Richard Guenther  <rguenther@suse.de>
2339
2340         PR tree-optimization/29610
2341         * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
2342         of tree_purge_dead_eh_edges as it may free dominators.
2343
2344         * g++.dg/other/pr29610.C: New testcase.
2345
2346 2006-11-07  David Ung  <davidu@mips.com>
2347
2348         * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
2349         costs when optimizing for size.
2350         (override_options): Use mips_rtx_cost_optimize_size table for cost
2351         calculations.
2352
2353 2006-11-07  Jie Zhang  <jie.zhang@analog.com>
2354
2355         * gcc.c (process_command): Treat -b as normal switch if its argument
2356         has no dash.
2357
2358 2006-11-07  David Ung  <davidu@mips.com>
2359
2360         * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
2361         list.
2362
2363 2006-11-06  Eric Christopher  <echristo@apple.com>
2364
2365         * config.gcc: Add x86_64-darwin host support.
2366         * config.host: Ditto.
2367         * config/i386/darwin64.h: New file.
2368         * config/i386/t-darwin64: Ditto.
2369
2370 2006-11-06  Janis Johnson  <janis187@us.ibm.com>
2371
2372         * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
2373         and output-exists-not.
2374
2375 2006-11-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2376
2377         PR tree-opt/29439
2378         * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
2379         checking for overflow.
2380
2381 2006-11-06  Jan van Dijk  <jan@etpmod.phys.tue.nl>
2382
2383         * configure.ac: Fixed typo in case statement: :: changed to ;;
2384
2385 2006-11-06  Bob Wilson  <bob.wilson@acm.org>
2386
2387         * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
2388         count_leading_zeros, and count_trailing_zeros.
2389         * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
2390         (TARGET_FOLD_BUILTIN): Define.
2391         (TARGET_EXPAND_BUILTIN): Define.
2392         (xtensa_init_builtins): New.
2393         (xtensa_fold_builtin): New.
2394         (xtensa_expand_builtin): New.
2395         (xtensa_rtx_costs): Add CTZ and CLZ.  Adjust costs for MULT.
2396         * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
2397         (CLZ_DEFINED_VALUE_AT_ZERO): Define.
2398         (CTZ_DEFINED_VALUE_AT_ZERO): Define.
2399         * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
2400         (any_extend): New code macro.
2401         (u, su): New code attributes.
2402         (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
2403         (nsau): Remove; replaced by clzsi2.
2404         (ffssi2): Use clzsi2.
2405         * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
2406         _clzsi2, _ctzsi2, and _ffssi2.  Rename _nsau to _clz.
2407         * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
2408         (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
2409         (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
2410
2411 2006-11-06  Vladimir Prus  <vladimir@codesourcery.com>
2412
2413         * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
2414         set inhibit_libc.
2415         * config/arm/t-strongarm-elf: Likewise.
2416         * config/arm/t-pe: Likewise.
2417         * config/arm/t-arm-elf: Likewise.
2418         * config/arm/t-xscale-elf: Likewise.
2419         * config/arm/t-arm-coff: Likewise.
2420         * config/arm/t-xscale-coff: Likewise.
2421         * config/arm/t-wince-pe: Likewise.
2422
2423 2006-11-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2424
2425         * config/sh/lib1funcs-4-300.asm: Guard entire file with
2426         #if !__SHMEDIA__ .
2427
2428 2006-11-05  Jakub Jelinek  <jakub@redhat.com>
2429
2430         PR middle-end/29695
2431         * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
2432         simplification.
2433
2434 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
2435
2436         PR target/26915
2437         * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
2438         as a valid 80387 constant.
2439         (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
2440         * config/i386/i386.md (unnamed splitter): Split the load of
2441         constant -0.0 or -1.0  into the load of 0.0 or 1.0, followed
2442         by negation.
2443
2444 2006-11-04  Richard Earnshaw  <rearnsha@arm.com>
2445
2446         * arm.c (thumb_legitimate_addres_p): Allow any constant offset
2447         from the soft-frame, argument and virtual registers.
2448
2449 2006-11-04  Uros Bizjak  <ubizjak@gmail.com>
2450
2451         * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
2452         patterns for standard 80387 constants.
2453
2454 2006-11-03  Paolo Bonzini  <bonzini@gnu.org>
2455             Steven Bosscher  <steven@gcc.gnu.org>
2456
2457         * fwprop.c: New file.
2458         * Makefile.in: Add fwprop.o.
2459         * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
2460         * passes.c (init_optimization_passes): Schedule forward propagation.
2461         * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
2462         parameter.
2463         * timevar.def (TV_FWPROP): New.
2464         * common.opt (-fforward-propagate): New.
2465         * opts.c (decode_options): Enable forward propagation at -O2.
2466         * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
2467         * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
2468         canon_for_address, table_size): Remove.
2469         (new_basic_block, insert, remove_from_table): Remove references to
2470         table_size.
2471         (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
2472         simplification loop more straightforward by not calling fold_rtx
2473         recursively.
2474         (equiv_constant): Move here a small part of fold_rtx_subreg,
2475         do not call fold_rtx.  Call avoid_constant_pool_reference
2476         to process MEMs.
2477         * recog.h (canonicalize_change_group): New.
2478
2479         * doc/invoke.texi (Optimization Options): Document fwprop.
2480         * doc/passes.texi (RTL passes): Document fwprop.
2481
2482 2006-11-03  Geoffrey Keating  <geoffk@apple.com>
2483
2484         * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
2485         (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
2486         (grokdeclarator): Likewise.
2487
2488 2006-11-03  Steven Bosscher  <steven@gcc.gnu.org>
2489
2490         * tree-dump.c (dump_enable_all): Rename local variable
2491         ir_type to avoid name conflicts.
2492         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
2493         instead of using ir_type().
2494         * profile.c (tree_register_profile_hooks): Likewise.
2495         * value-prof.c (tree_register_value_prof_hooks): Likewise.
2496         * basic-block.h (struct edge_def): Likewise.
2497         * config/arm/arm.c (legitimize_pic_address): Likewise.
2498         * coretypes.h (ir_type): New enum of all intermediate languages
2499         used in GCC.
2500         * cfghooks.c (ir_type): Rename to...
2501         (current_ir_type): ...this.  Distinguish between cfgrtl and
2502         cfglayout mode when the current IR is RTL.  Return enum ir_type.
2503         * cfghooks.h (ir_type): Replace with current_ir_type prototype.
2504
2505 2006-11-03  Paul Brook  <paul@codesourcery.com>
2506
2507         * config/arm/arm.c (arm_file_start): New function.
2508         (TARGET_ASM_FILE_START): Define.
2509         (arm_default_cpu): New variable.
2510         (arm_override_options): Set arm_default_cpu.
2511
2512 2006-11-03  David Ung  <davidu@mips.com>
2513
2514         * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
2515         PROCESSOR_24KC and PROCESSOR_24KF.
2516         * config/mips/mips.c (mips_cpu_info_table): Add processor names
2517         and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
2518         (mips_rtx_cost_data): Add costs for the 24kc.
2519         * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
2520         * config/mips/24k.md: Remove references to 24k and replace with
2521         uses of 24kc/24kf in the appropriate reservations.
2522         * doc/invoke.texi (MIPS Options): Updated.
2523
2524 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
2525
2526         * config/sh/crt1.asm: Fix #ifdef indent.
2527
2528 2006-11-03  J"orn Rennecke  <joern.rennecke@st.com>
2529         Merged from STMicroelectronics sources:
2530         2006-10-06  Andrew Stubbs  <andrew.stubbs@st.com>
2531           * config/sh/crt1.asm (vbr_600): Add missing #if.
2532         2006-08-03  J"orn Rennecke  <joern.rennecke@st.com>
2533           * sh.opt (mfused-madd): New option.
2534           * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
2535         2006-07-04  Andrew Stubbs  <andrew.stubbs@st.com>
2536           * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
2537           Remove pointless handler at VBR+0.
2538           (vbr_200, vbr_300, vbr_500): Remove pointless handler.
2539           (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
2540           fr7. Make sure the timer handler is called with the correct FPU
2541           precision setting, according to the ABI.
2542         2006-06-14  J"orn Rennecke <joern.rennecke@st.com>
2543           * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
2544           * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
2545           (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
2546         2006-06-09  J"orn Rennecke <joern.rennecke@st.com>
2547           * sh.md (cmpgeusi_t): Change into define_insn_and_split.  Accept
2548           zero as second operand.
2549         2006-04-28  J"orn Rennecke <joern.rennecke@st.com>
2550           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
2551           Fixed some bugs related to negative values, in particular -0
2552           and overflow at -0x80000000.
2553           * config/sh/divcost-analysis: Added sh4-300 figures.
2554         2006-04-27  J"orn Rennecke <joern.rennecke@st.com>
2555           * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
2556         2006-04-26  J"orn Rennecke <joern.rennecke@st.com>
2557           * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
2558           ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
2559           * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
2560         New files.
2561           * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
2562           -m4-340.
2563         2006-04-24  J"orn Rennecke <joern.rennecke@st.com>
2564           SH4-300 scheduling description & fixes to SH4-[12]00 description:
2565           * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
2566           mac_mem, mem_mac, dfp_mul, fp_cmp.
2567           (insn_class, dfp_comp, any_fp_comp): Update.
2568           (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
2569           (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
2570           (muldf3_i): Likewise.
2571           (movsi_i): Split rI08 alternative into two separate alternatives.
2572           Update type.
2573           (movsi_ie, movsi_i_lowpart): Likewise.
2574           (movqi_i): Split ri alternative into two separate alternatives.
2575           Update type.
2576           * sh1.md (sh1_load_store, sh1_fp): Update.
2577           * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
2578           (mac_mem, sh4_fpscr_toggle): New insn_reservations.
2579           * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
2580           (sh4a_fp_double_arith): Likewise.
2581           * sh4-300.md: New file.
2582           * sh.c (sh_handle_option): Handle m4-300* options.
2583           (sh_adjust_cost): Fix latency of auto-increments.
2584           Handle SH4-300 differently than other SH4s.  Check for new insn types.
2585           * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
2586           been set by an option.
2587           * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
2588           (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
2589           (mbranch-cost=): Likewise.
2590           * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
2591
2592           * sh.md (mulsf3): Remove special expansion code.
2593           (mulsf3_ie): Now a define_insn_and_split.
2594           (macsf3): Allow for TARGET_SH4.
2595
2596           * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
2597           * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
2598           (expand_cbranchdi4): Likewise.
2599           (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
2600           CONST_DOUBLE if the outer code is COMPARE.
2601           * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
2602           TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
2603           (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
2604           (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
2605           Remove redundant fp_{zero,one}_operand checks.
2606           * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
2607           * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
2608           (expand_cbranchdi4): Likewise.
2609         2006-04-20  J"orn Rennecke <joern.rennecke@st.com>
2610           * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
2611
2612 2006-11-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2613
2614         * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
2615         constraints.
2616
2617 2006-11-02  Brooks Moses  <brooks.moses@codesourcery.com>
2618
2619         * doc/invoke.texi: Fix mfp-trap-mode typo.
2620
2621 2006-11-02  Carlos O'Donell  <carlos@codesourcery.com>
2622
2623         * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
2624         * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
2625         file_end_indicate_exec_stack.
2626         * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
2627         Define as 0.
2628         * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
2629         for a non-executable stack.
2630         * crti.asm: Likewise.
2631         * crtn.asm: Likewise.
2632         * libunwind.S: Likewise.
2633
2634 2006-11-02  Ben Elliston  <bje@au.ibm.com>
2635
2636         * tree-ssa.c (warn_uninit): Use expand_location variables for
2637         locus and declaration locus.
2638
2639 2006-11-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2640
2641         PR target/27405
2642         * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
2643         (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
2644         cmp{eq,gt,gtu}{si,di}_media.
2645         (*cmpne0si_media): Remove.
2646         (*movsicc_umin): Adjust gen_cmp*_media call.
2647         (unordered): Change the mode of unordered and operands[1] to
2648         SImode.
2649         (seq): Adjust gen_cmp*_media calls.  Make the mode of
2650         a temporary result of compare SImode if needed.  If the mode
2651         of operands[0] is DImode, extend the temporary result to DImode.
2652         (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
2653         (sunorderd): Change the mode of match_operand and unorderd to
2654         SImode.
2655         (cmpeq{sf,df}_media): Remove.
2656         (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
2657         (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
2658         and compare operation to SImode.
2659
2660 2006-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
2661
2662         * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
2663         instructions.
2664         (sparc64-sun-solaris2*): Likewise.
2665
2666 2006-11-02  Paul Brook  <paul@codesourcery.com>
2667
2668         * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
2669         from priority argument.  Use different section for non-default
2670         priority.
2671         * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
2672
2673 2006-11-02  Eric Botcazou  <ebotcazou@adacore.com>
2674
2675         PR other/29639
2676         * except.c (switch_to_exception_section): Do not cache the section
2677         if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
2678         and flag_function_sections is set.
2679
2680 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2681
2682         PR middle-end/29335
2683         * builtins.c (do_mpfr_sincos): New.
2684         (fold_builtin_1): Use it to fold builtin sincos.
2685
2686 2006-11-01  Roger Sayle  <roger@eyesopen.com>
2687
2688         * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
2689         it into -D_REENTRANT.
2690
2691 2006-11-01  Roger Sayle  <roger@eyesopen.com>
2692
2693         * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
2694         whether the assembler supports taking the difference of symbols in
2695         different sections.  On x86/Solaris, GAS does but Solaris as doesn't.
2696         * configure: Regenerate.
2697         * config.in: Regenerate.
2698         * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
2699         the assembler doesn't support taking the difference of symbols in
2700         different sections, i.e. we're using the native solaris assembler.
2701
2702 2006-11-01  Pete Steinmetz  <steinmtz@us.ibm.com>
2703             Peter Bergner  <bergner@vnet.ibm.com>
2704
2705         * doc/invoke.texi: Add cpu_type power6x
2706         (RS/6000 and PowerPC Options): Add -mmfpgpr.
2707         * config.gcc: Add cpu_type power6x.
2708         * configure.ac: Add test for mf{t,f}gpr instructions.
2709         (HAVE_AS_MFPGPR): New.
2710         * config.in: Regenerate.
2711         * configure: Regenerate.
2712         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
2713         * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
2714         shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
2715         and mftgpr attributes.
2716         (define_attr "cpu"): Add power6.
2717         Change instruction sequences to use new attributes.
2718         (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
2719         (fix_truncdfsi2_mfpgpr): New.
2720         (floatsidf_ppc64_mfpgpr): New.
2721         (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
2722         (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
2723         (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
2724         (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
2725         (fix_truncdfsi2): Use gpc_reg_operand constraint.
2726         * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
2727         7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
2728         Add descriptions for insert_dword, shift,trap,var_shift_rotate,
2729         cntlz,exts and var_delayed_compare.
2730         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2731         _ARCH_PWR6X, if features enabled.
2732         * config/rs6000/rs6000.opt (mmfpgpr): New.
2733         * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
2734         (cached_can_issue_more): New variable.
2735         (processor_costs): Add power6_cost.
2736         (rs6000_sched_init): New function.
2737         (is_dispatch_slot_restricted): Deleted.
2738         (set_to_load_agen): New function.
2739         (is_load_insn,is_store_insn): New functions.
2740         (adjacent_mem_locations): New function.
2741         (insn_must_be_first_in_group): New function.
2742         (insn_must_be_last_in_group): New function.
2743         (rs6000_sched_reorder): New function.
2744         (rs6000_sched_reorder2): New function.
2745         (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
2746         TARGET_SCHED_REORDER2): Define.
2747         (processor_target_table): Use PROCESSOR_POWER6 for power6.
2748         Add power6x. Add MASK_MFPGPR for power6x.
2749         (POWERPC_MASKS): Add MASK_MFPGPR.
2750         (rs6000_override_options): Set rs6000_always_hint to false
2751         for power6.  Set rs6000_align_branch_targets. Replace
2752         rs6000_sched_groups check with rs6000_align_branch_targets.
2753         Use PROCESSOR_POWER6.
2754         (last_scheduled_insn): New variable.
2755         (load_store_pendulum): New variable.
2756         (rs6000_variable_issue): Set last_scheduled_insn and
2757         cached_can_issue_more.
2758         (rs6000_adjust_cost): Add power6 cost adjustments.
2759         (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
2760         with insn_must_be_first_in_group. Add power6 priority adjustments.
2761         (rs6000_issue_rate): Add CPU_POWER6.
2762         (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
2763         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
2764         (TARGET_MFPGPR): New.
2765         (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
2766         (ASM_CPU_SPEC): Add power6x.
2767         (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
2768         conditions.
2769         * config/rs6000/power6.md: New file.
2770
2771 2006-11-01  Adam Nemet  <anemet@caviumnetworks.com>
2772
2773         * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
2774         HOST_WIDE_INT_PRINT to print high and low parts.  Use
2775         HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT.  When
2776         printing a hexadecimal number prefix it with 0x.
2777
2778 2006-11-01  Chris Johns <chris@contemporary.net.au>
2779
2780         PR bootstrap/28400
2781         * Makefile.in (install-driver): Use exeext when installing
2782         $target-gcc-$version.
2783
2784 2006-11-01      Douglas Gregor <doug.gregor@gmail.com>
2785
2786         * c-common.c (flag_cpp0x): New.
2787         * c-common.h (flag_cpp0x): New.
2788         * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
2789         supported, define __GXX_EXPERIMENTAL_CPP0X__.
2790         * c-opts.c (set_std_cxx0x): New.
2791         (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
2792         * c.opt (std=c++0x): Document.
2793         (std=gnu++0x): Ditto.
2794         * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
2795         * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
2796
2797 2006-11-01  Richard Guenther  <rguenther@suse.de>
2798
2799         * config/i386/i386.c (ix86_expand_rint): Fix issues with
2800         signed zeros.
2801         (ix86_expand_floorceildf_32): Likewise.
2802         (ix86_expand_floorceil): Likewise.
2803         (ix86_expand_trunc): Likewise.
2804
2805 2006-10-31  Andrew Pinski  <pinskia@gmail.com>
2806
2807         * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
2808         to "GNU C89".
2809
2810 2006-11-01  Danny Smith  <dannysmith@users.sourceforge.net>
2811
2812         * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
2813         hook.
2814         * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
2815         default.
2816         * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
2817         Override default.
2818         * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
2819         * configure.ac (use_cxa_atexit): As a special case, don't test
2820         for libc definition of __cxa_atexit on mingw32
2821         * configure: Regenerate.
2822         * config.gcc (i[34567]86-pc-mingw32): Default to
2823         enable__cxa_atexit=yes.
2824
2825 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2826
2827         * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
2828
2829 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2830
2831         PR 23067
2832         * c-decl.c (start_struct): Don't create self-containing
2833         structures.
2834         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
2835         New.
2836         * config/rs6000/rs6000-protos.h
2837         (darwin_rs6000_special_round_type_align): New.
2838         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
2839         (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
2840
2841 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2842
2843         * toplev.c (compile_file): Call final_write_globals
2844         even if there have been errors.
2845
2846 2006-10-31  Eric Christopher  <echristo@apple.com>
2847             Falk Hueffner  <falk@debian.org>
2848
2849         * doc/extend.texi (__builtin_bswap32): Document.
2850         (__builtin_bswap64): Ditto.
2851         * doc/libgcc.texi (bswapsi2): Document.
2852         (bswapdi2): Ditto.
2853         * doc/rtl.texi (bswap): Document.
2854         * optabs.c (expand_unop): Don't widen a bswap.
2855         (init_optabs): Init bswap. Set libfuncs explicitly
2856         for bswapsi2 and bswapdi2.
2857         * optabs.h (OTI_bswap): New.
2858         (bswap_optab): Ditto.
2859         * genopinit.c (optabs): Handle bswap_optab.
2860         * tree.h (tree_index): Add TI_UINT32_TYPE and
2861         TI_UINT64_TYPE.
2862         (uint32_type_node): New.
2863         (uint64_type_node): Ditto.
2864         * tree.c (build_common_tree_nodes_2): Initialize
2865         uint32_type_node and uint64_type_node.
2866         * builtins.c (expand_builtin_bswap): New.
2867         (expand_builtin): Call.
2868         (fold_builtin_bswap): New.
2869         (fold_builtin_1): Call.
2870         * fold-const.c (tree_expr_nonnegative_p): Return true
2871         for bswap.
2872         * builtin-types.def (BT_UINT32): New.
2873         (BT_UINT64): Ditto.
2874         (BT_FN_UINT32_UINT32): Ditto.
2875         (BT_FN_UINT64_UINT64): Ditto.
2876         * builtins.def (BUILT_IN_BSWAP32): New.
2877         (BUILT_IN_BSWAP64): Ditto.
2878         * rtl.def (BSWAP): New.
2879         * genattrtab.c (check_attr_value): New.
2880         * libgcc2.c (__bswapSI2): New.
2881         (__bswapDI2): Ditto.
2882         * libgcc2.h (__bswapSI2): Declare.
2883         (__bswapDI2): Ditto.
2884         * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
2885         * simplify-rtx.c (simplify_const_unary_operation): Return
2886         0 for BSWAP.
2887         * libgcc-std.ver (__bwapsi2): Add.
2888         (__bswapdi2): Ditto.
2889         * reload1.c (eliminate_regs_1): Add bswap.
2890         (elimination_effects): Ditto.
2891         * config/i386/i386.h (x86_bswap): New.
2892         (TARGET_BSWAP): Use.
2893         * config/i386/i386.c (x86_bswap): Set.
2894
2895 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2896
2897         * coverage.c (coverage_checksum_string): Update comment.
2898         * dwarf2out.c (switch_to_eh_frame_section): Update for removal
2899         of get_file_function_name.
2900         * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
2901         of get_file_function_name_long.
2902         * tree.c (get_file_function_name): Rename from
2903         get_file_function_name_long; improve comment; handle 'I' and 'D'
2904         specially when the target has ctor/dtor support; remove special
2905         handling for 'F'.
2906         (get_file_function_name): Remove.
2907         * tree.h (get_file_function_name): Rename from
2908         get_file_function_name_long.
2909         (get_file_function_name): Remove prototype.
2910
2911 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2912
2913         * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
2914         * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
2915
2916         * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
2917         Call dsymutil when compiling and linking one or more source files
2918         in one step.
2919
2920 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2921
2922         PR 15834
2923         * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
2924
2925 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
2926
2927         * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
2928         inline static functions in c99 mode.
2929
2930         PR 16622
2931         * doc/extend.texi (Inline): Update.
2932         * c-tree.h (struct language_function): Remove field 'extern_inline'.
2933         * c-decl.c (current_extern_inline): Delete.
2934         (pop_scope): Adjust test for an undefined nested function.
2935         Add warning about undeclared inline function.
2936         (diagnose_mismatched_decls): Update comments.  Disallow overriding
2937         of inline functions in a translation unit in C99.  Allow inline
2938         declarations in C99 at any time.
2939         (merge_decls): Boolize variables.  Handle C99 'extern inline'
2940         semantics.
2941         (grokdeclarator): Set DECL_EXTERNAL here for functions.  Handle
2942         C99 inline semantics.
2943         (start_function): Don't clear current_extern_inline.  Don't set
2944         DECL_EXTERNAL.
2945         (c_push_function_context): Don't push current_extern_inline.
2946         (c_pop_function_context): Don't restore current_extern_inline.
2947
2948         PR 11377
2949         * c-typeck.c (build_external_ref): Warn about static variables
2950         used in extern inline functions.
2951         * c-decl.c (start_decl): Warn about static variables declared
2952         in extern inline functions.
2953
2954 2006-10-31  Roger Sayle  <roger@eyesopen.com>
2955
2956         PR middle-end/23470
2957         * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
2958         * fold-const.c (tree_expr_nonnegative_p): Likewise.  Consider
2959         pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
2960         or y is an even integer.
2961
2962 2006-10-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2963
2964         PR target/24071
2965         * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
2966         * gthr-posix95.h (__gthread_active_p): Likewise.
2967
2968 2006-10-31  Richard Guenther  <rguenther@suse.de>
2969
2970         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
2971         acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
2972         expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
2973         exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
2974         ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
2975         lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
2976         lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
2977         btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
2978         !optimize_size.
2979
2980 2006-10-31  Steven Bosscher  <steven@gcc.gnu.org>
2981
2982         * opts.c (decode_options): Disable CSE skip blocks.
2983
2984 2006-10-30  Dirk Mueller  <dmueller@suse.de>
2985
2986         * c-common.h (strict_aliasing_warning): Fix whitespace.
2987         * c-decl (start_function): Move code for main decl warning ..
2988         * c-common.c (check_main_parameter_types): .. here.
2989         * c-common.h (check_main_parameter_types): Declare.
2990
2991 2006-10-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2992
2993         PR middle-end/29335
2994         * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
2995
2996 2006-10-30  Pete Steinmetz  <steinmtz@us.ibm.com>
2997
2998         * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
2999         be a PARALLEL containing sets.  Return false when out_pat is not
3000         a PARALLEL insn.
3001
3002 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
3003
3004         * config/mips/mips.md (mul<mode>3): Split into...
3005         (mulsi3, muldi3): ...these separate patterns.
3006
3007 2006-10-30  Richard Sandiford  <richard@codesourcery.com>
3008
3009         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
3010         but with each set of options separated by spaces.
3011
3012 2006-10-30  J"orn Rennecke  <joern.rennecke@st.com>
3013
3014         * unwind-dw2.c (uw_init_context_1): Fix test that checks if
3015         dwarf_reg_size_table has been initialized.
3016
3017 2006-10-30  Roger Sayle  <roger@eyesopen.com>
3018
3019         * builtins.c (expand_builtin_mathfn_3): Correct coding style.
3020         * ddg.c (print_ddg_edge): Likewise.
3021         * dwarf2out.c (prune_unused_types_walk): Likewise.
3022         * ifcvt.c (noce_try_cmove_arith): Likewise.
3023         * langhooks.c (add_builtin_function): Likewise.
3024         * reg-stack.c (subst_stack_regs_pat): Likewise.
3025         * tree.c (expanded_location): Likewise.
3026         * tree-dump.c (dequeue_and_dump): Likewise.
3027
3028 2006-10-30  David Daney  <ddaney@avtrex.com>
3029
3030         * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
3031
3032 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
3033
3034         PR tree-optimization/29637
3035         * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
3036         of the innertype is the innertype itself.
3037
3038 2006-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
3039
3040         * dwarf2out.c (file_name_acquire): Correct typo.
3041
3042 2006-10-29  Daniel Berlin  <dberlin@dberlin.org>
3043
3044         * tree.h (tree_value_handle): Remove struct value_set declaration.
3045         Change value_set to bitmap_set.
3046         * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
3047         * tree-vn.c (get_value_handle): Made inline and moved to
3048         tree-flow-inline.h.
3049         * tree-flow-inline.h: (has_stmt_ann): New function.
3050         * tree-ssa-pre.c (expressions): New variable.
3051         (next_expression_id): Ditto.
3052         (alloc_expression_id): New function.
3053         (struct value_set): Remove.
3054         (get_expression_id): New function.
3055         (get_or_alloc_expression_id): Ditto.
3056         (expression_for_id): Ditto.
3057         (clear_expression_ids): Ditto.
3058         (FOR_EACH_EXPR_ID_IN_SET): New macro.
3059         (bb_value_sets): Renamed to bb_bitmap_sets.
3060         All value sets replaced with bitmap_sets.
3061         Add visited member.
3062         (BB_VISITED): New macro.
3063         (postorder): New variable.
3064         (add_to_value): Removed.
3065         (value_exists_in_set_bitmap): Ditto.
3066         (value_insert_into_set_bitmap): Ditto.
3067         (set_new): Ditto.
3068         (set_copy): Ditto.
3069         (set_remove): Ditto.
3070         (set_contains_value): Ditto.
3071         (insert_into_set): Ditto.
3072         (set_equal): Ditto.
3073         (find_leader): Ditto.
3074         (bitmap_set_subtract_from_value_set): Ditto.
3075         (value_insert_into_set): Ditto.
3076         (print_value_set): Ditto.
3077         (debug_value_set): Ditto.
3078         (constant_expr_p): New function.
3079         (bitmap_remove_from_set): Ditto.
3080         (bitmap_insert_into_set): Ditto.
3081         (bitmap_set_free): Ditto.
3082         (vh_compare): Ditto.
3083         (sorted_array_from_bitmap_set): Ditto.
3084         (bitmap_set_subtract): Ditto.
3085         (bitmap_set_equal): Ditto.
3086         (debug_bitmap_set): Ditto.
3087         (find_leader_in_sets): Ditto.
3088         (bitmap_set_replace_value): Modify for bitmapped sets.
3089         (phi_translate): Ditto.
3090         (phi_translate_set): Ditto.
3091         (bitmap_find_leader): Ditto.
3092         (valid_in_sets): Ditto.
3093         (union_contains_value): Ditto.
3094         (clean): Ditto.
3095         (compute_antic_aux): Ditto.  Mark changed blocks.
3096         (compute_antic): Ditto. Iterate in postorder and only over
3097         changing blocks.
3098         (compute_rvuse_and_antic_safe): Reuse postorder.
3099         (create_component_ref_by_pieces): Modify for bitmapped sets.
3100         (find_or_generate_expression): Ditto.
3101         (create_expression_by_pieces): Ditto.
3102         (insert_into_preds_of_block): Ditto.
3103         (changed_blocks): New variable.
3104         (do_regular_insertion): Broken out from insert_aux.
3105         (insert_aux): Modified for bitmapped sets.
3106         (find_existing_value_expr): New function.
3107         (create_value_expr_from): Use it.
3108         (insert_extra_phis): Removed.
3109         (print_bitmap_set): Renamed from bitmap_print_value_set.
3110         (compute_avail): Handle RETURN_EXPR.
3111         (init_pre): Modify for bitmapped sets.
3112         * tree-flow.h (has_stmt_ann): New function.
3113
3114 2006-10-29  Roger Sayle  <roger@eyesopen.com>
3115
3116         * builtins.c (fold_builtin_floor): Check for the availability of
3117         the C99 trunc function before transforming floor into trunc.
3118
3119 2006-10-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3120
3121         * builtins.c (fold_builtin_hypot): Rearrange recursive
3122         transformation before others, and also do ABS_EXPR.  When
3123         necessary, check flag_unsafe_math_optimizations.  When necessary,
3124         add fabs.
3125
3126 2006-10-29  Roger Sayle  <roger@eyesopen.com>
3127
3128         * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
3129         Fold ~X op C as X op' ~C, where op' is the swapped comparison.
3130         (fold_binary): ~X eq/ne C is now handled in fold_comparison.
3131         Fold -X eq/ne -Y as X eq/ne Y.
3132
3133 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
3134
3135         * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
3136         GENERATE_MULT3_<MODE>.  Restrict the test to SImode.  Use ISA_HAS_MUL3
3137         rather than GENERATE_MULT3_SI in the various define_peephole2s.
3138         (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
3139         Use an inclusive test for "mult" rather than "mul".
3140         (rotr<mode>3): Depend on ISA_HAS_ROR.
3141         * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
3142         ISA_HAS_MUL3.
3143         (GENERATE_MULT3_DI): Delete.
3144         (ISA_HAS_64BIT_REGS): Use consistent formatting.
3145         (ISA_HAS_MUL3): New macro.
3146         (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
3147         (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
3148         (ISA_HAS_CLZ_CLO): Likewise.
3149         (ISA_HAS_DCLZ_DCLO): Delete.
3150         (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
3151         (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
3152         the VR4120 and VR4130.
3153         (ISA_HAS_MACCHI): Use consistent formatting.
3154         (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
3155         (ISA_HAS_ROR): ...this new macro.
3156         (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
3157         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
3158         (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
3159
3160 2006-10-29  Roger Sayle  <roger@eyesopen.com>
3161
3162         PR tree-optimization/15458
3163         * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
3164         is a constant.
3165
3166 2006-10-29  Richard Guenther  <rguenther@suse.de>
3167
3168         * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
3169         (ix86_expand_truncdf_32): Likewise.
3170         * config/i386/i386.c (ix86_expand_trunc): New function expanding
3171         trunc inline for SSE math and -fno-trapping-math and if not
3172         optimizing for size.
3173         (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
3174         * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
3175         for expanding btrunc inline for SSE math.
3176
3177 2006-10-29  Joseph Myers  <joseph@codesourcery.com>
3178
3179         * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
3180         Handle tuning for bi-arch i[34567]86-*-linux* like that for
3181         i[34567]86-*-solaris2.1[0-9]*.
3182         * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
3183         Define conditionally depending on TARGET_64BIT_DEFAULT.
3184         (SPEC_32, SPEC_64): Define.
3185         (LINK_SPEC): Use them.
3186         * doc/install.texi (--enable-targets=all): Document for x86-linux.
3187
3188 2006-10-29  Richard Guenther  <rguenther@suse.de>
3189
3190         * config/i386/i386-protos.h (ix86_expand_round): Declare.
3191         (ix86_expand_rounddf_32): Likewise.
3192         * config/i386/i386.c (ix86_expand_round): New function expanding
3193         round inline for SSE math and -fno-trapping-math and if not
3194         optimizing for size.
3195         (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
3196         * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
3197         round via ix86_expand_round.
3198
3199 2006-10-29  Richard Guenther  <rguenther@suse.de>
3200
3201         * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
3202         (ix86_expand_floorceildf_32): Likewise.
3203         * config/i386/i386.c (ix86_expand_sse_compare_mask): New
3204         static helper function.
3205         (ix86_expand_floorceil): Expander for floor and ceil to SSE
3206         math.
3207         (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
3208         * config/i386/i386.md (floordf2): Adjust to enable floor
3209         expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
3210         -fno-trapping-math is enabled and if not optimizing for size.
3211         (floorsf2, ceildf2, ceilsf2): Likewise.
3212         * config/i386/sse.md (sse_maskcmpsf3): New insn.
3213         (sse2_maskcmpdf3): Likewise.
3214
3215 2006-10-29  Richard Guenther  <rguenther@suse.de>
3216
3217         * builtins.c (expand_builtin_mathfn): Expand nearbyint as
3218         rint in case -fno-trapping-math is enabled.
3219         * config/i386/i386-protos.h (ix86_expand_rint): Declare.
3220         * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
3221         (ix86_expand_sse_fabs): Likewise.
3222         (ix86_expand_rint): New function expanding rint to x87 or SSE math.
3223         * config/i386/i386.md (rintdf2): Enable for SSE math if
3224         -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
3225         (rintsf2): Likewise.
3226
3227 2006-10-29  Richard Guenther  <rguenther@suse.de>
3228
3229         * genopinit.c (optabs): Change lfloor_optab and lceil_optab
3230         to conversion optabs.
3231         * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
3232         as conversion optab.
3233         * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
3234         (enum convert_optab_index): Add COI_lfloor and COI_lceil.
3235         (lfloor_optab, lceil_optab): Adjust defines.
3236         * builtins.c (expand_builtin_int_roundingfn): Adjust for
3237         lfloor and lceil optabs now being conversion optabs.
3238         * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
3239         * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
3240         New static helper function.
3241         (ix86_expand_lfloorceil): New function to expand lfloor and
3242         lceil inline.
3243         * config/i386/i386.md (lfloor<mode>2): Split into ...
3244         (lfloorxf<mode>2): ... x87 variant
3245         (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
3246         using ix86_expand_lfloorceil.
3247         (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
3248         Likewise.
3249         * doc/md.texi (lfloorMN, lceilMN): Document.
3250
3251 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
3252
3253         * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE.  Test for the
3254         -mno-shared assembler option on mips targets.
3255         * configure, config.in: Regenerate.
3256         * config/mips/linux.h (NO_SHARED_SPECS): New macro.
3257         (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
3258         * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
3259
3260 2006-10-29  Richard Sandiford  <richard@codesourcery.com>
3261
3262         * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
3263         as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
3264
3265 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
3266
3267         * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
3268         config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
3269         comment typos.
3270
3271 2006-10-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3272
3273         PR middle-end/29335
3274         * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
3275         (fold_builtin_pow): Evaluate constant arguments at compile-time
3276         using MPFR.
3277         (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
3278         (do_mpfr_ckconv): New helper function.
3279         (do_mpfr_arg1): Use do_mpfr_ckconv.
3280         (do_mpfr_arg2): New.
3281
3282 2006-10-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3283
3284         PR tree-opt/29271
3285         * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
3286         (-fdump-rtl-sched): Rename to ..
3287         (-fdump-rtl-sched1): here.  Also fix file extension number.
3288
3289 2006-10-28  Richard Guenther  <rguenther@suse.de>
3290
3291         * fold-const.c (maybe_canonicalize_comparison): Fix code
3292         to match comment.
3293
3294 2006-10-28  Uros Bizjak  <uros@kss-loka.si>
3295
3296         * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
3297         (NON_QI_REG_P): Use IN_RANGE.
3298         (REX_INT_REGNO_P): Use IN_RANGE.
3299         (FP_REGNO_P): Use IN_RANGE.
3300         (SSE_REGNO_P): Use IN_RANGE.
3301         (REX_SSE_REGNO_P): Use IN_RANGE.
3302         (MMX_REGNO_P): Use IN_RANGE.
3303         (STACK_REGNO_P): New macro.
3304         (STACK_REG_P): Use STACK_REGNO_P.
3305         (NON_STACK_REG_P): Use STACK_REGNO_P.
3306         (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
3307         (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
3308         (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
3309         (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
3310         (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
3311
3312 2006-10-28  Eric Botcazou  <ebotcazou@adacore.com>
3313
3314         * except.h (output_function_exception_table): Add 'const char*' param.
3315         * except.c (switch_to_exception_section): Add 'const char*' param.
3316         If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
3317         and flag_function_sections is set, use a function-specific section.
3318         (output_function_exception_table): Add 'const char*' param.
3319         Adjust call to switch_to_exception_section.
3320         * final.c (rest_of_handle_final): Adjust calls to
3321         output_function_exception_table.
3322         * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
3323         * config.in: Regenerate.
3324         * configure: Likewise.
3325
3326 2006-10-28  Richard Guenther  <rguenther@suse.de>
3327
3328         PR middle-end/26899
3329         * fold-const.c (maybe_canonicalize_comparison_1): Helper
3330         for maybe_canonicalize_comparison.
3331         (maybe_canonicalize_comparison): New function for canonicalizing
3332         comparison trees.
3333         (fold_comparison): Call it to canonicalize comparisons with
3334         constants involved.
3335
3336 2006-10-28  Richard Guenther  <rguenther@suse.de>
3337
3338         PR target/28806
3339         * builtins.c (expand_builtin_int_roundingfn_2): Expand
3340         BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
3341         (expand_builtin): Adjust likewise.
3342         * genopinit.c (optabs[]): Add lround optab.
3343         * optabs.c (init_optabs): Initialize lround_optab.
3344         * optabs.h (enum convert_optab_index): Add COI_lround.
3345         (lround_optab): Define.
3346         * config/i386/i386-protos.h (ix86_expand_lround): Declare.
3347         * config/i386/i386.c (ix86_sse_copysign_to_positive): New
3348         static function.
3349         (ix86_expand_lround): New function.
3350         * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
3351         New expanders.
3352         * doc/md.texi (lroundMN2): Document.
3353
3354 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3355
3356         PR target/29377
3357         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
3358         argument to HOST_WIDE_INT.  Update function prototype.
3359         (round_frame_size): Change return type to HOST_WIDE_INT.  Change
3360         "size" argument to HOST_WIDE_INT.  Update function prototype.
3361
3362 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3363
3364         * config/i386/i386.c (output_387_ffreep): Create output from a
3365         template string for !HAVE_AS_IX86_FFREEP.
3366
3367 2006-10-27  Eric Christopher  <echristo@apple.com>
3368
3369         * config/darwin.c: Fix formatting and grammar.
3370
3371 2006-10-27  Jan Hubicka  <jh@suse.cz>
3372
3373         * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
3374         to be thrown away soon when IGNORE is set.
3375         * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
3376         indicating when return value shall not be computed.
3377         * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
3378
3379 2006-10-27  Vladimir Makarov  <vmakarov@redhat.com>
3380
3381         * config/i386/i386.h (TARGET_GEODE):
3382         (TARGET_CPU_CPP_BUILTINS): Add code for geode.
3383         (TARGET_CPU_DEFAULT_geode): New macro.
3384         (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
3385         TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
3386         TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
3387         TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
3388         TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
3389         the macro values.
3390         (TARGET_CPU_DEFAULT_NAMES): Add geode.
3391         (processor_type): Add PROCESSOR_GEODE.
3392
3393         * config/i386/i386.md: Include geode.md.
3394         (cpu): Add geode.
3395
3396         * config/i386/i386.c (geode_cost): New initialized global
3397         variable.