OSDN Git Service

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