OSDN Git Service

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