1 2006-11-29 Janis Johnson <janis187@us.ibm.com>
3 * config/dfp-bit.h (CONTEXT_ROUND): Delete.
4 (DFP_INIT_ROUNDMODE): Define.
5 * config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE.
6 * mklibgcc.in: Fix dependencies for dfp-bit.c.
8 2006-11-29 Tehila Meyzels <tehila@il.ibm.com>
10 * haifa-sched.c: Remove define LINE_NOTE(INSN). Remove line_note_head.
12 (associate_line_notes_with_blocks): Kill.
13 (extend_bb): Remove basic block argument, put void instead.
14 Remove line number handling for each bb.
15 (save_line_notes): Kill.
16 (restore_line_notes): Kill.
17 (sched_init): Remove line_note_head initialization.
18 Change extend_bb call.
19 (sched_finish): Remove free of line_note_head.
20 (add_block): Change extend_bb call.
21 * sched-ebb.c (schedule_ebb): Remove save_line_notes,
22 rm_line_notes and restore_line_notes calls.
23 (schedule_ebbs): Remove rm_redundant_line_notes.
24 * sched-int.h (struct haifa_insn_data): Remove line_note.
25 (save_line_notes): Remove declaration.
26 (restore_line_notes): Remove declaration.
27 * modulo-sched.c (loop_canon_p): Update debug info printing
28 by using insn locators instead of line note.
29 (sms_schedule): Update debug info printing, by using insn
30 locators instead of line note.
31 * sched-rgn.c (debug_dependencies): Remove handling of case
32 n>0 (line number), since it's a dead code.
33 (schedule_region): Remove save_line_notes and
34 restore_line_notes calls.
36 2006-11-29 Joseph Myers <joseph@codesourcery.com>
38 * config/rs6000/predicates.md (gpc_reg_operand): Check
40 * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any
41 SImode subregs of SPE vectors.
42 * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs.
43 * jump.c (true_regnum): Require subregs to satisfy
44 subreg_offset_representable_p.
46 2006-11-29 Daniel Berlin <dberlin@dberlin.org>
47 Steven Bosscher <stevenb.gcc@gmail.com>
49 * Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h,
50 since it no longer exists.
52 2006-11-29 Duncan Sands <baldrick@free.fr>
54 PR tree-optimization/23744
55 * tree-vrp.c (vrp_meet): do not require ranges to intersect.
57 2006-11-29 Duncan Sands <baldrick@free.fr>
59 PR tree-optimization/23744
60 * testsuite/gcc.dg/tree-ssa/pr23744.c: new test.
62 2006-11-29 Duncan Sands <baldrick@free.fr>
64 PR tree-optimization/23744
65 * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail.
67 2006-11-29 Jie Zhang <jie.zhang@analog.com>
69 * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately.
71 2006-11-29 J"orn Rennecke <joern.rennecke@st.com>
73 * sh.opt (minline-ic_invalidate): New option.
74 (musermode): Adjust comment.
75 * sh.c (sh_initialize_trampoline): Emit library call unless
76 is set; if it is set, don't emit library call if we can use icbi
78 * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use
79 icbi for TARGET_SH4_300.
80 * t-sh (LIB1ASMFUNCS_CACHE): Set.
81 * doc/invoke.texi: Document -minline-ic_invalidate; Update
82 -musermode documentation.
84 2006-11-29 Jim Tison <jtison@us.ibm.com>
86 * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
87 __gthread_recursive_mutex_init): Define.
89 2006-11-29 Joseph Myers <joseph@codesourcery.com>
91 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If
92 STRICT_ALIGNMENT and the type is more aligned than the saved
93 registers, copy via a temporary.
95 2006-11-28 Andrew Pinski <pinskia@gmail.com>
98 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR
101 2006-11-28 Bob Wilson <bob.wilson@acm.org>
103 * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit.
105 2006-11-28 Jan Hubicka <jh@suse.cz>
107 Privatize SSA variables into gimple_df.
109 (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars,
110 gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var,
111 gimple_nonlocal_all): New accessors.
112 (first_referenced_var): Update.
113 (mark_stmt_modified): Update.
114 (is_call_clobbered): Update.
115 (mark_call_clobbered): Update.
116 (clear_call_clobbered): Update.
117 (mark_non_addressable): Update.
118 * tree-vrp.c (get_value_range): Update.
119 * tree-into-ssa.c (in_ssa_p): Kill.
120 (get_default_def_for): Update.
121 (rewrite_into_ssa): Update.
122 * tree-complex.c (init_parameter_lattice_values): Update.
123 (update_complex_assignment): Update.
124 (update_parameter_components): Update.
125 (expand_complex_libcall): Update.
126 (expand_complex_operations_1): Update.
127 * tree-tailcall.c (arg_needs_copy_p): Update.
128 (add_virtual_phis): Update.
129 (tree_optimize_tail_calls_1): Update.
130 * tree-ssa-dse.c (memory_ssa_name_same): Update.
131 * tree-ssa-copyrename.c
132 (copy_rename_partition_coalesce): Update.
133 * tree-ssa-math-opts.c (execute_cse_reciprocals): Update.
134 * tree-ssa-propagate.c (set_rhs): Update.
135 * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars,
136 addressable_vars, global_var):Kill.
137 (set_initial_properties): Update.
138 (init_alias_info): Update.
139 (finalize_ref_all_pointers): Update.
140 (setup_pointers_and_addressables): Update.
141 (maybe_create_global_var): Update.
142 (create_global_var): Update.
143 (dump_points_to_info): Update.
144 * function.h (struct gimple_df): Forward declare.
145 (struct function): Add GIMPLE_DF field.
146 * gimplify.c (force_gimple_operand): Update.
147 * tree-dfa.c (referenced_vars, default_defs): KIll.
148 (make_rename_temp): Update.
149 (dump_variable): Update.
150 (referenced_var_lookup): Update.
151 (referenced_var_check_and_insert): Update.
152 (default_def): Rename to ...
153 (gimple_default_def): ... this one; accept cfun argument.
154 (set_default_def): Update.
155 * tree-cfgcleanup.c (modified_noreturn_calls): Kill.
156 (cleanup_control_flow): Update.
157 * tree-ssa-pre.c (compute_avail): Update
158 * tree-ssa-live.c (calculate_live_on_entry): Update.
159 * tree-ssa.c (verify_use): Update.
160 (verify_call_clobbering): Update.
161 (verify_call_clobbering): Update.
162 (init_tree_ssa): Update.
163 (delete_tree_ssa): Update.
164 * tree-outof-ssa.c (coalesce_ssa_name): Update.
165 (rewrite_out_of_ssa): Update.
166 * tree-flow.h (gimple_df): New structure collecting dataflow variables.
167 (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New
169 (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs,
170 ssa_names, global_var, nonlocal_all, call_clobbered_vars,
171 addressable_vars, aliases_computed_p): Kill.
172 (default_def): Rename to...
173 (gimple_default_def): ... this one.
174 (defaule_def_fn): Kill.
175 (num_referenced_vars, ssa_names, num_ssa_names): Update.
176 * tree-ssa-structalias.c (nonlocal_all): Kill.
177 (get_constraint_exp_from_ssa_var): Update.
178 (create_nonlocal_var): Update.
179 (get_constraint_for): Update.
180 (update_alias_info): Update.
181 (find_global_initializers): Update.
182 (intra_create_variable_infos): Update.
183 (intra_create_variable_infos):
184 (find_what_p_points_to): Update.
185 (init_alias_heapvars): Update.
186 * tree-cfg.c (remove_bb): Update.
187 (gimplify_val): Update.
188 * tree-ssa-reassoc.c (get_rank): Update.
189 (init_reassoc): Update.
190 * tree-ssanames.c: Do not include gt-tree-ssanames.h
191 (ssa_names, free_ssanames): Kill.
192 (init_ssanames): Update.
193 (make_ssa_name): Update.
194 (release_ssa_name): Update.
195 (release_defs): Update.
196 (replace_ssa_name_symbol): Update.
197 * tree-ssa-operands.c (access_can_touch_variable): Update.
198 (add_virtual_operand): Update.
199 (add_call_clobber_ops): Update.
200 (add_call_read_ops): Update.
201 (get_call_expr_operands): Update.
202 (get_asm_expr_operands): Update.
204 2006-11-28 Jan Hubicka <jh@suse.cz>
206 * builtins.c: Include tree-flow.h.
207 (fold_builtin_memory_op): Be more aggressive on converting memcpy to
208 assignment; convert memmove to memcpy for sizes greater than 1 where
209 alignment of operands prohibit the partial overlap.
211 2006-11-28 Jan Hubicka <jh@suse.cz>
213 * invoke.texi (large-stack-frame, large-stack-frame-growth): New params.
214 * cgraph.c (dump_cgraph_node): Dump stack usage.
215 * cgraph.h (cgraph_local_info): Add estimated_self_stack_size.
216 (cgraph_global_info): Add estimated_stack_size and stack_frame_offset.
217 * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes.
218 * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage.
219 (cgraph_check_inline_limits): Limit stack growth.
220 * cfgexpand.c: Include tree-inline.h.
221 (account_stack_vars): New function.
222 (expand_one_var): New param to just account the stack; return estimated
224 (expand_used_vars_for_block): Update call of expand_one_var.
225 (account_used_vars_for_block): New function.
226 (estimated_stack_frame_size): Likewise.
227 (init_vars_expansion, fini_vars_expansion): Break out from..
228 (expand_used_vars): ... here.
229 * tree-inline.h (estimated_stack_frame_size): Declare.
230 * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New.
232 2006-11-28 Richard Guenther <rguenther@suse.de>
234 * ggc-page.c (ggc_print_statistics): Use %ul and a cast to
235 unsigned long for printing OBJECT_SIZE.
237 2006-11-27 Steven Bosscher <steven@gcc.gnu.org>
239 * alias.c (init_alias_analysis): Remove simplification loop
240 after propagating pointers.
242 2006-11-27 Uros Bizjak <ubizjak@gmail.com>
244 * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2
247 2006-11-27 Bob Wilson <bob.wilson@acm.org>
249 * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default.
251 2006-11-27 Roger Sayle <roger@eyesopen.com>
252 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
254 * c-common.c (constant_fits_type_p): Delete.
255 (unsigned_conversion_warning): Delete.
256 (conversion_warning): Integrate Wconversion warning from
257 unsigned_conversion_warning.
258 (convert_and_check): Integrate Woverflow warning from
259 unsigned_conversion_warning. Reorganize and simplify to avoid
260 dependence upon the middle-end setting TREE_OVERFLOW on integral
261 conversions, by using int_fits_type_p directly.
263 2006-11-27 Tobias Burnus <burnus@net-b.de>
265 * doc/invoke.texi: Fixed typo.
267 2006-11-27 Michael Matz <matz@suse.de>
268 Andreas Krebbel <krebbel1@de.ibm.com>
271 * config/s390/predicates.md (larl_operand): Check addend of larl
272 operand to be in range of -/+2GB.
273 * config/s390/s390.c (legitimize_pic_address): Likewise.
274 Changed type of variable even to HOST_WIDE_INT.
276 2006-11-27 Jan Hubicka <jh@suse.cz>
278 * expr.c (emit_block_move_via_libcall): Export.
279 (clear_storage_via_libcall): Rename to ...
280 (set_storage_via_libcall): ... this one; handle arbitrary value to set.
281 (clear_storage): Update to set_storage_via_libcall.
282 * expr.h (emit_block_move_via_libcall): Declare
283 * config/i386/i386.h (stringop_alg): New enum.
284 (MAX_STRINGOP_ALGS): New constant.
285 (stringop_algs): New struct.
286 (processor_costs): Add memcpy/memset descriptors.
287 (TARGET_REP_MOVEL_OPTIMAL): Remove.
288 * config/i386/i386.md (movsi_insv_1_rex64): New pattern.
289 (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands
291 * config/i386/i386.opt (minline-stringops-dynamically,
292 mstringop-strategy): New
294 * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype.
295 (ix86_expand-clrmem): Rename to ...
296 (ix86_expand_setmem): ... this one; update prototype.
297 * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant.
298 (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
299 geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost,
300 nocona_cost, core2_cost, generic_cost, generic64_cost,
301 generic32_cost): Add memcpy/memset descriptors.
302 (x86_rep_movl_optimal): Remove.
303 (stringop_alg): New static variable.
304 (ix86_expand_aligntest): Handle predictions.
305 (override_options): Add strgop_alg handling.
306 (predict_jump): New function.
307 (scale_counter): New function.
308 (expand_set_or_movmem_via_loop): New function.
309 (expand_movmem_via_rep_mov): New function.
310 (expand_setmem_via_rep_stots): New function.
311 (emit_strmov): New function.
312 (expand_movmem_epilogue): New function.
313 (expand_setmem_epilogue_via_loop): New function.
314 (expand_setmem_epilogue): New function.
315 (expand_movmem_prologue): New function.
316 (expand_setmem_prologue): New function.
317 (decide_alg): New function.
318 (decide_alignment): New function.
319 (ix86_exand_movmem): Rewrite.
320 (promote_duplicated_reg): New function.
321 (ix86_expand_clrmem): Rename to ...
322 (ix86_expand_setmem): ... this one. Rewrite.
324 * invoke.texi (minline-stringops-dynamically): New command line option.
325 (mstringop-strategy): Likewise.
327 2006-11-27 Jan Hubicka <jh@suse.cz>
329 * cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
330 * rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
331 * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
332 * insn-notes.def (FUNCTION_END): Remove.
333 * jump.c (delete_related_insns): Don't worry about FUNCTION_END.
334 (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
336 * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
337 * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
338 * cfglayout.c (duplicate_insn_chain): Don't worry about
341 2006-11-27 Richard Guenther <rguenther@suse.de>
342 Zdenek Dvorak <dvorakz@suse.cz>
344 * target.h (struct gcc_target): Add builtin_vectorized_function
346 * target-def.h (TARGET_VECTORIZE): Likewise.
347 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
348 Document new target hook.
349 * targhooks.h (default_builtin_vectorized_function): Declare.
350 * targhooks.c (default_builtin_vectorized_function): Define.
351 * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type.
352 (vectorizable_call): Declare.
353 * tree-vect-analyze.c (vect_analyze_operations): Call
355 * tree-vect-transform.c (vectorizable_function): New static function.
356 (build_vectorized_function_call): Likewise.
357 (vectorizable_call): New function.
358 (vect_transform_stmt): Handle vectorizable calls.
360 2006-11-27 Richard Guenther <rguenther@suse.de>
363 * builtins.c (expand_builtin_pow): Optimize non integer valued
364 constant exponents using sqrt or cbrt if possible. Always fall back
365 to expanding via optabs.
367 2006-11-27 Ira Rosen <irar@il.ibm.com>
369 PR tree-optimization/22372
370 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert
371 the type of the base address.
372 (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use
373 it in the data-ref pointer creation.
374 (vect_init_vector): Add an argument, type of the init vector. Use it in
376 (vect_get_vec_def_for_operand): Fix calls to vect_init_vector.
377 (get_initial_def_for_reduction): Likewise.
378 (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to
380 (vectorizable_assignment, vect_permute_store_chain): Likewise.
381 (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the
382 correct type in stmt creation.
383 (vect_setup_realignment): Use the correct type in stmt creation.
384 (vect_permute_load_chain): Change type of MODIFY_EXPR to
386 (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type
387 of MODIFY_EXPR to void_type_node.
388 (vectorizable_condition): Change type of MODIFY_EXPR to
390 (vect_update_ivs_after_vectorizer): Use the correct type in stmt
393 2006-11-27 Uros Bizjak <ubizjak@gmail.com>
396 2006-05-08 Uros Bizjak <uros@kss-loka.si>
397 * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
398 standard 80387 constants, raise the cost to prevent
399 compress_float_constant() to generate load from memory.
401 * config/i386/i386.md: Add new splitter pattern to split
402 float_extended load of constant from constant pool into
405 2006-11-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
407 * doc/install.texi: Move GMP/MPFR configure options from Fortran
408 section to general section. Remove documentation for
409 --with-mpfr-dir and --with-gmp-dir, add documentation for
410 --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and
413 * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments.
415 2006-11-26 Razya Ladklesky <razya@il.ibm.com>
417 * testsuite/gcc.dg/ipa/ipa-6.c: New.
419 2006-11-26 Razya Ladklesky <razya@il.ibm.com>
421 PR tree-optimization/29122
422 * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME
423 for the new version. Assign NULL to DECL_RTL of the new version.
425 2006-11-25 Uros Bizjak <ubizjak@gmail.com>
427 * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.
429 2006-11-25 Steven Bosscher <steven@gcc.gnu.org>
431 * cse.c (cse_altered): Remove.
432 (record_jump_equiv): Make true/false argument a bool instead
434 (cse_insn): Don't set cse_altered. Use delete_insn_and_edges
435 where appropriate. Emit a new jump before the existing one
436 instead of after so that delete_insn_and_edges removes the
437 dead edges properly. Check any_condjump_p before calling
439 (cse_basic_block): Check any_condjump_p before calling
441 (cse_main): Don't set/check cse_altered. Remove USE_C_ALLOCA.
443 2006-11-25 Brooks Moses <brooks.moses@codesourcery.com>
445 * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and
446 -ffixed-line-length-* options.
448 2006-11-25 Uros Bizjak <ubizjak@gmail.com>
450 * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387.
451 (fprem1xf4): Rename to fprem1xf4_i387.
453 (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro.
454 Rename patterns to fmod<mode>3. Use general_operand operand
455 constraint for operands 1 and 2. Use SSE_FLOAT_MODE_P to disable
456 patterns for SSE math.
457 (remaindersf3, remainderdf3): Ditto.
459 2006-11-25 Joseph Myers <joseph@codesourcery.com>
461 * function.c (instantiate_virtual_regs_in_insn): Call force_reg
462 inside start_sequence / end_sequence pair.
464 2006-11-25 Steven Bosscher <steven@gcc.gnu.org>
466 * jump.c (mark_all_labels): Work in cfglayout mode.
467 * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables
468 when in cfglayout mode, because there are no dead jumptables
470 * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when
472 (commit_edge_insertions): Do not allow insertion of instructions
473 with control flow insns when in cfglayout mode.
475 2006-11-25 Zdenek Dvorak <dvorakz@suse.cz>
477 * tree-vrp.c (execute_vrp): Do not pass loops structure through
479 * loop-unswitch.c (unswitch_loops, unswitch_single_loop,
480 unswitch_loop): Ditto.
481 * tree-loop-linear.c (linear_transform_loops): Ditto.
482 * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize,
483 tree_ssa_lim): Ditto.
484 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations,
485 free_numbers_of_iterations_estimates): Ditto.
486 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops,
487 tree_unswitch_single_loop, tree_unswitch_loop): Ditto.
488 * cfgloopmanip.c (fix_bb_placement, fix_bb_placements,
489 remove_path, add_loop, loopify, unloop, fix_loop_placements,
490 place_new_loop, duplicate_loop, duplicate_subloops,
491 update_single_exit_for_duplicated_loops, copy_loops_to,
492 duplicate_loop_to_header_edge, create_preheaders,
493 force_single_succ_latches, loop_version, fix_loop_structure):
495 * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge,
496 tree_unroll_loop): Ditto.
497 * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
498 * tree-scalar-evolution.c (select_loops_exit_conditions,
499 scev_initialize, scev_analysis): Ditto.
500 * tree-scalar-evolution.h (scev_initialize): Ditto.
501 * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto.
502 * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto.
503 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto.
504 * modulo-sched.c (sms_schedule): Ditto.
505 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
506 * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants,
507 rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto.
508 * ifcvt.c (if_convert): Ditto.
509 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely,
510 canonicalize_loop_induction_variables,
511 canonicalize_induction_variables,
512 tree_unroll_loops_completely, remove_empty_loops): Ditto.
513 * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im,
514 tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform,
515 tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds,
516 tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts,
517 tree_ssa_loop_done): Ditto.
518 * predict.c (predict_loops, tree_estimate_probability, estimate_loops,
519 estimate_bb_frequencies): Ditto.
520 * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg,
521 slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto.
522 * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely,
523 decide_unrolling_and_peeling, peel_loop_completely,
524 unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
525 peel_loop_simple, unroll_loop_stupid): Ditto.
526 * loop-doloop.c (doloop_optimize_loops): Ditto.
527 * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto.
528 * loop-invariant.c (move_loop_invariants): Ditto.
529 * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto.
530 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays,
531 tree_ssa_prefetch_arrays): Ditto.
532 * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify):
534 * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
535 vect_do_peeling_for_alignment, vect_transform_loop): Ditto.
536 * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump,
537 mark_single_exit_loops, cancel_loop, cancel_loop_tree,
538 verify_loop_structure): Ditto.
539 * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops,
540 canonicalize_induction_variables, tree_unroll_loops_completely,
541 tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize,
542 estimate_numbers_of_iterations, free_numbers_of_iterations_estimates,
543 tree_duplicate_loop_to_header_edge, tree_ssa_loop_version,
544 tree_unroll_loop, linear_transform_loops): Declaration changed.
545 * basic-block.h: Remove declaration of struct loops.
546 * cfghooks.h (struct cfg_hooks): Change type of
547 cfg_hook_duplicate_loop_to_header_edge.
548 (cfg_hook_duplicate_loop_to_header_edge): Declaration changed.
549 * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge,
550 vect_transform_loop): Declaration changed.
551 * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed.
552 * cfgloop.h (flow_loops_dump, fix_loop_structure,
553 mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges,
554 cancel_loop_tree, create_preheaders, force_single_succ_latches,
555 verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge,
556 loopify, loop_version, remove_path, unswitch_loops,
557 unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants):
560 2006-11-24 Uros Bizjak <ubizjak@gmail.com>
562 * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
563 (X87MODEF): New mode macro.
564 (ssemodefsuffix): New mode attribute.
565 (truncxf<mode>2_i387_noop_unspec): New insn pattern.
566 (sqrt_extend<mode>xf2_i387): New insn pattern.
567 (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
568 insn and truncate result back to original mode using
569 UNSPEC_TRUNC_NOOP truncation.
570 (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
571 ssemodefsuffix mode attribute.
572 (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
573 (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
574 (*sqrtextenddfxf2_i387): Remove insn patterns.
576 (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
579 * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.
581 2006-11-24 Jakub Jelinek <jakub@redhat.com>
584 * c-tree.h (c_maybe_initialize_eh): New prototype.
585 * c-decl.c (finish_decl): Move EH initialization...
586 (c_maybe_initialize_eh): ... here. New function.
587 * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh
588 if not #pragma omp atomic.
591 * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE
592 or UNION_TYPE inner types.
594 2006-11-24 Andrew Pinski <andrew_pinski@playstation.sony.com>
597 * ipa-pure-const.c (check_tree): If the original tree
598 is volatile return early and say the function is not pure
599 nor const. Remove the volatile check for writes.
600 (analyze_function): Print out the result of the local
603 2006-11-24 Joseph Myers <joseph@codesourcery.com>
605 * config/rs6000/eabispe.h (TARGET_DEFAULT): Include
607 * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise.
608 * config/rs6000/rs6000.c (rs6000_override_options): Use
609 MASK_STRICT_ALIGN for 8540 and 8548. Add MASK_STRICT_ALIGN to
612 2006-11-24 Andreas Krebbel <krebbel1@de.ibm.com>
614 * config/s390.c (s390_emit_compare_and_swap): New function.
615 (s390_expand_cs_hqi, s390_expand_atomic): Call
616 s390_emit_compare_and_swap.
618 2006-11-23 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
620 * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
622 2006-11-24 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
626 * c-common.c (conversion_warning): New.
627 (convert_and_check): Call conversion_warning unless there is an
629 * doc/invoke.texi (-Wconversion): Update description.
631 2006-11-23 Daniel Berlin <dberlin@dberlin.org>
633 * tree-ssa-alias.c (tree_pointer_compare): New function.
634 (compact_name_tags): New function.
635 (group_aliases): Call compact_name_tags.
637 2006-11-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
639 * real.h (real_isinteger): Declare.
640 * real.c (real_isinteger): Define.
641 * builtins.c (integer_valued_real_p): Use it.
643 2006-11-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
646 * c.opt (Wtraditional-conversion): New.
647 (Wconversion): Update description.
648 * c-typeck.c (convert_arguments): Warnings for prototypes causing
649 type conversions different from what would happen in the absence
650 of prototype are now handled by Wtraditional-conversion.
651 * doc/invoke.texi (Wtraditional-conversion): New.
652 (Wconversion): Update description.
653 * doc/trouble.texi (Wconversion): Replace Wconversion by
654 Wtraditional-conversion.
656 2006-11-23 Andrew Pinski <pinskia@gmail.com>
658 * predict.c (tree_estimate_probability): Check to make
659 sure current_loops is non null before calling flow_loops_dump.
661 2006-11-23 Bernd Schmidt <bernd.schmidt@analog.com>
663 * var-tracking.c (emit_note_insn_var_location): Revert previous patch.
665 2006-11-23 David Ung <davidu@mips.com>
667 * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu
669 (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes.
670 (ASM_SPEC): Pass along -mfp32 and -mfp64.
671 * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set
672 high part of FP register when in 64-bit FP register mode. Similarly
673 use gen_mfhc1 to load high part of FP register.
674 (override_options): Allow -mgp32 and -mfp64 combination if
675 ISA_HAS_MXHC1 (currently for O32 only).
676 (mips_cannot_change_mode_class): If floating-point registers are
677 bigger than word size. disallow conversion of float register from a
678 large integer mode to a float mode smaller than the float register
680 (mips_class_max_nregs): Handle float registers case seperately.
681 * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1,
683 (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern.
684 (movdf_hardfloat_32bit): Similarly.
685 (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally
686 support a full 64-bit fpu.
687 (mthc1): New pattern to generate MTHC1 instruction.
688 (mfhc1): New pattern to generate MFHC1 instruction.
689 * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64
690 option for the MIPS32R2 and mention its use under O32 ABI.
692 2006-11-23 Bernd Schmidt <bernd.schmidt@analog.com>
694 * var-tracking.c (emit_note_insn_var_location): Take care not to
695 cause verify_flow_info failures.
697 2006-11-22 Daniel Berlin <dberlin@dberlin.org>
699 * tree-ssa-structalias.c: Remove edge weights in favor of just
700 processing them as complex constraints.
701 (struct constraint_graph): Remove weighted succs and preds. Rename
702 nonweighted succs and preds.
703 (constraint_edge): Removed.
704 (constraint_edge_t): Ditto.
705 (constraint_edge_pool): Ditto.
706 (new_constraint_edge): Ditto.
707 (constraint_edge_equal): Ditto.
708 (constraint_edge_less): Ditto.
709 (constraint_edge_vec_find): Ditto.
710 (erase_self_graph_edge): Ditto.
711 (add_graph_edge): Removed.
712 (get_graph_weights): Ditto.
713 (allocate_graph_weights): Ditto.
714 (valid_weighted_graph_edge): Ditto
715 (bitmap_other_than_zero_bit_set): Ditto.
716 (int_add_graph_edge): Renamed to add_graph_edge.
717 (clear_edges_for_node): Remove support for weighted edges.
718 (merge_graph_nodes): Ditto.
719 (valid_graph_edge): Ditto.
720 (build_constraint_graph): Ditto.
722 (collapse_nodes): Ditto.
723 (process_unification_queue): Ditto.
725 (do_ds_constraint): Ditto.
726 (perform_var_subsitution): Ditto.
727 (solve_graph): Ditto.
728 (init_alias_vars): Ditto.
729 (delete_points_to_sets): Ditto.
730 (do_complex_constraint): Support offsetted copies here.
732 2006-11-23 Ulrich Weigand <uweigand@de.ibm.com>
734 * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to
736 * config/spu/spu_mfcio.h (spu_read_event_mask): Update.
738 * config/spu/spu_mfcio.h (struct mfc_list_element): Change width
741 2006-11-23 Ben Elliston <bje@au.ibm.com>
743 * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p.
745 2006-11-23 Zdenek Dvorak <dvorakz@suse.cz>
747 PR tree-optimization/29921
748 * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider
749 signed and unsigned zero equal.
751 2006-11-22 Peter Bergner <bergner@vnet.ibm.com>
753 * config/rs6000/rs6000.c (get_store_dest): New.
754 (adjacent_mem_locations): Use get_store_dest() to get
755 the rtl of the store destination.
757 2006-11-22 Joseph Myers <joseph@codesourcery.com>
759 * config/rs6000/spe.md (SPE64): New mode macro.
760 (mov_sidf_e500_subreg0): Change to mov_si<mode>_e500_subreg0. Add
762 (mov_si<mode>_e500_subreg0_2): New.
763 (mov_sidf_e500_subreg4): Change to mov_si<mode>_e500_subreg4. Add
765 (mov_si<mode>_e500_subreg4_2): New.
766 * config/rs6000/predicates.md (input_operand): Do not allow
767 invalid E500 subregs.
768 (rs6000_nonimmediate_operand): Check for invalid E500 subregs also
770 * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs
771 involving DFmode if TARGET_E500_DOUBLE. Check for subregs
772 involving vector modes if TARGET_SPE.
774 2006-11-22 Kaz Kojima <kkojima@gcc.gnu.org>
777 2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
778 * reorg.c (emit_delay_sequence): Copy the delay slot insn.
780 2006-11-22 Bernd Schmidt <bernd.schmidt@analog.com>
782 * config/bfin/predicates.md (d_register_operand, mem_p_address_operand,
783 mem_i_address_operand): New predicates.
784 * config/bfin/bfin.c (bfin_issue_rate): New function.
785 (TARGET_SCHED_ISSUE_RATE): New macro.
786 * config/bfin/bfin.md (addrtype): New attribute.
787 (slot0, slot1, slot2, store, pregs): New cpu_units.
788 (core): Now a define_reservation.
789 (alu): Remove some insn types from this reservation.
790 (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New
792 (dummy reservation): Don't trigger for mcld insns.
793 (absence_sets): Two new absence sets to enforce slot ordering.
794 (popsi_insn): Set addrtype.
796 2006-11-22 Ira Rosen <irar@il.ibm.com>
798 * doc/c-tree.texi: Document new tree codes.
799 * doc/md.texi: Document new optabs.
800 * tree-pretty-print.c (dump_generic_node): Handle print of new tree
802 * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs.
803 * optabs.h (optab_index): Add new.
804 (vec_extract_even_optab, vec_extract_odd_optab,
805 vec_interleave_high_optab, vec_interleave_low_optab): New optabs.
806 * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab,
807 vec_interleave_high_optab, vec_interleave_low_optab): Initialize
809 * expr.c (expand_expr_real_1): Add implementation for new tree codes.
810 * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
811 * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving
812 along with macros for their access.
813 * tree-data-ref.h (first_location_in_loop, data_reference): Update
815 * tree-vect-analyze.c (toplev.h): Include.
816 (vect_determine_vectorization_factor): Fix indentation.
817 (vect_insert_into_interleaving_chain,
818 vect_update_interleaving_chain, vect_equal_offsets): New functions.
819 (vect_analyze_data_ref_dependence): Add argument for interleaving
820 check. Check for interleaving if it's true.
821 (vect_check_dependences): New function.
822 (vect_analyze_data_ref_dependences): Call vect_check_dependences for
823 every ddr. Call vect_analyze_data_ref_dependence with new argument.
824 (vect_update_misalignment_for_peel): Update for interleaving.
825 (vect_verify_datarefs_alignment): Check only first data-ref for
827 (vect_enhance_data_refs_alignment): Update for interleaving. Check
828 only first data-ref for interleaving.
829 (vect_analyze_data_ref_access): Check interleaving, update
831 (vect_analyze_data_refs): Call compute_data_dependences_for_loop
832 with different parameters.
833 * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR,
834 VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes.
835 * tree-inline.c (estimate_num_insns_1): Add cases for new codes.
836 * tree-vect-transform.c (vect_create_addr_base_for_vector_ref):
837 Update step in case of interleaving.
838 (vect_strided_store_supported, vect_permute_store_chain): New
840 (vectorizable_store): Handle strided stores.
841 (vect_strided_load_supported, vect_permute_load_chain,
842 vect_transform_strided_load): New functions.
843 (vectorizable_load): Handle strided loads.
844 (vect_transform_stmt): Add argument. Handle strided stores. Check
845 that vectorized stmt exists for patterns.
846 (vect_gen_niters_for_prolog_loop): Update calculation for
848 (vect_transform_loop): Remove stmt_vec_info for strided stores after
849 whole chain vectorization.
850 * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD,
851 UNSPEC_INTERHI, UNSPEC_INTERLO): New constants.
852 (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even<mode>,
853 vec_extract_odd<mode>, altivec_vmrghsf, altivec_vmrglsf,
854 vec_interleave_high<mode>, vec_interleave_low<mode>): Implement.
856 2006-11-22 Steven Bosscher <steven@gcc.gnu.org>
858 * cse.c (enum taken): Remove PATH_AROUND.
859 (addr_affects_sp_p, invalidate_skipped_set,
860 invalidate_skipped_block): Remove.
861 (cse_end_of_basic_block): Remove skip_blocks and related code.
862 (cse_main): Don't test for flag_cse_skip_blocks.
863 Update cse_end_of_basic_block call.
864 (cse_basic_block): Likewise. Remove PATH_AROUND case. Remove
865 code to lengthen the path if a jump was simplified.
867 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
869 PR rtl-optimization/29924
870 * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL.
871 (unroll_loop_runtime_iterations): Assert that the argument passed to
872 split_edge_and_insert is not NULL.
873 * loop-doloop.c (add_test): Ditto.
875 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
877 * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor
879 * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto.
880 * cfgloopmanip.c (update_single_exits_after_duplication,
881 update_single_exit_for_duplicated_loop, loop_version): Ditto.
882 * tree-scalar-evolution.c (get_loop_exit_condition,
883 get_exit_conditions_rec, loop_closed_phi_def,
884 number_of_iterations_in_loop, scev_const_prop): Ditto.
885 * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto.
886 * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule):
888 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
890 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
891 slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2,
892 slpeel_make_loop_iterate_ntimes,
893 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p,
894 slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
896 * tree-if-conv.c (if_convertible_loop_p): Ditto.
897 * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p,
898 vect_analyze_loop_form): Ditto.
899 * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p,
900 can_convert_to_perfect_nest, perfect_nestify): Ditto.
901 * tree-vect-transform.c (vect_create_epilog_for_reduction,
902 vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound,
903 vect_transform_loop): Ditto.
904 * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto.
905 (single_exit, set_single_exit): New functions.
906 * cfgloop.h (struct loop): Rename single_exit field to single_exit_.
907 (single_exit, set_single_exit): Declare.
908 * doc/loop.texi: Undocument single_exit field. Document single_exit
911 2006-11-22 Zdenek Dvorak <dvorakz@suse.cz>
913 PR tree-optimization/29902
914 * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if
915 any involved ssa name appears in abnormal phi node.
917 2006-11-21 Bob Wilson <bob.wilson@acm.org>
919 * config/xtensa/xtensa.c (xtensa_char_to_class): Delete.
920 (xtensa_const_ok_for_letter_p): Delete.
921 (xtensa_extra_constraint): Delete.
922 (override_options): Delete xtensa_char_to_class initialization.
923 * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete.
924 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
925 (EXTRA_CONSTRAINT): Delete.
926 * config/xtensa/xtensa.md: Include constraints.md.
927 (call_internal): Combine alternatives.
928 (call_value_internal): Likewise, and remove invalid constraints.
929 * config/xtensa/constraints.md: New file.
930 * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete.
931 (xtensa_extra_constraint): Delete.
932 * doc/md.texi (Machine Constraints): Refer to constraints.md for
935 2006-11-21 Janis Johnson <janis187@us.ibm.com>
937 * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result
938 of conversion that doesn't fit.
940 * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
941 * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
942 DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
944 * config/dfp-bit.c (dfp_binary_func): Fix typedef.
946 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
948 * c-common.h (enum rid): Add RID_STATIC_ASSERT.
950 2006-11-21 Richard Guenther <rguenther@suse.de>
952 * tree-vectorizer.h (NUM_PATTERNS): Increase.
953 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
954 vect_recog_pow_pattern.
955 (vect_recog_pow_pattern): New function.
957 2006-11-21 Bernd Schmidt <bernd.schmidt@analog.com>
959 * config/bfin/bfin.opt (mstack-check-l1): New.
960 * doc/invoke.texi (Blackfin Options): Document it.
961 * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use
962 stack bounds in L1 memory if the new option is enabled.
963 (override_options): Don't allow combinations of -fstack-limit and
965 (add_to_reg): Renamed from add_to_sp. All callers changed. Lose some
968 * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31
970 (bfin_register_move_cost): Bump costs if trying to move plain
971 integer values through accumulators.
973 2006-11-21 Ben Elliston <bje@au.ibm.com>
975 * config/spu/spu.c (spu_expand_vector_init): Initialise x.
977 2006-11-20 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
978 Russell Olsen <Russell_Olsen@playstation.sony.com>
979 Dmitri Makarov <Dmitri_Makarov@playstation.sony.com>
980 Yukishige Shibata <shibata@rd.scei.sony.co.jp>
981 Nobuhisa Fujinami <fnami@rd.scei.sony.co.jp>
982 Takeaki Fukuoka <fukuoka@rd.scei.sony.co.jp>
983 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
985 * config.gcc: Add target for SPU.
986 * config/spu/constraints.md: New file.
987 * config/spu/crt0.c: New file.
988 * config/spu/crtend.c: New file.
989 * config/spu/crti.asm: New file.
990 * config/spu/crtn.asm: New file.
991 * config/spu/float_unsdidf.c: New file.
992 * config/spu/float_unssidf.c: New file.
993 * config/spu/predicates.md: New file.
994 * config/spu/spu-builtins.def: New file.
995 * config/spu/spu-builtins.h: New file.
996 * config/spu/spu-builtins.md: New file.
997 * config/spu/spu-c.c: New file.
998 * config/spu/spu-elf.h: New file.
999 * config/spu/spu-modes.def: New file.
1000 * config/spu/spu-protos.h: New file.
1001 * config/spu/spu.c: New file.
1002 * config/spu/spu.h: New file.
1003 * config/spu/spu.md: New file.
1004 * config/spu/spu.opt: New file.
1005 * config/spu/spu_internals.h: New file.
1006 * config/spu/spu_intrinsics.h: New file.
1007 * config/spu/spu_mfcio.h: New file.
1008 * config/spu/t-spu-elf: New file.
1009 * config/spu/vec_types.h: New file.
1010 * config/spu/vmx2spu.h: New file.
1011 * doc/contrib.texi: Document SPU contributor.
1012 * doc/extend.texi: Document SPU extensions.
1013 * doc/invoke.texi: Document SPU options.
1014 * doc/md.texi: Document SPU constraints.
1016 2006-11-21 Zdenek Dvorak <dvorakz@suse.cz>
1018 * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level
1020 * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute):
1022 (flow_loop_dump): Do not dump loop level.
1023 (flow_loops_find): Do not call flow_loops_level_compute.
1024 * cfgloop.h (struct loop): Remove level field.
1026 2006-11-21 Zdenek Dvorak <dvorakz@suse.cz>
1028 * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref,
1029 hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop):
1030 Use vector of edges instead of array.
1031 * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval,
1032 estimate_numbers_of_iterations_loop): Ditto.
1033 * predict.c (predict_loops): Ditto.
1034 * loop-unroll.c (analyze_insns_in_loop): Ditto.
1035 * tree-ssa-threadupdate.c: Remove declaration of heap allocation for
1037 * basic-block.h: Declare heap allocation for edge vectors.
1038 * tree-outof-ssa.c: Ditto.
1039 * cfgloop.c (get_loop_exit_edges): Return vector of edges.
1040 * cfgloop.h (get_loop_exit_edges): Declaration changed.
1042 2006-11-20 Zack Weinberg <zackw@panix.com>
1044 * gengtype.c (process_gc_options): Remove unnecessary forward decl.
1045 Add another out parameter, "skip".
1046 (set_gc_used_type): Adjust calls to process_gc_options. If a field
1047 is tagged "skip", do not mark its type used.
1049 2006-11-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
1052 * tree-sra.c (single_scalar_field_in_record_p): New function.
1053 (decide_block_copy): Use it.
1055 2006-11-20 David Daney <ddaney@avtrex.com>
1057 * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
1058 PC to point to following instruction.
1060 2006-11-20 Anatoly Sokolov <aesok@post.ru>
1064 * config/avr/avr.h (OBJECT_FORMAT_ELF): Define.
1066 * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define.
1068 2006-11-20 J"orn Rennecke <joern.rennecke@st.com>
1070 * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
1071 Add sh/superh.h to tm_file.
1073 2006-11-20 Carlos O'Donell <carlos@codesourcery.com>
1074 Mark Mitchell <mark@codesourcery.com>
1076 * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and
1078 (cpp_relocated): New function.
1079 * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix
1081 * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option.
1082 * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated,
1083 replace configured prefix with gcc_exec_prefix.
1085 2006-11-20 Bernd Schmidt <bernd.schmidt@analog.com>
1087 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call
1088 bfin_legitimate_constant_p.
1089 * config/bfin/bfin.md (movsi expander): Check return value of
1091 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare.
1092 (expand_move): Adjust prototype.
1093 * config/bfin/bfin.c (expand_move): Now returns bool. Handle
1094 invalid constants specially.
1095 (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New
1097 (TARGET_CANNOT_FORCE_CONST_MEM): New macro.
1099 * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol,
1100 sibcall_value_symbol): Allow these patterns if
1101 TARGET_LEAF_ID_SHARED_LIBRARY.
1102 * config/bfin/bfin.c (bfin_expand_call): Allow them here as well.
1103 (override_options): Turn on id shared library flags if -msep-data,
1104 but disallow the combination of these options on the command line.
1105 * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA
1106 MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros.
1107 (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies
1108 -mid-shared-library.
1109 (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data.
1110 * doc/invoke.texi (Blackfin Options): Document new switches.
1112 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some
1113 edge cases with local functions and TARGET_ID_SHARED_LIBRARY.
1115 * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially
1116 inflate costs for addresses with an out-of-bounds address.
1118 2006-11-19 Andrew Pinski <pinskia@gmail.com>
1121 * fwprop.c (loops): Remove.
1122 (forward_propagate_into): Use current_loops instead of
1124 (fwprop_init): Call loop_optimizer_init instead of
1126 (fwprop_done): Call loop_optimizer_finalize instead of
1128 (fwprop): Use current_loops instead of loops.
1130 2006-11-19 Gabriel Dos Reis <gdr@integrable-solutions.net>
1133 * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall.
1135 2006-11-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1138 * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
1139 larger than BITS_PER_WORD.
1141 2006-11-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1145 * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types
1146 to MAX_FIXED_MODE_SIZE.
1148 2006-11-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1150 * builtins.c (integer_valued_real_p): Handle fmin/fmax.
1151 (fold_builtin_fmin_fmax): New.
1152 (fold_builtin_1): Use it.
1154 * fold-const.c (fold_strip_sign_ops): Handle copysign.
1156 2006-11-18 Richard Guenther <rguenther@suse.de>
1158 * config/i386/i386.c (ix86_builtins): New array for ix86
1159 builtin function decls.
1160 (def_builtin): New function.
1161 (def_builtin_const): Likewise.
1162 (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const.
1164 2006-11-18 Vladimir Makarov <vmakarov@redhat.com>
1166 * doc/invoke.texi (core2): Add item.
1168 * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New
1170 (TARGET_CPU_CPP_BUILTINS): Add code for core2.
1171 (TARGET_CPU_DEFAULT_generic): Change value.
1172 (TARGET_CPU_DEFAULT_NAMES): Add core2.
1173 (processor_type): Add new constant PROCESSOR_CORE2.
1175 * config/i386/i386.md (cpu): Add core2.
1177 * config/i386/i386.c (core2_cost): New initialized variable.
1178 (m_CORE2): New macro.
1179 (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen,
1180 x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop,
1181 x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
1182 x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
1183 x86_partial_reg_dependency, x86_memory_mismatch_stall,
1184 x86_accumulate_outgoing_args, x86_prologue_using_move,
1185 x86_epilogue_using_move, x86_arch_always_fancy_math_387,
1186 x86_sse_partial_reg_dependency, x86_rep_movl_optimal,
1187 x86_use_incdec, x86_four_jump_limit, x86_schedule,
1188 x86_pad_returns): Add m_CORE2.
1189 (override_options): Add entries for Core2.
1190 (ix86_issue_rate): Add case for Core2.
1192 2006-11-18 Aldy Hernandez <aldyh@redhat.com>
1194 * doc/invoke.texi: Fix mno-isel typo.
1196 2006-11-18 Joseph Myers <joseph@codesourcery.com>
1198 * config/rs6000/spe.md (movv4hi_internal): Add alternative for
1199 easy vector constant loads.
1201 2006-11-18 Joseph Myers <joseph@codesourcery.com>
1203 * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define.
1204 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1205 __NO_LWSYNC__ if TARGET_NO_LWSYNC.
1206 * config/rs6000/sync.md (lwsync): Emit plain sync if
1209 2006-11-17 DJ Delorie <dj@redhat.com>
1211 * reload1.c (reloads_unique_chain): New.
1212 (reloads_conflict): Call it.
1214 2006-11-17 Bob Wilson <bob.wilson@acm.org>
1216 * config/xtensa/predicates.md (addsubx_operand): New.
1217 * config/xtensa/xtensa.c (xtensa_emit_branch): New.
1218 (xtensa_emit_bit_branch): New.
1219 (xtensa_emit_movcc): New.
1220 * config/xtensa/xtensa.md (any_minmax): New code macro.
1221 (minmax): New code attribute.
1222 (any_cond, any_scc, any_scc_sf): New code macros.
1223 (*addx2, *addx4, *addx8): Delete.
1225 (*subx2, *subx4, *subx8): Delete.
1227 (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro.
1228 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond.
1229 (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch.
1230 (*bittrue, *bitfalse): Use xtensa_emit_bit_branch.
1231 (seq, sne, sgt, sge, slt, sle): Use any_scc macro.
1232 (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc.
1233 (movsfcc_internal0, movsfcc_internal1): Likewise.
1234 (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro.
1235 * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New.
1236 (xtensa_emit_bit_branch): New.
1237 (xtensa_emit_movcc): New.
1238 (function_arg_boundary): Add missing prototype.
1240 2006-11-17 Bob Wilson <bob.wilson@acm.org>
1242 * config/xtensa/xtensa.md (tstsi): Delete
1244 2006-11-17 Bob Wilson <bob.wilson@acm.org>
1246 * config/xtensa/xtensa.md (entry): Do not emit .frame directive.
1248 2006-11-17 Bob Wilson <bob.wilson@acm.org>
1250 * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1252 2006-11-17 Bob Wilson <bob.wilson@acm.org>
1254 * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit.
1256 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
1258 * tree-vrp.c (execute_vrp): Do not update current_loops.
1259 * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with.
1260 * doc/loop.texi: Remove documentation for cancelled functions.
1261 * tree-ssa-loop-im.c (loop_commit_inserts): Removed.
1262 (move_computations, determine_lsm): Use bsi_commit_edge_inserts
1264 * cfgloopmanip.c (remove_bbs): Do not update loops explicitly.
1265 (remove_path): Ensure that in delete_basic_blocks, the loops
1266 are still allocated.
1267 (add_loop): Work on valid loop structures.
1268 (loopify): Modify call of add_loop.
1269 (mfb_update_loops): Removed.
1270 (create_preheader): Do not update loops explicitly.
1271 (force_single_succ_latches, loop_version): Do not use
1272 loop_split_edge_with.
1273 (loop_split_edge_with): Removed.
1274 * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions):
1275 Do not use bsi_insert_on_edge_immediate_loop.
1276 (split_loop_exit_edge, tree_unroll_loop): Do not use
1277 loop_split_edge_with.
1278 (bsi_insert_on_edge_immediate_loop): Removed.
1279 * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops. Do not
1280 use loop_split_edge_with.
1281 * cfghooks.c: Include cfgloop.h.
1282 (verify_flow_info): Verify that loop_father is filled iff current_loops
1284 (redirect_edge_and_branch_force, split_block, delete_basic_block,
1285 split_edge, merge_blocks, make_forwarder_block, duplicate_block):
1287 * cfgloopanal.c (mark_irreducible_loops): Work if the function contains
1289 * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use
1290 loop_split_edge_with.
1291 (sms_schedule): Use current_loops.
1292 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops.
1293 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set
1295 (rtl_loop_init, rtl_loop_done): Do not set current_loops.
1296 * tree-ssa-sink.c (execute_sink_code): Use current_loops.
1297 * ifcvt.c (if_convert): Ditto.
1298 * predict.c (predict_loops): Do not clear current_loops.
1299 (tree_estimate_probability): Use current_loops.
1300 (propagate_freq): Receive head of the region to propagate instead of
1302 (estimate_loops_at_level): Do not use shared to_visit bitmap.
1303 (estimate_loops): New function. Handle case current_loops == NULL.
1304 (estimate_bb_frequencies): Do not allocate tovisit. Use
1306 * tree-ssa-loop.c (current_loops): Removed.
1307 (tree_loop_optimizer_init): Do not return loops.
1308 (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops.
1309 * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1,
1310 slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge):
1311 Do not update loops explicitly.
1312 * function.h (struct function): Add x_current_loops field.
1313 (current_loops): New macro.
1314 * tree-if-conv.c (combine_blocks): Do not update loops explicitly.
1315 * loop-unroll.c (split_edge_and_insert): New function.
1316 (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not
1317 use loop_split_edge_with.
1318 * loop-doloop.c (add_test, doloop_modify): Ditto.
1319 * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops.
1320 * cfglayout.c (copy_bbs): Do not update loops explicitly.
1321 * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with.
1322 * tree-vect-transform.c (vect_transform_loop): Do not update loops
1324 * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order.
1325 (flow_loops_free): Do not free dfs_order and rc_order.
1326 (flow_loops_find): Do not set dfs_order and rc_order in loops
1327 structure. Do not call loops and flow info verification.
1328 (add_bb_to_loop, remove_bb_from_loops): Check whether the block
1329 already belongs to some loop.
1330 * cfgloop.h (struct loops): Remove struct cfg.
1331 (current_loops, loop_split_edge_with): Declaration removed.
1332 (loop_optimizer_init, loop_optimizer_finalize): Declaration changed.
1333 * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop):
1334 Declaration removed.
1335 * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency.
1336 * basic-block.h (split_edge_and_insert): Declare.
1337 * tree-cfg.c (remove_bb): Do not update loops explicitly.
1339 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
1341 PR tree-optimization/29801
1342 * tree-ssa-ccp.c (get_symbol_constant_value): New function.
1343 (get_default_value): Use get_symbol_constant_value.
1344 (set_lattice_value): ICE when the value of the constant is
1346 (visit_assignment): Ignore VDEFs of read-only variables.
1348 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
1350 * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix
1352 (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
1353 vect_gen_niters_for_prolog_loop): Fold the emited expressions.
1355 2006-11-17 Zdenek Dvorak <dvorakz@suse.cz>
1357 * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to
1358 select subvars of var.
1360 2006-11-17 Jakub Jelinek <jakub@redhat.com>
1363 * tree-ssa-forwprop.c (simplify_switch_expr): Don't
1364 optimize if DEF doesn't have integral type.
1366 2006-11-16 Mike Stump <mrs@apple.com>
1368 * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on
1369 pre-darwin9 system, unless the user asks for it directly.
1370 (PREFERRED_DEBUGGING_TYPE): Likewise.
1371 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise.
1372 * config.gcc: Add suppport for darwin9.h.
1373 * config/darwin9.h: Add.
1374 * doc/install.texi (Specific): Clarify darwin documentation.
1376 2006-11-16 Richard Earnshaw <rearnsha@arm.com>
1378 * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when
1379 optimizing for size.
1381 2006-11-16 Mike Stump <mrs@apple.com>
1383 * Makefile.in (targhooks.o): Add $(OPTABS_H).
1385 2006-11-16 Dirk Mueller <dmueller@suse.de>
1387 * tree-vrp.c (get_value_range): Use XCNEW instead
1389 (insert_range_assertions): Use XCNEWVEC instead
1390 of XNEWVEC and memset.
1391 (vrp_initialize): Same.
1392 (vrp_finalize): Same.
1393 * tree-ssa-ccp.c (ccp_initialize): Same.
1394 * predict.c (tree_bb_level_predictions): Same.
1395 * calls.c (expand_call): Same.
1396 * tree-ssa-copy.c (init_copy_prop): Same.
1397 (fini_copy_prop): Same.
1398 * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead
1399 of GGC_NEW and memset.
1401 2006-11-16 Eric Botcazou <ebotcazou@adacore.com>
1404 * gimplify.c (gimplify_expr): Only force a load for references to
1405 non-BLKmode volatile values.
1406 * doc/implement-c.texi (Qualifiers implementation): Document the
1407 interpretation of what a volatile access is.
1408 * doc/extend.texi (C++ Extensions): Rework same documentation.
1410 2006-11-16 Joseph Myers <joseph@codesourcery.com>
1412 * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable
1415 2006-11-16 Richard Earnshaw <rearnsha@arm.com>
1417 * arm.md (abssi2): Allow Thumb as well. Use an SImode scratch for
1419 (arm_neg_abssi2): Renamed from neg_abssi2.
1420 (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters.
1422 2006-11-16 Uros Bizjak <ubizjak@gmail.com>
1424 * config/i386/i386.c (ix86_function_sseregparm): Fix comment:
1425 number of arguments passed to local functions in SSE registers is 3.
1427 * doc/invoke.texi (Function Attributes) [sseregparm]: Correct
1428 number of arguments passed in SSE registers to 3.
1430 2006-11-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
1433 * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of
1435 (get_last_bb_insn): ... new global function.
1436 (basic_block.h): Declare it.
1437 * haifa-sched.c (create_recovery_block): Use it.
1439 2006-11-15 H.J. Lu <hongjiu.lu@intel.com>
1442 * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert.
1444 2006-11-15 Paul Brook <paul@codesourcery.com>
1446 * config/arm/unwind-arm.c (_Unwind_GetDataRelBase,
1447 _Unwind_GetTextRelBase): Move from here ...
1448 * config/arm/pr-support.c (_Unwind_GetDataRelBase,
1449 _Unwind_GetTextRelBase): ... To here.
1451 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
1453 * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory
1454 addresses we generate for testing are aligned.
1456 2006-11-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
1459 * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down
1460 to what is the const decl is a place holder for.
1462 2006-11-15 Uros Bizjak <ubizjak@gmail.com>
1464 * config/i386/i386.opt: New target option -mx87regparm.
1466 * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno
1467 and float_in_x87 variables. mmx_words, sse_words: Remove.
1468 (X87_REGPARM_MAX): Define.
1470 * config/i386/i386.c (override_options): Error out for
1471 -mx87regparm but no 80387 support.
1472 (ix86_attribute_table): Add x87regparm.
1473 (ix86_handle_cconv_attribute): Update comments for x87regparm.
1474 (ix86_comp_type_attributes): Check for mismatched x87regparm types.
1475 (ix86_function_x87regparm): New function.
1476 (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating
1478 (init_cumulative_args): Initialize x87_nregs and float_in_x87
1480 (function_arg_advance): Process x87_nregs and x87_regno when
1481 floating point argument is to be passed in 80387 register.
1482 (function_arg): Pass XFmode arguments in 80387 registers for local
1483 functions. Pass SFmode and DFmode arguments to local functions
1484 in 80387 registers when flag_unsafe_math_optimizations is set.
1486 * reg-stack.c (convert_regs_entry): Disable NaN load for
1487 stack registers that are used for argument passing.
1489 * doc/extend.texi: Document x87regparm function attribute.
1490 * doc/invoke.texi: Document -mx87regparm.
1492 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
1494 * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype.
1495 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New
1496 arg MODE; all callers changed. Use it to determine validity per
1497 machine mode instead of using Pmode for all memory references.
1498 (get_address_cost): Likewise add and use new arg MEM_MODE.
1500 2006-11-15 Rask Ingemann Lambertsen <rask@sygehus.dk>
1501 J"orn Rennecke <joern.rennecke@st.com>
1503 * combine.c (likely_spilled_retval_1): Fix masking operation.
1504 (likely_spilled_retval_p): Use proper pattern for call to
1505 likely_spilled_retval_1.
1507 2006-11-15 Bernd Schmidt <bernd.schmidt@analog.com>
1509 * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting.
1511 * config/bfin/bfin.c (legitimize_pic_address): Lose dead code
1512 that tests for CONSTANT_POOL_ADDRESS_P.
1514 2006-11-15 Jakub Jelinek <jakub@redhat.com>
1516 PR tree-optimization/29581
1517 * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT,
1518 REPLACEMENTS, FIRSTBSI arguments. If initial condition or
1519 type is different between Y and USE, create a temporary
1520 variable, initialize it at the beginning of the body bb
1521 and use it as replacement instead of Y.
1523 2006-11-15 Paolo Bonzini <bonzini@gnu.org>
1526 * gimplify.c (fold_indirect_ref_rhs): Use
1527 STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS.
1529 2006-11-14 Richard Earnshaw <rearnsha@arm.com>
1531 * expmed.c (emit_store_flag_1): New function.
1532 (emit_store_flag): Call it. If we can't find a suitable scc insn,
1534 * expr.c (do_store_flag): If we can't find a scc insn, try cstore.
1535 Use do_compare_rtx_and_jump.
1536 * arm.h (BRANCH_COST): Increase to 2 on Thumb.
1537 * arm.md (cstoresi4): New define_expand.
1538 (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise.
1539 (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns.
1540 (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns.
1542 2006-11-14 Caroline Tice <ctice@apple.com>
1544 * dwarf2out.c (debug_pubtypes_section): New static global variable.
1545 (pubname_entry): Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for
1547 (pubname_table): Redefine as a vector.
1548 (pubtype_table): New static global variable, defined as a vector.
1549 (pubname_table_allocated): Remove static global variable.
1550 (pubname_table_in_use): Remove static global variable.
1551 (PUBNAME_TABLE_INCREMENT): Remove constant.
1552 (size_of_pubnames): Add parameter to deal with either pubnames or
1553 pubtypes, and change code to deal with table being a vector.
1554 (add_pubname): Change to deal with table being a vector.
1555 (add_pubtype): New function.
1556 (output_pubnames): Add parameter to deal with either pubnames or
1557 pubtypes, and change code to deal with table being a vector.
1558 (gen_array_type_die): Add call to add_pubtype.
1559 (gen_enumeration_type_die): Add call to add_pubtype.
1560 (gen_struct_or_union_type_die): Add call to add_pubtype.
1561 (gen_subroutine_type_die): Add call to add_pubtype.
1562 (gen_typedef_die): Add call to add_pubtype.
1563 (dwarf2out_init): Add code to initialize pubname_table and
1564 pubtype_table vectors; also initialize debug_pubtypes_section.
1565 (prune_unused_types): Change to deal with pubnames being a vector.
1566 (dwarf2out_finish): Change to deal with pubnames being a vector; add
1567 pubnames table to call to output_pubnames; Add code to output pubtypes
1568 table if DEBUG_PUBTYPES_SECTION is defined.
1569 * config/darwin.c (darwin_file_start): Add DEBUG_PUBTYPES_SECTION to
1571 * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable.
1573 2006-11-14 Joseph Myers <joseph@codesourcery.com>
1575 * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust
1576 iwmmxt_nregs if TARGET_IWMMXT_ABI.
1577 * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal,
1578 movv2si_internal): Support moves between core registers.
1580 2006-11-14 Eric Christopher <echristo@apple.com>
1582 * configure: Regenerate with autoconf 2.59.
1584 2006-11-14 Daniel Berlin <dberlin@dberlin.org>
1586 Fix PR tree-optimization/27755
1588 * tree-ssa-pre.c: Update comments.
1589 (bb_bitmap_sets): Add pa_in and deferred member.
1590 (BB_DEFERRED): New macro.
1591 (maximal_set): New variable.
1592 (pre_stats): Add pa_insert member.
1593 (bitmap_set_and): Short circuit orig == dest.
1594 (bitmap_set_subtract_values): New function.
1595 (bitmap_set_contains_expr): Ditto.
1596 (translate_vuses_through_block): Add phiblock argument.
1597 (dependent_clean): New function.
1598 (compute_antic_aux): Update for maximal_set changes.
1599 (compute_partial_antic_aux): New function.
1600 (compute_antic): Handle partial anticipation.
1601 (do_partial_partial_insertion): New function.
1602 (insert_aux): Handle partial anticipation.
1603 (add_to_sets): Add to maximal set.
1604 (compute_avail): Ditto.
1605 (init_pre): Initialize maximal_set.
1606 (execute_pre): Do partial anticipation if -O3+.
1608 2006-11-14 Paolo Bonzini <bonzini@gnu.org>
1610 PR rtl-optimization/29798
1612 * fwprop.c (use_killed_between): Check that DEF_INSN dominates
1613 TARGET_INSN before any other check.
1614 (fwprop_init): Always calculate dominators.
1615 (fwprop_done): Always free them.
1617 2006-11-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1619 * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
1622 2006-11-13 DJ Delorie <dj@redhat.com>
1624 * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
1625 temporary for intermediates.
1627 2006-11-13 Kaz Kojima <kkojima@gcc.gnu.org>
1629 * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
1630 (sh_optimize_target_register_callee_saved): #if 0 the code
1631 using NOTE_INSN_LOOP_{BEG,END}.
1633 2006-11-13 Roger Sayle <roger@eyesopen.com>
1635 * fold-const.c (optimize_bit_field_compare): Recursively call
1636 fold when simplifying non-constant comparisons between bit-fields.
1638 2006-11-13 Jakub Jelinek <jakub@redhat.com>
1640 * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
1642 * configure: Rebuilt.
1644 2006-11-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
1646 * config/rs6000/cell.md: New file.
1647 * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
1649 (ppccell_cost): New cost matrix.
1650 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
1651 (rs6000_override_options): Set rs6000_always_hint to false
1652 for cell. Also align functions/lables/loops to 8byte
1653 for the Cell. Use PROCESSOR_CELL.
1654 (rs6000_emit_epilogue): Rename using_mfcr_multiple to
1655 using_mtcr_multiple.
1656 (rs6000_variable_issue): If the insn is a nonpipelined instruction
1657 on the Cell, return 0.
1658 (rs6000_adjust_cost): Add Cell cost adjustments.
1659 (is_microcoded_insn): Return true for Cell microcoded
1661 (is_nonpipeline_insn): New function.
1662 (rs6000_issue_rate): Add PROCESSOR_CELL.
1663 (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
1665 (rs6000_use_sched_lookahead_guard): New function.
1666 (rs6000_sched_reorder): Reorder the ready list, if the second
1667 to last ready insn is a nonepipeline insn on the Cell.
1668 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
1669 (ASM_CPU_SPEC): Add Cell.
1670 * config/rs6000/rs6000.md (cpu): Add Cell.
1671 (cell_micro): New Attr.
1674 2006-11-13 Jakub Jelinek <jakub@redhat.com>
1676 * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
1678 * configure: Rebuilt.
1680 2006-11-13 Richard Guenther <rguenther@suse.de>
1682 * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
1684 (ix86_expand_lfloorceil): Likewise.
1685 (ix86_expand_rint): Likewise.
1686 (ix86_expand_floorceildf_32): Likewise.
1687 (ix86_expand_floorceil): Likewise.
1688 (ix86_expand_rounddf_32): Likewise.
1689 (ix86_expand_truncdf_32): Likewise.
1690 (ix86_expand_round): Likewise.
1692 2006-11-13 Carlos O'Donell <carlos@codesourcery.com>
1693 Mark Mitchell <mark@codesourcery.com>
1695 * gcc.c: Organize search path variables into $prefix relative,
1696 and well-known native. Add comments.
1697 (add_sysrooted_prefix): Add comment.
1698 (process_command): If !gcc_exec_prefix add $prefix based paths.
1699 If *cross_compile == '0', add native well-known paths.
1700 Assert tooldir_base_prefix is always relative.
1701 (main): If print_search_dirs, and if gcc_exec_prefix is set,
1702 use this value for 'install:' path.
1703 * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
1705 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
1707 * config/i386/i386.c: Fix a typo in comment.
1709 2006-11-13 Michael Matz <matz@suse.de>
1711 * genemit.c (gen_expand): Allocate enough memory.
1713 2006-11-13 Joseph Myers <joseph@codesourcery.com>
1715 * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
1716 __GXX_TYPEINFO_EQUALITY_INLINE but not
1717 __GXX_MERGED_TYPEINFO_NAMES.
1718 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
1719 __GXX_MERGED_TYPEINFO_NAMES.
1720 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
1721 __GXX_TYPEINFO_EQUALITY_INLINE.
1723 2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
1724 Zdenek Dvorak <dvorakz@suse.cz>
1726 PR tree-optimization/29680
1727 * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
1730 2006-11-12 Jason Merrill <jason@redhat.com>
1731 Andrew Pinski <pinskia@physics.uc.edu>
1734 * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
1736 * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
1738 * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
1739 * tree.c (build_vector): Handle non-_CST elements.
1741 2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
1743 * genemit.c (gen_insn): Call gen_exp with a non-null used
1744 when handling multiple insns.
1745 (gen_expand): Likewise.
1746 * reorg.c (emit_delay_sequence): Copy the delay slot insn.
1747 * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
1748 (movsi_const_16bit+1): Copy operands[1].
1749 (call_pcrel): Copy the call_site pattern.
1750 (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
1752 2006-11-12 Roger Sayle <roger@eyesopen.com>
1754 * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
1755 condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING
1756 && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
1757 (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
1759 2006-11-12 Daniel Berlin <dberlin@dberlin.org>
1761 Fix PR tree-optimization/29587
1762 * tree-ssa-structalias.c (process_constraint): Don't
1763 mark address taken due only to escaped vars constraint.
1765 2006-11-12 Michael Matz <matz@suse.de>
1766 Roger Sayle <roger@eyesopen.com>
1768 PR rtl-optimization/29797
1769 * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
1770 BITS_BIG_ENDIAN targets.
1772 2006-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1774 * builtins.c (fold_builtin_cosh): New.
1775 (fold_builtin_1): Use it.
1776 * fold-const.c (negate_mathfn_p): Add llround, lround, round,
1777 trunc to the list of "odd" functions. Also add llrint, lrint,
1778 rint and nearbyint when flag_rounding_math is false.
1780 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1782 * tree-flow.h (name_mappings_registered_p): Declare.
1783 * tree-into-ssa.c (name_mappings_registered_p): New function.
1784 * tree-cfg.c (tree_can_merge_blocks_p): Check
1785 name_mappings_registered_p instead of need_ssa_update_p.
1787 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1789 * tree-ssa-loop.c (tree_vectorize): Return the result of
1791 * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
1792 if anything changed.
1793 * tree-vectorizer.h (vectorize_loops): Declaration removed.
1794 * tree-flow.h (vectorize_loops): Declaration changed.
1796 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1798 * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
1800 (issue_prefetch_ref): Move assignment to write_p out of loop.
1801 (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
1802 SIMULTANEOUS_PREFETCHES into account.
1803 (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
1804 * lambda-code.c (lcm): Renamed to ...
1805 (least_common_multiple): ... and exported.
1806 * tree-flow.h (least_common_multiple): Declare.
1808 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1810 * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
1811 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow
1812 ud-chains. Handle AND_EXPR.
1813 (record_estimate): Record whether the estimate is realistic
1814 and whether it is derived from a loop exit.
1815 (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
1816 infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
1818 (compute_estimated_nb_iterations): Take only realistic bounds into
1819 account. Set estimate_state. Use double_ints.
1820 (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
1821 and infer_loop_bounds_from_signedness. Do not consider basic blocks
1822 that do not have to be always executed.
1823 (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
1824 to determine whether to call infer_loop_bounds_from_undefined
1825 and compute_estimated_nb_iterations.
1826 (n_of_executions_at_most): Use double_ints.
1827 (free_numbers_of_iterations_estimates_loop): Set estimate_state.
1828 (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
1829 * double-int.c (double_int_to_tree): Improve comment.
1830 (double_int_fits_to_tree_p): New function.
1831 * double-int.h (double_int_fits_to_tree_p): Declare.
1832 * tree-data-ref.c: Include langhooks.h.
1833 (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
1834 (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
1835 (analyze_array): Do not pass estimate_only argument to
1836 analyze_array_indexes.
1837 (get_number_of_iters_for_loop): Build tree from the stored double_int
1839 (get_references_in_stmt, find_data_references_in_stmt): New functions.
1840 (find_data_references_in_loop): Use find_data_references_in_stmt.
1841 * tree-data-ref.h (struct data_ref_loc_d): New.
1842 (get_references_in_stmt): Declare.
1843 (estimate_iters_using_array): Declaration removed.
1844 * cfgloop.h (struct nb_iter_bound): Change type of bound to
1845 double_int. Improve comments. Add is_exit and realistic
1847 (struct loop): Changed type of estimated_nb_iterations to double_int.
1848 Added estimate_state field.
1849 (record_estimate): Declaration removed.
1851 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1853 * params.c (set_param_value): Initialize the "set" field.
1854 * params.h (struct param_info): Add "set" field.
1855 (PARAM_SET_P): New macro.
1856 (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
1857 L1_CACHE_LINE_SIZE): New macros.
1858 * toplev.c (DEFPARAM): Initialize the "set" field.
1859 * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
1860 SIMULTANEOUS_PREFETCHES): Removed.
1861 (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
1862 (tree_ssa_prefetch_arrays): Dump the values of the parameters.
1863 * config/sparc/sparc.c: Include params.h.
1864 (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
1865 L1_CACHE_LINE_SIZE parameters.
1866 * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1868 * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
1870 * config/i386/i386.c: Include params.h.
1871 (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
1872 (override_options): Set SIMULTANEOUS_PREFETCHES and
1873 L1_CACHE_LINE_SIZE parameters.
1874 * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
1875 (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
1876 L1_CACHE_LINE_SIZE parameters.
1877 * config/ia64/ia64.c (ia64_optimization_options): Set
1878 SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
1879 * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
1881 * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
1882 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
1883 * doc/invoke.texi: Document new params.
1885 2006-11-12 Roger Sayle <roger@eyesopen.com>
1887 PR tree-optimization/13827
1888 * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
1891 2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
1893 * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
1894 update_single_exit_for_duplicated_loops): New functions.
1895 (duplicate_loop_to_header_edge): Use
1896 update_single_exit_for_duplicated_loops.
1897 * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
1898 functions only with ENABLE_CHECKING.
1900 2006-11-12 Andreas Schwab <schwab@suse.de>
1902 * except.c (sjlj_emit_function_enter): Remove unused variable.
1904 2006-11-11 Roger Sayle <roger@eyesopen.com>
1906 * fold-const.c (int_binop_types_match_p): New function.
1907 (size_binop): Relax constraint that both arguments must both have
1908 exactly the same sizetype type. Instead use int_binop_types_match_p.
1909 (size_diffop): Likewise.
1911 (make_range): Use build_int_cst instead of fold_convert.
1912 (fold_cond_expr_with_comparison): Use build_int_cst to construct
1913 integer constants of the correct type.
1914 (fold_div_compare): Likewise.
1915 (fold_single_bit_test): Likewise.
1916 (fold_binary): Likewise.
1917 * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
1918 has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
1920 2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
1923 * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
1924 non null value if the struct memory access is in the 0th
1927 2006-11-12 Jie Zhang <jie.zhang@analog.com>
1930 2006-11-11 Jie Zhang <jie.zhang@analog.com>
1931 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1934 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
1935 instead of builtin_define for bfin and BFIN.
1937 2006-11-11 Jie Zhang <jie.zhang@analog.com>
1939 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
1942 2006-11-11 Jan Hubicka <jh@suse.cz>
1944 * extend.texi (__builtin_expect): We no longer require second argument
1946 * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
1947 * builtins.c (expand_builtin_expect): Simplify.
1948 (expand_builtin_expect_jump): Kill.
1949 * final.c (final_scan_insn): Do not skip the removed notes.
1950 * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
1951 EXPECTED_VALUE): Remove.
1952 * dojump.c (do_jump): Do not care about __builtin_expect.
1953 * predict.c (expected_value_to_br_prob): Kill.
1954 * function.c (expand_function_end): Do not expand
1955 NOTE_INSN_REPEATED_LINE_NUMBER.
1956 * print-rtl.c (print_rtx): Do not pretty print the removed notes.
1957 * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
1958 * cfgexpand.c (add_reg_br_prob_note): Export.
1959 * cfgcleanup.c (rest_of_handle_jump2): Do not call
1960 expected_value_to_br_prob.
1961 * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
1962 * rtl.h (add_reg_br_prob_note): Declare.
1964 2006-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1966 * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
1968 2006-11-11 Jan Hubicka <jh@suse.cz>
1970 * predict.c (predict_loops): Kill RTL variant.
1972 2006-11-11 Jan Hubicka <jh@suse.cz>
1974 * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
1975 * modulo-sched.c (find_line_note): Remove.
1976 (loop_canon_p): Do not worry about line number notes.
1977 (sms_schedule): Likewise.
1978 * cse.c (cse_main): Likewise.
1979 * regmove.c (fixup_match_1): Likewise
1980 * function.c (emit_return_info_block): Likewise.
1981 (expand_function_end): Likewise.
1982 (thread_prologue_an_epilogue_insns): Likewise.
1983 * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
1985 * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
1986 emit_note_copy_after): Kill.
1987 (emit_note_copy): Do not worry about line numbers.
1988 * jump.c (purge_line_number_notes): Kill.
1989 (pass_purge_lineno_notes): Kill.
1990 * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
1992 * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
1993 * passes.c (init_optimization_passes): Don't purge_lineno_notes.
1994 * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
1995 * tree-pass.h (pass_purge_lineno_notes): Kill.
1996 * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
1997 rm_redundant_line_notes.
1998 * sched-rgb.c (schedule_region): Don't rm_line_notes,
1999 rm_redundant_line_notes.
2000 * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
2001 * haifa-sched.c: Update comment about handling notes.
2002 (unlink_line_notes): Kill.
2003 (rm_line_notes): Kill.
2004 (save_line_notes): Simplify.
2005 (rm_redundant_line_notes): Kill.
2007 2006-11-11 Richard Guenther <rguenther@suse.de>
2009 * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
2010 Remove unused tree codes.
2011 * tree-vrp.c (extract_range_from_unary_expr): Remove handling
2012 of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
2013 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2014 * tree.c (stabilize_reference): Likewise.
2015 * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
2016 fold_unary): Likewise.
2017 * tree-gimple.c (is_gimple_cast): Likewise.
2018 * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
2019 * expr.c (expand_expr_real_1): Likewise.
2020 * tree-eh.c (tree_could_trap_p): Likewise.
2021 * gimplify.c (gimplify_expr): Likewise.
2022 * tree-inline.c (estimate_num_insns_1): Likewise.
2023 * tree-cfg.c (verify_expr): Likewise.
2025 2006-11-11 Zdenek Dvorak <dvorakz@suse.cz>
2027 * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
2028 * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
2029 (tree_ssa_prefetch_arrays): Do not dump for removed loops.
2031 2006-11-11 Richard Sandiford <richard@codesourcery.com>
2034 * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
2035 constraints accept neither registers or memories.
2037 2006-11-11 Jie Zhang <jie.zhang@analog.com>
2039 * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
2040 (NO_PROFILE_COUNTERS): Define as 1.
2042 2006-11-10 Roger Sayle <roger@eyesopen.com>
2044 * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
2045 Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
2047 2006-11-10 Peter Bergner <bergner@vnet.ibm.com>
2049 * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
2051 2006-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2053 * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
2054 (fold_builtin_hypot): Likewise.
2055 * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
2057 * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
2059 2006-11-10 Roger Sayle <roger@eyesopen.com>
2061 * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
2062 when attempting to build INTEGER_CSTs of non-integral types.
2063 * expmed.c (make_tree): Use the correct type, i.e. the inner
2064 type, when constructing the individual elements of a CONST_VECTOR.
2066 2006-11-10 Jan Hubicka <jh@suse.cz>
2068 * cse.c (cse_process_notes): Copy the propagated value.
2069 * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
2071 * gcse.c (try_replace_reg): Copy the replacement.
2072 * i386.c (emit_i387_cw_initialization): Copy stored_mode.
2073 (assign_386_stack_local): Always return copied memory expression
2074 * function.c (instantiate_virtual_regs_in_insn): Copy the operand
2077 2006-11-10 Jan Hubicka <jh@suse.cz>
2079 * final.c (final): Walk from first instruction.
2080 * cfglayout.c (insn_locators_initialize): Remove line number notes.
2082 2006-11-10 Uros Bizjak <ubizjak@gmail.com>
2085 * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
2087 (umulv8hi3_highpart): Ditto.
2088 (vec_widen_smult_hi_v8hi): New expander.
2089 (vec_widen_smult_lo_v8hi): Ditto.
2091 2006-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2094 * builtins.c (do_mpfr_arg3): New.
2095 (fold_builtin_1): Handle builtins fma, fmin and fmax.
2097 2006-11-09 Eric Christopher <echristo@apple.com>
2102 * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
2103 * config.gcc (powerpc64-*-darwin*): New target.
2104 * config.host: Ditto.
2105 * config/rs6000/darwin64.h: New file.
2106 * config/rs6000/x-darwin64: Ditto.
2107 * config/rs6000/host-ppc64-darwin.c: Ditto.
2109 2006-11-09 Steve Ellcey <sje@cup.hp.com>
2111 * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode
2112 routines for integer division.
2114 2006-11-09 Daniel Jacobowitz <dan@codesourcery.com>
2116 * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
2118 2006-11-09 Serge Belyshev <belyshev@depni.sinp.msu.ru>
2121 * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
2123 2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
2125 * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
2126 simplify_subreg with BLKmode outer mode.
2128 2006-11-08 Brooks Moses <brooks.moses@codesourcery.com>
2130 * doc/invoke.texi: Minor formatting fixes in option lists.
2132 2006-11-08 Zdenek Dvorak <dvorakz@suse.cz>
2134 PR tree-optimization/29738
2135 * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
2136 (ccp_lattice_t): Remove UNKNOWN_VAL.
2137 (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
2138 Do not handle UNKNOWN_VAL.
2139 (get_default_value): Set initial value of virtual operands to
2141 (get_value): Always use get_default_value on uninitialized
2143 (set_value_varying, surely_varying_stmt_p): New functions.
2144 (set_lattice_value): Do not pass argument to get_value.
2145 Do not handle UNKNOWN_VAL.
2146 (likely_value): Follow the semantics described in the comment.
2147 (ccp_initialize): Use surely_varying_stmt_p. Do not mark
2148 phi nodes DONT_SIMULATE_AGAIN.
2149 (ccp_fold): Do not pass argument to get_value.
2150 (fold_const_aggregate_ref, visit_assignment): Ditto. Do not
2153 2006-11-08 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
2155 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
2156 HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
2158 2006-11-08 Roger Sayle <roger@eyesopen.com>
2160 * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
2161 test for inclusion rather than as a test for exclusion.
2162 * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
2163 the condition after calling fold_binary.
2164 * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
2165 (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
2166 * builtins.c (fold_builtin_isascii): Likewise.
2167 (fold_builtin_isdigit): Likewise.
2169 2006-11-08 Carlos O'Donell <carlos@codesourcery.com>
2171 * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
2172 * configure: Regenerate.
2174 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
2176 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
2177 enum argument instead of bool.
2178 (vect_analyze_operations): Call vectorizable_type_promotion.
2179 * tree-vectorizer.h (type_promotion_vec_info_type): New enum
2180 stmt_vec_info_type value.
2181 (supportable_widening_operation, vectorizable_type_promotion): New
2182 function declarations.
2183 * tree-vect-transform.c (vect_gen_widened_results_half): New function.
2184 (vectorizable_type_promotion): New function.
2185 (vect_transform_stmt): Call vectorizable_type_promotion.
2186 * tree-vect-analyze.c (supportable_widening_operation): New function.
2187 * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
2189 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
2192 * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
2193 (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
2194 * tree-inline.c (estimate_num_insns_1): Add cases for above new
2196 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2197 * expr.c (expand_expr_real_1): Likewise.
2198 * optabs.c (optab_for_tree_code): Likewise.
2199 (init_optabs): Initialize new optabs.
2200 * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
2201 vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
2202 vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
2203 vec_unpacku_lo_optab): Initialize new optabs.
2204 * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
2205 (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
2206 OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
2208 (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
2209 (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
2210 (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
2211 (vec_unpacku_lo_optab): New optabs.
2212 * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
2213 (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
2214 (vec_widen_smult_hi, vec_widen_smult_lo): New.
2215 * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
2216 (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
2217 (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
2219 * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
2220 (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
2221 (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
2222 (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
2223 (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
2224 implement the unsigned unpacking patterns.
2225 (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
2226 (vec_unpacks_lo_v8hi): New signed unpacking patterns.
2227 (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
2228 (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
2229 (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
2230 (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
2231 (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
2232 (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
2233 multiplication patterns.
2235 * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
2236 * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
2237 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
2238 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
2239 (rs6000_builtin_mul_widen_odd): New.
2240 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
2241 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
2242 * tree-vectorizer.h (enum vect_relevant): New enum type.
2243 (_stmt_vec_info): Field relevant chaned from bool to enum
2245 (STMT_VINFO_RELEVANT_P): Updated.
2246 (STMT_VINFO_RELEVANT): New.
2247 * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
2248 instead of STMT_VINFO_RELEVANT_P.
2249 * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
2250 Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
2251 and boolean variable with enum vect_relevant.
2252 (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
2253 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
2254 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
2256 2006-11-08 Richard Henderson <rth@redhat.com>
2258 * config/i386/sse.md (vec_widen_umult_hi_v8hi,
2259 vec_widen_umult_lo_v8hi): New.
2260 (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
2261 vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
2263 * config/i386/i386.c (ix86_expand_sse_unpack): New.
2264 * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
2265 * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
2266 vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
2267 vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
2268 vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
2269 vec_unpacks_lo_v4si): New.
2271 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
2273 * tree-vect-transform.c (vectorizable_type_demotion): New function.
2274 (vect_transform_stmt): Add case for type_demotion_vec_info_type.
2275 (vect_analyze_operations): Call vectorizable_type_demotion.
2276 * tree-vectorizer.h (type_demotion_vec_info_type): New enum
2277 stmt_vec_info_type value.
2278 (vectorizable_type_demotion): New function declaration.
2279 * tree-vect-generic.c (expand_vector_operations_1): Consider correct
2282 * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
2283 * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
2285 * tree-iniline.c (estimate_num_insns_1): Likewise.
2286 * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
2287 * optabs.c (optab_for_tree_code): Likewise.
2289 * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
2290 compared against the predicate of the result is not 'mode' (the input
2291 to the function) but a mode with half the size of 'mode'.
2292 (init_optab): Initialize new optabs.
2293 * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
2295 (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New
2297 * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
2298 (vec_pack_usat_optab): Initialize new optabs.
2299 * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
2300 * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
2302 2006-11-08 Richard Henderson <rth@redehat.com>
2304 * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
2305 (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
2306 (vec_interleave_highv8hi, vec_interleave_lowv8hi):
2307 (vec_interleave_highv4si, vec_interleave_lowv4si):
2308 (vec_interleave_highv2di, vec_interleave_lowv2di): New.
2310 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
2312 * tree-vect-transform.c (vectorizable_reduction): Support multiple
2314 (vect_transform_stmt): Removed redundant code.
2316 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
2318 * tree-vect-transform.c (vectorizable_operation): Support multiple
2321 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
2323 * tree-vect-transform.c (vect_align_data_ref): Removed.
2324 (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
2325 Updated function documentation. Return the increment stmt in ptr_incr.
2326 (bump_vector_ptr): New function.
2327 (vect_get_vec_def_for_stmt_copy): New function.
2328 (vect_finish_stmt_generation): Create a stmt_info to newly created
2330 (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
2332 (vectorizable_reduction, vectorizable_assignment): Not supported yet if
2333 VF is greater than the number of elements that can fit in one vector
2335 (vectorizable_operation, vectorizable_condition): Likewise.
2336 (vectorizable_store, vectorizable_load): Support the case that the VF
2337 is greater than the number of elements that can fit in one vector word.
2338 (vect_transform_loop): Don't fail in case of multiple data-types.
2339 * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
2340 in case of multiple data-types; the smallest type determines the VF.
2341 (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
2342 if they are of different sizes.
2343 (vect_update_misalignment_for_peel): Compare misalignments in terms of
2344 number of elements rather than number of bytes.
2345 (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
2346 (vect_can_advance_ivs_p): Fix a dump printout
2348 2006-11-07 Eric Christopher <echristo@apple.com>
2350 * libgcc2.c (__bswapdi2): Rename from bswapDI2.
2351 (__bswapsi2): Ditto.
2352 * libgcc2.h: Remove transformation of bswap routines.
2353 * config/i386/i386.md (bswapsi2): New.
2356 2006-11-07 Jakub Jelinek <jakub@redhat.com>
2358 * c-common.c (c_common_attributes): Add gnu_inline attribyte.
2359 (handle_gnu_inline_attribute): New function.
2360 * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
2361 (merge_decls, start_decl, start_function): Likewise.
2362 * doc/extend.texi: Document gnu_inline attribute.
2364 2006-11-07 Steve Ellcey <sje@cup.hp.com>
2367 * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi,
2368 _fixunstfdi, and _floatditf
2370 2006-11-06 Anatoly Sokolov <aesok@post.ru>
2372 * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
2374 * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
2375 (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
2376 lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
2377 which start in an odd register.
2379 2006-11-07 Richard Sandiford <richard@codesourcery.com>
2381 * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
2383 2006-11-07 Josh Conner <jconner@apple.com>
2385 * doc/invoke.texi (fstrict-aliasing): Move implementation
2387 * doc/tree-ssa.texi (Alias analysis): ...here.
2389 2006-11-07 Richard Guenther <rguenther@suse.de>
2391 PR tree-optimization/29610
2392 * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
2393 of tree_purge_dead_eh_edges as it may free dominators.
2395 * g++.dg/other/pr29610.C: New testcase.
2397 2006-11-07 David Ung <davidu@mips.com>
2399 * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
2400 costs when optimizing for size.
2401 (override_options): Use mips_rtx_cost_optimize_size table for cost
2404 2006-11-07 Jie Zhang <jie.zhang@analog.com>
2406 * gcc.c (process_command): Treat -b as normal switch if its argument
2409 2006-11-07 David Ung <davidu@mips.com>
2411 * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
2414 2006-11-06 Eric Christopher <echristo@apple.com>
2416 * config.gcc: Add x86_64-darwin host support.
2417 * config.host: Ditto.
2418 * config/i386/darwin64.h: New file.
2419 * config/i386/t-darwin64: Ditto.
2421 2006-11-06 Janis Johnson <janis187@us.ibm.com>
2423 * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
2424 and output-exists-not.
2426 2006-11-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
2429 * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
2430 checking for overflow.
2432 2006-11-06 Jan van Dijk <jan@etpmod.phys.tue.nl>
2434 * configure.ac: Fixed typo in case statement: :: changed to ;;
2436 2006-11-06 Bob Wilson <bob.wilson@acm.org>
2438 * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3,
2439 count_leading_zeros, and count_trailing_zeros.
2440 * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define.
2441 (TARGET_FOLD_BUILTIN): Define.
2442 (TARGET_EXPAND_BUILTIN): Define.
2443 (xtensa_init_builtins): New.
2444 (xtensa_fold_builtin): New.
2445 (xtensa_expand_builtin): New.
2446 (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT.
2447 * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define.
2448 (CLZ_DEFINED_VALUE_AT_ZERO): Define.
2449 (CTZ_DEFINED_VALUE_AT_ZERO): Define.
2450 * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove.
2451 (any_extend): New code macro.
2452 (u, su): New code attributes.
2453 (<u>mulsidi3, <u>mulsi3_highpart, clzsi2, ctzsi2): New.
2454 (nsau): Remove; replaced by clzsi2.
2455 (ffssi2): Use clzsi2.
2456 * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3,
2457 _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz.
2458 * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option.
2459 (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New.
2460 (__nsau_data): Guard with ifdef L_clz instead of L_nsau.
2462 2006-11-06 Vladimir Prus <vladimir@codesourcery.com>
2464 * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no
2466 * config/arm/t-strongarm-elf: Likewise.
2467 * config/arm/t-pe: Likewise.
2468 * config/arm/t-arm-elf: Likewise.
2469 * config/arm/t-xscale-elf: Likewise.
2470 * config/arm/t-arm-coff: Likewise.
2471 * config/arm/t-xscale-coff: Likewise.
2472 * config/arm/t-wince-pe: Likewise.
2474 2006-11-05 Kaz Kojima <kkojima@gcc.gnu.org>
2476 * config/sh/lib1funcs-4-300.asm: Guard entire file with
2479 2006-11-05 Jakub Jelinek <jakub@redhat.com>
2482 * fold-const.c (fold_ternary): Fix A < 0 ? <sign bit of A> : 0
2485 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
2488 * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0
2489 as a valid 80387 constant.
2490 (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0.
2491 * config/i386/i386.md (unnamed splitter): Split the load of
2492 constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed
2495 2006-11-04 Richard Earnshaw <rearnsha@arm.com>
2497 * arm.c (thumb_legitimate_addres_p): Allow any constant offset
2498 from the soft-frame, argument and virtual registers.
2500 2006-11-04 Uros Bizjak <ubizjak@gmail.com>
2502 * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable
2503 patterns for standard 80387 constants.
2505 2006-11-03 Paolo Bonzini <bonzini@gnu.org>
2506 Steven Bosscher <steven@gcc.gnu.org>
2508 * fwprop.c: New file.
2509 * Makefile.in: Add fwprop.o.
2510 * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New.
2511 * passes.c (init_optimization_passes): Schedule forward propagation.
2512 * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second
2514 * timevar.def (TV_FWPROP): New.
2515 * common.opt (-fforward-propagate): New.
2516 * opts.c (decode_options): Enable forward propagation at -O2.
2517 * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps.
2518 * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr,
2519 canon_for_address, table_size): Remove.
2520 (new_basic_block, insert, remove_from_table): Remove references to
2522 (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make
2523 simplification loop more straightforward by not calling fold_rtx
2525 (equiv_constant): Move here a small part of fold_rtx_subreg,
2526 do not call fold_rtx. Call avoid_constant_pool_reference
2528 * recog.h (canonicalize_change_group): New.
2530 * doc/invoke.texi (Optimization Options): Document fwprop.
2531 * doc/passes.texi (RTL passes): Document fwprop.
2533 2006-11-03 Geoffrey Keating <geoffk@apple.com>
2535 * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1.
2536 (merge_decls): Implement WANT_C99_INLINE_SEMANTICS.
2537 (grokdeclarator): Likewise.
2539 2006-11-03 Steven Bosscher <steven@gcc.gnu.org>
2541 * tree-dump.c (dump_enable_all): Rename local variable
2542 ir_type to avoid name conflicts.
2543 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE
2544 instead of using ir_type().
2545 * profile.c (tree_register_profile_hooks): Likewise.
2546 * value-prof.c (tree_register_value_prof_hooks): Likewise.
2547 * basic-block.h (struct edge_def): Likewise.
2548 * config/arm/arm.c (legitimize_pic_address): Likewise.
2549 * coretypes.h (ir_type): New enum of all intermediate languages
2551 * cfghooks.c (ir_type): Rename to...
2552 (current_ir_type): ...this. Distinguish between cfgrtl and
2553 cfglayout mode when the current IR is RTL. Return enum ir_type.
2554 * cfghooks.h (ir_type): Replace with current_ir_type prototype.
2556 2006-11-03 Paul Brook <paul@codesourcery.com>
2558 * config/arm/arm.c (arm_file_start): New function.
2559 (TARGET_ASM_FILE_START): Define.
2560 (arm_default_cpu): New variable.
2561 (arm_override_options): Set arm_default_cpu.
2563 2006-11-03 David Ung <davidu@mips.com>
2565 * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
2566 PROCESSOR_24KC and PROCESSOR_24KF.
2567 * config/mips/mips.c (mips_cpu_info_table): Add processor names
2568 and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx.
2569 (mips_rtx_cost_data): Add costs for the 24kc.
2570 * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
2571 * config/mips/24k.md: Remove references to 24k and replace with
2572 uses of 24kc/24kf in the appropriate reservations.
2573 * doc/invoke.texi (MIPS Options): Updated.
2575 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
2577 * config/sh/crt1.asm: Fix #ifdef indent.
2579 2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
2580 Merged from STMicroelectronics sources:
2581 2006-10-06 Andrew Stubbs <andrew.stubbs@st.com>
2582 * config/sh/crt1.asm (vbr_600): Add missing #if.
2583 2006-08-03 J"orn Rennecke <joern.rennecke@st.com>
2584 * sh.opt (mfused-madd): New option.
2585 * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC.
2586 2006-07-04 Andrew Stubbs <andrew.stubbs@st.com>
2587 * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr.
2588 Remove pointless handler at VBR+0.
2589 (vbr_200, vbr_300, vbr_500): Remove pointless handler.
2590 (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to
2591 fr7. Make sure the timer handler is called with the correct FPU
2592 precision setting, according to the ABI.
2593 2006-06-14 J"orn Rennecke <joern.rennecke@st.com>
2594 * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition.
2595 * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition.
2596 (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise.
2597 2006-06-09 J"orn Rennecke <joern.rennecke@st.com>
2598 * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept
2599 zero as second operand.
2600 2006-04-28 J"orn Rennecke <joern.rennecke@st.com>
2601 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
2602 Fixed some bugs related to negative values, in particular -0
2603 and overflow at -0x80000000.
2604 * config/sh/divcost-analysis: Added sh4-300 figures.
2605 2006-04-27 J"orn Rennecke <joern.rennecke@st.com>
2606 * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options.
2607 2006-04-26 J"orn Rennecke <joern.rennecke@st.com>
2608 * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a.
2609 ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules.
2610 * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm:
2612 * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* /
2614 2006-04-24 J"orn Rennecke <joern.rennecke@st.com>
2615 SH4-300 scheduling description & fixes to SH4-[12]00 description:
2616 * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac,
2617 mac_mem, mem_mac, dfp_mul, fp_cmp.
2618 (insn_class, dfp_comp, any_fp_comp): Update.
2619 (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type.
2620 (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise.
2621 (muldf3_i): Likewise.
2622 (movsi_i): Split rI08 alternative into two separate alternatives.
2624 (movsi_ie, movsi_i_lowpart): Likewise.
2625 (movqi_i): Split ri alternative into two separate alternatives.
2627 * sh1.md (sh1_load_store, sh1_fp): Update.
2628 * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update.
2629 (mac_mem, sh4_fpscr_toggle): New insn_reservations.
2630 * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update.
2631 (sh4a_fp_double_arith): Likewise.
2632 * sh4-300.md: New file.
2633 * sh.c (sh_handle_option): Handle m4-300* options.
2634 (sh_adjust_cost): Fix latency of auto-increments.
2635 Handle SH4-300 differently than other SH4s. Check for new insn types.
2636 * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not
2637 been set by an option.
2638 * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options.
2639 (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise.
2640 (mbranch-cost=): Likewise.
2641 * superh.h (STARTFILE_SPEC): Take -m4-340 into account.
2643 * sh.md (mulsf3): Remove special expansion code.
2644 (mulsf3_ie): Now a define_insn_and_split.
2645 (macsf3): Allow for TARGET_SH4.
2647 * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns.
2648 * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions.
2649 (expand_cbranchdi4): Likewise.
2650 (sh_rtx_costs): Give lower cost for certain CONST_INT values and for
2651 CONST_DOUBLE if the outer code is COMPARE.
2652 * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set
2653 TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4.
2654 (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4.
2655 (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs.
2656 Remove redundant fp_{zero,one}_operand checks.
2657 * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options.
2658 * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare.
2659 (expand_cbranchdi4): Likewise.
2660 2006-04-20 J"orn Rennecke <joern.rennecke@st.com>
2661 * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT.
2663 2006-11-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
2665 * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W
2668 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com>
2670 * doc/invoke.texi: Fix mfp-trap-mode typo.
2672 2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
2674 * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
2675 * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
2676 file_end_indicate_exec_stack.
2677 * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
2679 * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
2680 for a non-executable stack.
2681 * crti.asm: Likewise.
2682 * crtn.asm: Likewise.
2683 * libunwind.S: Likewise.
2685 2006-11-02 Ben Elliston <bje@au.ibm.com>
2687 * tree-ssa.c (warn_uninit): Use expand_location variables for
2688 locus and declaration locus.
2690 2006-11-02 Kaz Kojima <kkojima@gcc.gnu.org>
2693 * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove.
2694 (cmpsi{eq,gt,gtu}{si,di}_media): Rename to
2695 cmp{eq,gt,gtu}{si,di}_media.
2696 (*cmpne0si_media): Remove.
2697 (*movsicc_umin): Adjust gen_cmp*_media call.
2698 (unordered): Change the mode of unordered and operands[1] to
2700 (seq): Adjust gen_cmp*_media calls. Make the mode of
2701 a temporary result of compare SImode if needed. If the mode
2702 of operands[0] is DImode, extend the temporary result to DImode.
2703 (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise.
2704 (sunorderd): Change the mode of match_operand and unorderd to
2706 (cmpeq{sf,df}_media): Remove.
2707 (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media.
2708 (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand
2709 and compare operation to SImode.
2711 2006-11-02 Eric Botcazou <ebotcazou@libertysurf.fr>
2713 * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
2715 (sparc64-sun-solaris2*): Likewise.
2717 2006-11-02 Paul Brook <paul@codesourcery.com>
2719 * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED
2720 from priority argument. Use different section for non-default
2722 * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY.
2724 2006-11-02 Eric Botcazou <ebotcazou@adacore.com>
2727 * except.c (switch_to_exception_section): Do not cache the section
2728 if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
2729 and flag_function_sections is set.
2731 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2734 * builtins.c (do_mpfr_sincos): New.
2735 (fold_builtin_1): Use it to fold builtin sincos.
2737 2006-11-01 Roger Sayle <roger@eyesopen.com>
2739 * config/darwin.h (CPP_SPEC): Handle -pthread, transforming
2740 it into -D_REENTRANT.
2742 2006-11-01 Roger Sayle <roger@eyesopen.com>
2744 * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine
2745 whether the assembler supports taking the difference of symbols in
2746 different sections. On x86/Solaris, GAS does but Solaris as doesn't.
2747 * configure: Regenerate.
2748 * config.in: Regenerate.
2749 * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if
2750 the assembler doesn't support taking the difference of symbols in
2751 different sections, i.e. we're using the native solaris assembler.
2753 2006-11-01 Pete Steinmetz <steinmtz@us.ibm.com>
2754 Peter Bergner <bergner@vnet.ibm.com>
2756 * doc/invoke.texi: Add cpu_type power6x
2757 (RS/6000 and PowerPC Options): Add -mmfpgpr.
2758 * config.gcc: Add cpu_type power6x.
2759 * configure.ac: Add test for mf{t,f}gpr instructions.
2760 (HAVE_AS_MFPGPR): New.
2761 * config.in: Regenerate.
2762 * configure: Regenerate.
2763 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
2764 * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
2765 shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
2766 and mftgpr attributes.
2767 (define_attr "cpu"): Add power6.
2768 Change instruction sequences to use new attributes.
2769 (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
2770 (fix_truncdfsi2_mfpgpr): New.
2771 (floatsidf_ppc64_mfpgpr): New.
2772 (floatsidf_ppc64): Added !TARGET_MFPGPR condition.
2773 (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
2774 (movdf_hardfloat64): Added !TARGET_MFPGPR condition.
2775 (movdi_internal64): Added !TARGET_MFPGPR and related conditions.
2776 (fix_truncdfsi2): Use gpc_reg_operand constraint.
2777 * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
2778 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
2779 Add descriptions for insert_dword, shift,trap,var_shift_rotate,
2780 cntlz,exts and var_delayed_compare.
2781 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2782 _ARCH_PWR6X, if features enabled.
2783 * config/rs6000/rs6000.opt (mmfpgpr): New.
2784 * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
2785 (cached_can_issue_more): New variable.
2786 (processor_costs): Add power6_cost.
2787 (rs6000_sched_init): New function.
2788 (is_dispatch_slot_restricted): Deleted.
2789 (set_to_load_agen): New function.
2790 (is_load_insn,is_store_insn): New functions.
2791 (adjacent_mem_locations): New function.
2792 (insn_must_be_first_in_group): New function.
2793 (insn_must_be_last_in_group): New function.
2794 (rs6000_sched_reorder): New function.
2795 (rs6000_sched_reorder2): New function.
2796 (TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
2797 TARGET_SCHED_REORDER2): Define.
2798 (processor_target_table): Use PROCESSOR_POWER6 for power6.
2799 Add power6x. Add MASK_MFPGPR for power6x.
2800 (POWERPC_MASKS): Add MASK_MFPGPR.
2801 (rs6000_override_options): Set rs6000_always_hint to false
2802 for power6. Set rs6000_align_branch_targets. Replace
2803 rs6000_sched_groups check with rs6000_align_branch_targets.
2804 Use PROCESSOR_POWER6.
2805 (last_scheduled_insn): New variable.
2806 (load_store_pendulum): New variable.
2807 (rs6000_variable_issue): Set last_scheduled_insn and
2808 cached_can_issue_more.
2809 (rs6000_adjust_cost): Add power6 cost adjustments.
2810 (rs6000_adjust_priority): Replace is_dispatch_slot_restricted
2811 with insn_must_be_first_in_group. Add power6 priority adjustments.
2812 (rs6000_issue_rate): Add CPU_POWER6.
2813 (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
2814 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
2815 (TARGET_MFPGPR): New.
2816 (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
2817 (ASM_CPU_SPEC): Add power6x.
2818 (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
2820 * config/rs6000/power6.md: New file.
2822 2006-11-01 Adam Nemet <anemet@caviumnetworks.com>
2824 * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
2825 HOST_WIDE_INT_PRINT to print high and low parts. Use
2826 HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When
2827 printing a hexadecimal number prefix it with 0x.
2829 2006-11-01 Chris Johns <chris@contemporary.net.au>
2832 * Makefile.in (install-driver): Use exeext when installing
2833 $target-gcc-$version.
2835 2006-11-01 Douglas Gregor <doug.gregor@gmail.com>
2837 * c-common.c (flag_cpp0x): New.
2838 * c-common.h (flag_cpp0x): New.
2839 * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are
2840 supported, define __GXX_EXPERIMENTAL_CPP0X__.
2841 * c-opts.c (set_std_cxx0x): New.
2842 (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x.
2843 * c.opt (std=c++0x): Document.
2844 (std=gnu++0x): Ditto.
2845 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__.
2846 * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x.
2848 2006-11-01 Richard Guenther <rguenther@suse.de>
2850 * config/i386/i386.c (ix86_expand_rint): Fix issues with
2852 (ix86_expand_floorceildf_32): Likewise.
2853 (ix86_expand_floorceil): Likewise.
2854 (ix86_expand_trunc): Likewise.
2856 2006-10-31 Andrew Pinski <pinskia@gmail.com>
2858 * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C"
2861 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
2863 * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target
2865 * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define
2867 * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT):
2869 * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document.
2870 * configure.ac (use_cxa_atexit): As a special case, don't test
2871 for libc definition of __cxa_atexit on mingw32
2872 * configure: Regenerate.
2873 * config.gcc (i[34567]86-pc-mingw32): Default to
2874 enable__cxa_atexit=yes.
2876 2006-11-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2878 * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
2880 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2883 * c-decl.c (start_struct): Don't create self-containing
2885 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
2887 * config/rs6000/rs6000-protos.h
2888 (darwin_rs6000_special_round_type_align): New.
2889 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite.
2890 (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align.
2892 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2894 * toplev.c (compile_file): Call final_write_globals
2895 even if there have been errors.
2897 2006-10-31 Eric Christopher <echristo@apple.com>
2898 Falk Hueffner <falk@debian.org>
2900 * doc/extend.texi (__builtin_bswap32): Document.
2901 (__builtin_bswap64): Ditto.
2902 * doc/libgcc.texi (bswapsi2): Document.
2904 * doc/rtl.texi (bswap): Document.
2905 * optabs.c (expand_unop): Don't widen a bswap.
2906 (init_optabs): Init bswap. Set libfuncs explicitly
2907 for bswapsi2 and bswapdi2.
2908 * optabs.h (OTI_bswap): New.
2909 (bswap_optab): Ditto.
2910 * genopinit.c (optabs): Handle bswap_optab.
2911 * tree.h (tree_index): Add TI_UINT32_TYPE and
2913 (uint32_type_node): New.
2914 (uint64_type_node): Ditto.
2915 * tree.c (build_common_tree_nodes_2): Initialize
2916 uint32_type_node and uint64_type_node.
2917 * builtins.c (expand_builtin_bswap): New.
2918 (expand_builtin): Call.
2919 (fold_builtin_bswap): New.
2920 (fold_builtin_1): Call.
2921 * fold-const.c (tree_expr_nonnegative_p): Return true
2923 * builtin-types.def (BT_UINT32): New.
2925 (BT_FN_UINT32_UINT32): Ditto.
2926 (BT_FN_UINT64_UINT64): Ditto.
2927 * builtins.def (BUILT_IN_BSWAP32): New.
2928 (BUILT_IN_BSWAP64): Ditto.
2929 * rtl.def (BSWAP): New.
2930 * genattrtab.c (check_attr_value): New.
2931 * libgcc2.c (__bswapSI2): New.
2932 (__bswapDI2): Ditto.
2933 * libgcc2.h (__bswapSI2): Declare.
2934 (__bswapDI2): Ditto.
2935 * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2.
2936 * simplify-rtx.c (simplify_const_unary_operation): Return
2938 * libgcc-std.ver (__bwapsi2): Add.
2939 (__bswapdi2): Ditto.
2940 * reload1.c (eliminate_regs_1): Add bswap.
2941 (elimination_effects): Ditto.
2942 * config/i386/i386.h (x86_bswap): New.
2943 (TARGET_BSWAP): Use.
2944 * config/i386/i386.c (x86_bswap): Set.
2946 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2948 * coverage.c (coverage_checksum_string): Update comment.
2949 * dwarf2out.c (switch_to_eh_frame_section): Update for removal
2950 of get_file_function_name.
2951 * cgraphunit.c (cgraph_build_static_cdtor): Update for rename
2952 of get_file_function_name_long.
2953 * tree.c (get_file_function_name): Rename from
2954 get_file_function_name_long; improve comment; handle 'I' and 'D'
2955 specially when the target has ctor/dtor support; remove special
2957 (get_file_function_name): Remove.
2958 * tree.h (get_file_function_name): Rename from
2959 get_file_function_name_long.
2960 (get_file_function_name): Remove prototype.
2962 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2964 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove.
2965 * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
2967 * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@.
2968 Call dsymutil when compiling and linking one or more source files
2971 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2974 * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define.
2976 2006-10-31 Geoffrey Keating <geoffk@apple.com>
2978 * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on
2979 inline static functions in c99 mode.
2982 * doc/extend.texi (Inline): Update.
2983 * c-tree.h (struct language_function): Remove field 'extern_inline'.
2984 * c-decl.c (current_extern_inline): Delete.
2985 (pop_scope): Adjust test for an undefined nested function.
2986 Add warning about undeclared inline function.
2987 (diagnose_mismatched_decls): Update comments. Disallow overriding
2988 of inline functions in a translation unit in C99. Allow inline
2989 declarations in C99 at any time.
2990 (merge_decls): Boolize variables. Handle C99 'extern inline'
2992 (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle
2993 C99 inline semantics.
2994 (start_function): Don't clear current_extern_inline. Don't set
2996 (c_push_function_context): Don't push current_extern_inline.
2997 (c_pop_function_context): Don't restore current_extern_inline.
3000 * c-typeck.c (build_external_ref): Warn about static variables
3001 used in extern inline functions.
3002 * c-decl.c (start_decl): Warn about static variables declared
3003 in extern inline functions.
3005 2006-10-31 Roger Sayle <roger@eyesopen.com>
3008 * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int".
3009 * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider
3010 pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative
3011 or y is an even integer.
3013 2006-10-31 Eric Botcazou <ebotcazou@libertysurf.fr>
3016 * gthr-posix.h (__gthread_active_p): New implementation on Solaris.
3017 * gthr-posix95.h (__gthread_active_p): Likewise.
3019 2006-10-31 Richard Guenther <rguenther@suse.de>
3021 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
3022 acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2,
3023 expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2,
3024 exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2,
3025 ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2,
3026 lround<mode>di2, lround<mode>si2, floorxf2, floordf2, floorsf2,
3027 lfloor<mode>di2, lfloor<mode>si2, ceilxf2, ceildf2, ceilsf2,
3028 btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on
3031 2006-10-31 Steven Bosscher <steven@gcc.gnu.org>
3033 * opts.c (decode_options): Disable CSE skip blocks.
3035 2006-10-30 Dirk Mueller <dmueller@suse.de>
3037 * c-common.h (strict_aliasing_warning): Fix whitespace.
3038 * c-decl (start_function): Move code for main decl warning ..
3039 * c-common.c (check_main_parameter_types): .. here.
3040 * c-common.h (check_main_parameter_types): Declare.
3042 2006-10-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3045 * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR.
3047 2006-10-30 Pete Steinmetz <steinmtz@us.ibm.com>
3049 * recog.c (store_data_bypass_p): Add support to allow IN_INSN to
3050 be a PARALLEL containing sets. Return false when out_pat is not
3053 2006-10-30 Richard Sandiford <richard@codesourcery.com>
3055 * config/mips/mips.md (mul<mode>3): Split into...
3056 (mulsi3, muldi3): ...these separate patterns.
3058 2006-10-30 Richard Sandiford <richard@codesourcery.com>
3060 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec,
3061 but with each set of options separated by spaces.
3063 2006-10-30 J"orn Rennecke <joern.rennecke@st.com>
3065 * unwind-dw2.c (uw_init_context_1): Fix test that checks if
3066 dwarf_reg_size_table has been initialized.
3068 2006-10-30 Roger Sayle <roger@eyesopen.com>
3070 * builtins.c (expand_builtin_mathfn_3): Correct coding style.
3071 * ddg.c (print_ddg_edge): Likewise.
3072 * dwarf2out.c (prune_unused_types_walk): Likewise.
3073 * ifcvt.c (noce_try_cmove_arith): Likewise.
3074 * langhooks.c (add_builtin_function): Likewise.
3075 * reg-stack.c (subst_stack_regs_pat): Likewise.
3076 * tree.c (expanded_location): Likewise.
3077 * tree-dump.c (dequeue_and_dump): Likewise.
3079 2006-10-30 David Daney <ddaney@avtrex.com>
3081 * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error.
3083 2006-10-30 Jakub Jelinek <jakub@redhat.com>
3085 PR tree-optimization/29637
3086 * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
3087 of the innertype is the innertype itself.
3089 2006-10-30 Danny Smith <dannysmith@users.sourceforge.net>
3091 * dwarf2out.c (file_name_acquire): Correct typo.
3093 2006-10-29 Daniel Berlin <dberlin@dberlin.org>
3095 * tree.h (tree_value_handle): Remove struct value_set declaration.
3096 Change value_set to bitmap_set.
3097 * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
3098 * tree-vn.c (get_value_handle): Made inline and moved to
3100 * tree-flow-inline.h: (has_stmt_ann): New function.
3101 * tree-ssa-pre.c (expressions): New variable.
3102 (next_expression_id): Ditto.
3103 (alloc_expression_id): New function.
3104 (struct value_set): Remove.
3105 (get_expression_id): New function.
3106 (get_or_alloc_expression_id): Ditto.
3107 (expression_for_id): Ditto.
3108 (clear_expression_ids): Ditto.
3109 (FOR_EACH_EXPR_ID_IN_SET): New macro.
3110 (bb_value_sets): Renamed to bb_bitmap_sets.
3111 All value sets replaced with bitmap_sets.
3113 (BB_VISITED): New macro.
3114 (postorder): New variable.
3115 (add_to_value): Removed.
3116 (value_exists_in_set_bitmap): Ditto.
3117 (value_insert_into_set_bitmap): Ditto.
3120 (set_remove): Ditto.
3121 (set_contains_value): Ditto.
3122 (insert_into_set): Ditto.
3124 (find_leader): Ditto.
3125 (bitmap_set_subtract_from_value_set): Ditto.
3126 (value_insert_into_set): Ditto.
3127 (print_value_set): Ditto.
3128 (debug_value_set): Ditto.
3129 (constant_expr_p): New function.
3130 (bitmap_remove_from_set): Ditto.
3131 (bitmap_insert_into_set): Ditto.
3132 (bitmap_set_free): Ditto.
3133 (vh_compare): Ditto.
3134 (sorted_array_from_bitmap_set): Ditto.
3135 (bitmap_set_subtract): Ditto.
3136 (bitmap_set_equal): Ditto.
3137 (debug_bitmap_set): Ditto.
3138 (find_leader_in_sets): Ditto.
3139 (bitmap_set_replace_value): Modify for bitmapped sets.
3140 (phi_translate): Ditto.
3141 (phi_translate_set): Ditto.
3142 (bitmap_find_leader): Ditto.
3143 (valid_in_sets): Ditto.
3144 (union_contains_value): Ditto.
3146 (compute_antic_aux): Ditto. Mark changed blocks.
3147 (compute_antic): Ditto. Iterate in postorder and only over
3149 (compute_rvuse_and_antic_safe): Reuse postorder.
3150 (create_component_ref_by_pieces): Modify for bitmapped sets.
3151 (find_or_generate_expression): Ditto.
3152 (create_expression_by_pieces): Ditto.
3153 (insert_into_preds_of_block): Ditto.
3154 (changed_blocks): New variable.
3155 (do_regular_insertion): Broken out from insert_aux.
3156 (insert_aux): Modified for bitmapped sets.
3157 (find_existing_value_expr): New function.
3158 (create_value_expr_from): Use it.
3159 (insert_extra_phis): Removed.
3160 (print_bitmap_set): Renamed from bitmap_print_value_set.
3161 (compute_avail): Handle RETURN_EXPR.
3162 (init_pre): Modify for bitmapped sets.
3163 * tree-flow.h (has_stmt_ann): New function.
3165 2006-10-29 Roger Sayle <roger@eyesopen.com>
3167 * builtins.c (fold_builtin_floor): Check for the availability of
3168 the C99 trunc function before transforming floor into trunc.
3170 2006-10-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3172 * builtins.c (fold_builtin_hypot): Rearrange recursive
3173 transformation before others, and also do ABS_EXPR. When
3174 necessary, check flag_unsafe_math_optimizations. When necessary,
3177 2006-10-29 Roger Sayle <roger@eyesopen.com>
3179 * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X.
3180 Fold ~X op C as X op' ~C, where op' is the swapped comparison.
3181 (fold_binary): ~X eq/ne C is now handled in fold_comparison.
3182 Fold -X eq/ne -Y as X eq/ne Y.
3184 2006-10-29 Richard Sandiford <richard@codesourcery.com>
3186 * config/mips/mips.md (mul<mode>3): Check ISA_HAS_MUL3 rather than
3187 GENERATE_MULT3_<MODE>. Restrict the test to SImode. Use ISA_HAS_MUL3
3188 rather than GENERATE_MULT3_SI in the various define_peephole2s.
3189 (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI.
3190 Use an inclusive test for "mult" rather than "mul".
3191 (rotr<mode>3): Depend on ISA_HAS_ROR.
3192 * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of
3194 (GENERATE_MULT3_DI): Delete.
3195 (ISA_HAS_64BIT_REGS): Use consistent formatting.
3196 (ISA_HAS_MUL3): New macro.
3197 (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting.
3198 (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise.
3199 (ISA_HAS_CLZ_CLO): Likewise.
3200 (ISA_HAS_DCLZ_DCLO): Delete.
3201 (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16.
3202 (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just
3203 the VR4120 and VR4130.
3204 (ISA_HAS_MACCHI): Use consistent formatting.
3205 (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of...
3206 (ISA_HAS_ROR): ...this new macro.
3207 (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting.
3208 (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise.
3209 (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1.
3211 2006-10-29 Roger Sayle <roger@eyesopen.com>
3213 PR tree-optimization/15458
3214 * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C
3217 2006-10-29 Richard Guenther <rguenther@suse.de>
3219 * config/i386/i386-protos.h (ix86_expand_trunc): Declare.
3220 (ix86_expand_truncdf_32): Likewise.
3221 * config/i386/i386.c (ix86_expand_trunc): New function expanding
3222 trunc inline for SSE math and -fno-trapping-math and if not
3223 optimizing for size.
3224 (ix86_expand_truncdf_32): Same for DFmode on 32bit archs.
3225 * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders
3226 for expanding btrunc inline for SSE math.
3228 2006-10-29 Joseph Myers <joseph@codesourcery.com>
3230 * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all.
3231 Handle tuning for bi-arch i[34567]86-*-linux* like that for
3232 i[34567]86-*-solaris2.1[0-9]*.
3233 * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS):
3234 Define conditionally depending on TARGET_64BIT_DEFAULT.
3235 (SPEC_32, SPEC_64): Define.
3236 (LINK_SPEC): Use them.
3237 * doc/install.texi (--enable-targets=all): Document for x86-linux.
3239 2006-10-29 Richard Guenther <rguenther@suse.de>
3241 * config/i386/i386-protos.h (ix86_expand_round): Declare.
3242 (ix86_expand_rounddf_32): Likewise.
3243 * config/i386/i386.c (ix86_expand_round): New function expanding
3244 round inline for SSE math and -fno-trapping-math and if not
3245 optimizing for size.
3246 (ix86_expand_rounddf_32): Same for DFmode on 32bit archs.
3247 * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding
3248 round via ix86_expand_round.
3250 2006-10-29 Richard Guenther <rguenther@suse.de>
3252 * config/i386/i386-protos.h (ix86_expand_floorceil): Declare.
3253 (ix86_expand_floorceildf_32): Likewise.
3254 * config/i386/i386.c (ix86_expand_sse_compare_mask): New
3255 static helper function.
3256 (ix86_expand_floorceil): Expander for floor and ceil to SSE
3258 (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs.
3259 * config/i386/i386.md (floordf2): Adjust to enable floor
3260 expansion via ix86_expand_floorceil if TARGET_SSE_MATH and
3261 -fno-trapping-math is enabled and if not optimizing for size.
3262 (floorsf2, ceildf2, ceilsf2): Likewise.
3263 * config/i386/sse.md (sse_maskcmpsf3): New insn.
3264 (sse2_maskcmpdf3): Likewise.
3266 2006-10-29 Richard Guenther <rguenther@suse.de>
3268 * builtins.c (expand_builtin_mathfn): Expand nearbyint as
3269 rint in case -fno-trapping-math is enabled.
3270 * config/i386/i386-protos.h (ix86_expand_rint): Declare.
3271 * config/i386/i386.c (ix86_gen_TWO52): New static helper function.
3272 (ix86_expand_sse_fabs): Likewise.
3273 (ix86_expand_rint): New function expanding rint to x87 or SSE math.
3274 * config/i386/i386.md (rintdf2): Enable for SSE math if
3275 -fno-trapping-math is enabled, use ix86_expand_rint for expansion.
3276 (rintsf2): Likewise.
3278 2006-10-29 Richard Guenther <rguenther@suse.de>
3280 * genopinit.c (optabs): Change lfloor_optab and lceil_optab
3281 to conversion optabs.
3282 * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab
3283 as conversion optab.
3284 * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil.
3285 (enum convert_optab_index): Add COI_lfloor and COI_lceil.
3286 (lfloor_optab, lceil_optab): Adjust defines.
3287 * builtins.c (expand_builtin_int_roundingfn): Adjust for
3288 lfloor and lceil optabs now being conversion optabs.
3289 * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare.
3290 * config/i386/i386.c (ix86_expand_sse_compare_and_jump):
3291 New static helper function.
3292 (ix86_expand_lfloorceil): New function to expand lfloor and
3294 * config/i386/i386.md (lfloor<mode>2): Split into ...
3295 (lfloorxf<mode>2): ... x87 variant
3296 (lfloor<mode>di2, lfloor<mode>si2): ... and SSE variants
3297 using ix86_expand_lfloorceil.
3298 (lceil<mode>2, lceilxf<mode>2, lceil<mode>di2, lceil<mode>si2):
3300 * doc/md.texi (lfloorMN, lceilMN): Document.
3302 2006-10-29 Richard Sandiford <richard@codesourcery.com>
3304 * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
3305 -mno-shared assembler option on mips targets.
3306 * configure, config.in: Regenerate.
3307 * config/mips/linux.h (NO_SHARED_SPECS): New macro.
3308 (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
3309 * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
3311 2006-10-29 Richard Sandiford <richard@codesourcery.com>
3313 * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well
3314 as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL.
3316 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
3318 * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md,
3319 config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix
3322 2006-10-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3325 * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New.
3326 (fold_builtin_pow): Evaluate constant arguments at compile-time
3328 (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT.
3329 (do_mpfr_ckconv): New helper function.
3330 (do_mpfr_arg1): Use do_mpfr_ckconv.
3331 (do_mpfr_arg2): New.
3333 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
3336 * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number.
3337 (-fdump-rtl-sched): Rename to ..
3338 (-fdump-rtl-sched1): here. Also fix file extension number.
3340 2006-10-28 Richard Guenther <rguenther@suse.de>
3342 * fold-const.c (maybe_canonicalize_comparison): Fix code
3345 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3347 * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM.
3348 (NON_QI_REG_P): Use IN_RANGE.
3349 (REX_INT_REGNO_P): Use IN_RANGE.
3350 (FP_REGNO_P): Use IN_RANGE.
3351 (SSE_REGNO_P): Use IN_RANGE.
3352 (REX_SSE_REGNO_P): Use IN_RANGE.
3353 (MMX_REGNO_P): Use IN_RANGE.
3354 (STACK_REGNO_P): New macro.
3355 (STACK_REG_P): Use STACK_REGNO_P.
3356 (NON_STACK_REG_P): Use STACK_REGNO_P.
3357 (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P.
3358 (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P.
3359 (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P.
3360 (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P.
3361 (HARD_REGNO_RENAME_OK): Use !IN_RANGE.
3363 2006-10-28 Eric Botcazou <ebotcazou@adacore.com>
3365 * except.h (output_function_exception_table): Add 'const char*' param.
3366 * except.c (switch_to_exception_section): Add 'const char*' param.
3367 If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined
3368 and flag_function_sections is set, use a function-specific section.
3369 (output_function_exception_table): Add 'const char*' param.
3370 Adjust call to switch_to_exception_section.
3371 * final.c (rest_of_handle_final): Adjust calls to
3372 output_function_exception_table.
3373 * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check.
3374 * config.in: Regenerate.
3375 * configure: Likewise.
3377 2006-10-28 Richard Guenther <rguenther@suse.de>
3380 * fold-const.c (maybe_canonicalize_comparison_1): Helper
3381 for maybe_canonicalize_comparison.
3382 (maybe_canonicalize_comparison): New function for canonicalizing
3384 (fold_comparison): Call it to canonicalize comparisons with
3387 2006-10-28 Richard Guenther <rguenther@suse.de>
3390 * builtins.c (expand_builtin_int_roundingfn_2): Expand
3391 BUILT_IN_LROUND and BUILT_IN_LLROUND from here.
3392 (expand_builtin): Adjust likewise.
3393 * genopinit.c (optabs[]): Add lround optab.
3394 * optabs.c (init_optabs): Initialize lround_optab.
3395 * optabs.h (enum convert_optab_index): Add COI_lround.
3396 (lround_optab): Define.
3397 * config/i386/i386-protos.h (ix86_expand_lround): Declare.
3398 * config/i386/i386.c (ix86_sse_copysign_to_positive): New
3400 (ix86_expand_lround): New function.
3401 * config/i386/i386.md (lround<mode>di2, lround<mode>si2):
3403 * doc/md.texi (lroundMN2): Document.
3405 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3408 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
3409 argument to HOST_WIDE_INT. Update function prototype.
3410 (round_frame_size): Change return type to HOST_WIDE_INT. Change
3411 "size" argument to HOST_WIDE_INT. Update function prototype.
3413 2006-10-28 Uros Bizjak <uros@kss-loka.si>
3415 * config/i386/i386.c (output_387_ffreep): Create output from a
3416 template string for !HAVE_AS_IX86_FFREEP.
3418 2006-10-27 Eric Christopher <echristo@apple.com>
3420 * config/darwin.c: Fix formatting and grammar.
3422 2006-10-27 Jan Hubicka <jh@suse.cz>
3424 * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going
3425 to be thrown away soon when IGNORE is set.
3426 * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument
3427 indicating when return value shall not be computed.
3428 * gimplify.c (internal_get_tmp_var): Avoid random tree sharing.
3430 2006-10-27 Vladimir Makarov <vmakarov@redhat.com>
3432 * config/i386/i386.h (TARGET_GEODE):
3433 (TARGET_CPU_CPP_BUILTINS): Add code for geode.
3434 (TARGET_CPU_DEFAULT_geode): New macro.
3435 (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2,
3436 TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon,
3437 TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8,
3438 TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott,
3439 TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase
3441 (TARGET_CPU_DEFAULT_NAMES): Add geode.
3442 (processor_type): Add PROCESSOR_GEODE.
3444 * config/i386/i386.md: Include geode.md.
3447 * config/i386/i386.c (geode_cost): New initialized global
3449 (m_GEODE, m_K6_GEODE): New macros.
3450 (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf,
3451 x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4,
3452 x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants,
3453 x86_schedule): Use m_K6_GEODE instead of m_K6.
3454 (x86_movx, x86_cmove): Set up m_GEODE.
3455 (x86_integer_DFmode_moves): Clear m_GEODE.
3456 (processor_target_table): Add entry for geode.
3457 (processor_alias_table): Ditto.
3459 * config/i386/geode.md: New file.
3461 * doc/invoke.texi: Add entry about geode processor.
3463 2006-10-27 Mike Stump <mrs@apple.com>
3465 * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and
3466 __DYNAMIC__ from here back to ...
3467 * config/darwin.h (CPP_SPEC): ... here.
3469 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
3470 Nathan Sidwell <nathan@codesourcery.com>
3472 * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative
3473 when choosing the minimum heapsize.
3475 2006-10-26 Nathan Froyd <froydnj@codesourcery.com>
3477 * gcc/unwind-dw2.h: Move cfa-related variables into
3478 struct frame_state_reg_info to ensure that the CFA is properly
3479 handled when executing DW_CFA_{remember,restore}_state.
3480 * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h,
3481 gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h
3482 gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h
3483 gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h
3484 gcc/config/rs6000/linux-unwind.h,
3485 gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h,
3486 gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h:
3487 Modify to use new cfa_* fields.
3489 2006-10-26 Andreas Krebbel <krebbel1@de.ibm.com>
3491 * config/s390/s390.c (s390_init_frame_layout): Check positive
3494 2006-10-26 Ben Elliston <bje@au.ibm.com>
3496 * gimplify.c (get_name): Remove extraneous break.
3497 (gimplify_omp_for): Initialise ret with GS_OK.
3499 2006-10-25 Steve Ellcey <sje@cup.hp.com>
3501 * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++.
3502 Add unix98.o to link line.
3504 2006-10-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3507 * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm):
3508 Calculate compile-time constants using MPFR.
3509 (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC,
3510 BUILT_IN_EXPM1 and BUILT_IN_LOG1P.
3512 2006-10-25 Bob Wilson <bob.wilson@acm.org>
3514 * config/xtensa/lib2funcs.S: Use C-style comments.
3516 2006-10-24 Nathan Froyd <froydnj@codesourcery.com>
3518 * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH.
3519 (file_table_relative_p): Likewise.
3520 (dwarf2out_finish): Likewise.
3521 (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2.
3523 2006-10-25 Daniel Berlin <dberlin@dberlin.org>
3525 * tree-ssa-structalias.c (intra_create_variable_infos):
3526 Don't recreate nonlocal_all if it already exists.
3528 2006-10-25 Richard Guenther <rguenther@suse.de>
3531 * optabs.h (enum optab_index): Remove OTI_lrint.
3532 (enum convert_optab_index): Add COI_lrint.
3533 (lrint_optab): Adjust.
3534 (expand_sfix_optab): Declare.
3535 * optabs.c (expand_sfix_optab): New function.
3536 (init_optabs): Init lrint_optab as conversion optab.
3537 * genopinit.c (lrint_optab): Change to a conversion optab.
3538 * builtins.c (expand_builtin_int_roundingfn_2): Adjust to
3539 expansion via conversion optab.
3540 * config/i386/i386.md (*fistdi2_1): Remove
3541 flag_unsafe_math_optimizations guard.
3542 (fistdi2, fistdi2_with_temp, *fist<mode>2_1, fist<mode>2,
3543 fist<mode>2_with_temp): Likewise.
3544 (lrint<mode>2): Split into...
3545 (lrintxf<mode>2): ... x87 part
3546 (lrint<mode>di2, lrint<mode>si2): ... and SSE parts.
3547 * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2,
3548 sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for
3549 UNSPEC_FIX_NOTRUNC matching non-vector float modes.
3550 * doc/md.texi (lrintMN2): Document.
3552 2006-10-25 Uros Bizjak <uros@kss-loka.si>
3555 * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"):
3556 Use inc and dec instructions for TARGET_USE_INCDEC.
3557 ("*sync_compare_and_swap<mode>"): Fix -masm=intel template.
3558 ("sync_double_compare_and_swap<mode>"): Likewise.
3559 ("*sync_double_compare_and_swapdi_pic"): Likewise.
3560 ("*sync_compare_and_swap_cc<mode>"): Likewise.
3561 ("sync_double_compare_and_swap_cc<mode>"): Likewise.
3562 ("*sync_double_compare_and_swap_ccdi_pic"): Likewise.
3563 ("sync_old_add<mode>"): Likewise.
3564 ("sync_lock_test_and_set<mode>"): Likewise.
3565 ("sync_lock_test_and_set<mode>"): Likewise.
3566 ("sync_add<mode>"): Likewise.
3567 ("sync_sub<mode>"): Likewise.
3568 ("sync_ior<mode>"): Likewise.
3569 ("sync_and<mode>"): Likewise.
3570 ("sync_xor<mode>"): Likewise.
3572 2006-10-25 Uros Bizjak <uros@kss-loka.si>
3574 * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder.
3575 (remainder_optab): Define corresponding macro.
3576 (drem_optab): Remove.
3577 * optabs.c (init_optabs): Initialize remainder_optab. Remove
3578 drem_optab initialization.
3579 * genopinit.c (optabs): Implement remainder_optab using
3580 remainder?f3 patterns. Remove drem_optab.
3581 * builtins.c (expand_builtin_mathfn_2): Handle
3582 BUILT_IN_REMAINDER{,F,L} using remainder_optab.
3583 (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using
3584 expand_builtin_mathfn_2.
3586 (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not
3587 depend on flag_unsafe_math_optimizations.
3589 * config/i386/i386.md ("remaindersf3", "remainderdf3")
3590 ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders.
3591 Do not depend on flag_unsafe_math_optimizations. Use
3592 truncxf?f expander instead of truncxf?f_i387_noop.
3594 ("fpremxf4", "fprem1xf4"): Do not depend on
3595 flag_unsafe_math_optimizations.
3596 ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on
3597 flag_unsafe_math_optimizations. Use truncxf?f expander
3598 instead of truncxf?f_i387_noop.
3600 * doc/md.texi (fmod, remainder): Document standard named pattern.
3602 2006-10-24 Richard Sandiford <richard@codesourcery.com>
3603 David Daney <ddaney@avtrex.com>
3606 * rtlanal.c (nonzero_address_p): Remove check for values wrapping.
3608 2006-10-25 Ben Elliston <bje@au.ibm.com>
3610 * doc/extend.texi (Variable Attributes): Typo fix.
3612 2006-10-24 Uros Bizjak <uros@kss-loka.si>
3614 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54.
3615 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register.
3616 (REG_ALLOC_ORDER): Add one element to allocate fpcr register.
3617 (FRAME_POINTER_REGNUM): Update register number to 21.
3618 (REG_CLASS_CONTENTS): Update contents for added fpcr register.
3619 (HI_REGISTER_NAMES): Add "fpcr" for fpcr register.
3621 * config/i386/i386.c (regclass_map): Add fpcr entry.
3622 (dbx_register_map, dbx64_register_map, svr4_dbx_register_map):
3624 (print_reg): Assert REGNO (x) != FPCR_REG.
3626 * config/i386/i386.md (FPCR_REG, R11_REG): New constants.
3627 (DIRFLAG_REG): Renumber.
3628 (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG.
3629 (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG.
3630 (sse_prologue_save, *sse_prologue_save_insn): Renumber
3631 hardcoded SSE register numbers.
3633 * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber
3634 hardcoded MMX register numbers.
3636 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3639 * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove.
3640 (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments.
3642 (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch.
3643 (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH,
3644 BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH,
3645 BUILT_IN_TANH): Calculate compile-time arguments using MPFR.
3647 2006-10-24 Richard Guenther <rguenther@suse.de>
3650 * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES
3651 and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS
3652 for deciding optimizations in consistency with fold-const.c
3653 (fold_builtin_unordered_cmp): Likewise.
3655 2006-10-24 Richard Guenther <rguenther@suse.de>
3657 * builtins.c (fold_builtin_floor): Fold floor (x) where
3658 x is nonnegative to trunc (x).
3659 (fold_builtin_int_roundingfn): Fold lfloor (x) where x is
3660 nonnegative to FIX_TRUNC_EXPR.
3662 2006-10-24 Richard Guenther <rguenther@suse.de>
3664 PR tree-optimization/29567
3665 * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic
3666 for TRUTH_NOT_EXPR. Clarify comments.
3668 2006-10-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3671 * builtins.c (fold_builtin_exponent): Evaluate constant arguments
3672 at compile-time using MPFR. Change parameter VALUE to FUNC,
3674 (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check
3675 for overflow and underflow at all times and avoid folding in
3678 2006-10-24 Ben Elliston <bje@au.ibm.com>
3680 * reload1.c: Formatting fixes.
3682 2006-10-23 Zdenek Dvorak <dvorakz@suse.cz>
3684 PR tree-optimization/14784
3685 * tree-flow.h (struct var_ann_d): Add is_heapvar bit.
3686 * tree-ssa-structalias.c (get_constraint_for,
3687 intra_create_variable_infos): Set is_heapvar.
3688 * tree-ssa-operands.c (access_can_touch_variable): Do not handle
3689 non-heapvar pointer variables specially.
3691 2006-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3694 * builtins.c (fold_builtin_sin, fold_builtin_cos,
3695 fold_builtin_tan): Fold all constant arguments. Take a "type"
3696 argument as necessary.
3697 (do_mpfr_arg1): New.
3698 * real.c, real.h (real_from_mpfr, mpfr_from_real): New.
3700 2006-10-23 Bob Wilson <bob.wilson@acm.org>
3702 * config/xtensa/lib1funcs.asm: Use C-style comments.
3704 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
3706 * tree.c (local_define_builtin): Replace calls to
3707 lang_hooks.builtin_function with add_builtin_function.
3708 * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
3710 * c-tree.h (builtin_function): Rename to c_builtin_function. Change
3712 * c-decl.c (builtin_function): Rename to c_builtin_function. Move
3713 common code to add_builtin_function.
3714 * langhooks.c (add_builtin_function): New function.
3715 (lhd_builtin_function): New function.
3716 * langhooks.h (struct lang_hooks): Change the signature of
3718 (add_builtin_function): New function.
3719 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
3720 calls to lang_hooks.builtin_function with add_builtin_function.
3721 * c-common.c (decl_builtin_1): Replace calls to
3722 lang_hooks.builtin_function with add_builtin_function.
3723 * config/alpha/alpha.c (alpha_init_builtins): Replace calls to
3724 lang_hooks.builtin_function with add_builtin_function.
3725 * config/frv/frv.c (def_builtin): Replace calls to
3726 lang_hooks.builtin_function with add_builtin_function.
3727 * config/s390/s390.c (s390_init_builtins): Replace calls to
3728 lang_hooks.builtin_function with add_builtin_function.
3729 * config/sparc/sparc.c (def_builtin): Replace calls to
3730 lang_hooks.builtin_function with add_builtin_function.
3731 * config/i386/i386.c (def_builtin): Replace calls to
3732 lang_hooks.builtin_function with add_builtin_function.
3733 * config/sh/sh.c (sh_media_init_builtins): Replace calls to
3734 lang_hooks.builtin_function with add_builtin_function.
3735 * config/c4x/c4x.c (c4x_init_builtins): Replace calls to
3736 lang_hooks.builtin_function with add_builtin_function.
3737 * config/stormy16/stormy16.c (xstormy16_init_builtins):
3738 Replace calls to lang_hooks.builtin_function with
3739 add_builtin_function.
3740 * config/iq2000/iq2000.c (def_builtin):
3741 Replace calls to lang_hooks.builtin_function with
3742 add_builtin_function.
3743 * config/ia64/ia64.c (def_builtin): Replace calls to
3744 lang_hooks.builtin_function with add_builtin_function.
3745 * config/rs6000/rs6000.c (def_builtin): Replace calls to
3746 lang_hooks.builtin_function with add_builtin_function.
3747 (altivec_init_builtins): Replace calls to
3748 lang_hooks.builtin_function with add_builtin_function.
3749 * config/arm/arm.c (def_mbuiltin): Replace calls to
3750 lang_hooks.builtin_function with add_builtin_function.
3751 (arm_init_tls_builtins): Replace calls to
3752 lang_hooks.builtin_function with add_builtin_function.
3753 * config/mips/mips.c (mips_init_builtins): Replace calls to
3754 lang_hooks.builtin_function with add_builtin_function.
3755 * config/bfin/bfin.c (def_builtin): Replace calls to
3756 lang_hooks.builtin_function with add_builtin_function.
3757 * langhooks-def.h (lhd_builtin_function): New function.
3758 (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
3760 2006-10-23 Jakub Jelinek <jakub@redhat.com>
3762 * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle
3763 BUILT_IN_STRNCAT_CHK.
3765 2006-10-23 Jan Hubicka <jh@suse.cz>
3767 * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument;
3768 don't do conversion from memmove to memcpy here.
3769 (expand_builtin_bcopy, expand_builtin): Update call of
3770 expand_builtin_memmove.
3771 (fold_builtin_memory_op): Do folding of memmove to memcpy here.
3773 2006-10-23 Paul Brook <paul@codesourcery.com>
3775 * stor-layout.c (start_record_layout): maximum_field_alignment
3776 overrides STRUCTURE_SIZE_BOUNDARY.
3778 2006-10-23 Ulrich Weigand <uweigand@de.ibm.com>
3780 * config/s390/predicates.md ("bras_sym_operand"): Do not accept
3781 nonlocal function symbols if flag_pic.
3783 2006-10-23 Richard Guenther <rguenther@suse.de>
3787 * builtins.c (fold_binary): Remove checks for flag_wrapv
3788 and flag_trapv where negate_expr_p covers these cases.
3790 2006-10-23 Richard Guenther <rguenther@suse.de>
3793 * fold-const.c (fold_plusminus_mult_expr): Check exact power
3794 of two on the absolute value.
3795 (fold_binary): Fold x * -C to -x * C if x is easily negatable
3796 and negating -C does not overflow.
3798 2006-10-23 Richard Guenther <rguenther@suse.de>
3801 * convert.c (convert_to_real): Fold (float)-x to -(float)x
3802 only if not flag_rounding_math.
3804 2006-10-22 Richard Sandiford <richard@codesourcery.com>
3805 Kaz Kojima <kkojima@gcc.gnu.org>
3808 * config/sh/sh.c (expand_block_move): Use a BLKmode rather than
3809 SImode memory reference for the source of a movua.
3810 * config/sh/sh.md (UNSPEC_MOVUA): New macro.
3811 (movua): Use an unspec instead of sign_extract. Expect the source
3812 to have mode BLKmode.
3813 (extv, insv): Use a BLKmode rather than SImode memory reference
3814 for the source of a movua.
3816 2006-10-22 Jeff Law <law@redhat.com>
3817 Richard Guenther <rguenther@suse.de>
3819 PR tree-optimization/15911
3820 * tree-vrp.c (extract_code_and_val_from_cond): New function.
3821 (register_edge_assert_for_1): Likewise.
3822 (register_edge_assert_for): Handle &&/&/||/| in conditionals.
3823 (find_conditional_asserts): Adjust for new function signature.
3824 (find_assert_locations): Likewise.
3826 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
3828 * config/i386/tmmintrin.h: Remove the duplicated content.
3830 2006-10-22 H.J. Lu <hongjiu.lu@intel.com>
3832 * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers.
3833 (x86_64-*-*): Likewise.
3835 * config/i386/i386.c (pta_flags): Add PTA_SSSE3.
3836 (override_options): Check SSSE3.
3837 (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD,
3838 IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD,
3839 IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW,
3840 IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB,
3841 IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND,
3842 IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW,
3843 IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128,
3844 IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128,
3845 IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128,
3846 IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128,
3847 IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128,
3848 IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128,
3849 IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128,
3850 IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and
3851 IX86_BUILTIN_PABSD128.
3852 (bdesc_2arg): Add SSSE3.
3853 (bdesc_1arg): Likewise.
3854 (ix86_init_mmx_sse_builtins): Support SSSE3.
3855 (ix86_expand_builtin): Likewise.
3856 * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3858 * config/i386/i386.md (UNSPEC_PSHUFB): New.
3859 (UNSPEC_PSIGN): Likewise.
3860 (UNSPEC_PALIGNR): Likewise.
3861 Include mmx.md before sse.md.
3863 * config/i386/i386.opt: Add -mssse3.
3865 * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3.
3866 (ssse3_phaddwv4hi3): Likewise.
3867 (ssse3_phadddv4si3): Likewise.
3868 (ssse3_phadddv2si3): Likewise.
3869 (ssse3_phaddswv8hi3): Likewise.
3870 (ssse3_phaddswv4hi3): Likewise.
3871 (ssse3_phsubwv8hi3): Likewise.
3872 (ssse3_phsubwv4hi3): Likewise.
3873 (ssse3_phsubdv4si3): Likewise.
3874 (ssse3_phsubdv2si3): Likewise.
3875 (ssse3_phsubswv8hi3): Likewise.
3876 (ssse3_phsubswv4hi3): Likewise.
3877 (ssse3_pmaddubswv8hi3): Likewise.
3878 (ssse3_pmaddubswv4hi3): Likewise.
3879 (ssse3_pmulhrswv8hi3): Likewise.
3880 (ssse3_pmulhrswv4hi3): Likewise.
3881 (ssse3_pshufbv16qi3): Likewise.
3882 (ssse3_pshufbv8qi3): Likewise.
3883 (ssse3_psign<mode>3): Likewise.
3884 (ssse3_psign<mode>3): Likewise.
3885 (ssse3_palignrti): Likewise.
3886 (ssse3_palignrdi): Likewise.
3887 (abs<mode>2): Likewise.
3888 (abs<mode>2): Likewise.
3890 * config/i386/tmmintrin.h: New file.
3892 * doc/extend.texi: Document SSSE3 built-in functions.
3894 * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches.
3896 2006-10-22 Ira Rosen <irar@il.ibm.com>
3898 * tree-vect-transform.c (vectorizable_load): Use the type of the
3899 return value of the mask_for_load builtin to create realign_load
3902 2006-10-22 Richard Sandiford <richard@codesourcery.com>
3904 * config/mips/mips.c (mips_split_const): Don't accept bare PLUS
3907 2006-10-21 H.J. Lu <hongjiu.lu@intel.com>
3909 * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ...
3910 (UNSPEC_LDDQU): This.
3911 * config/i386/sse.md (sse3_lddqu): Updated.
3913 2006-10-21 Richard Guenther <rguenther@suse.de>
3915 * builtins.c (expand_builtin_int_roundingfn_2): New function.
3916 (expand_builtin): Use it to expand lrint instead of
3917 expand_builtin_mathfn.
3919 2006-10-21 Uros Bizjak <uros@kss-loka.si>
3922 * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if
3923 flag_unsafe_math_optimizations is set.
3925 2006-10-21 Uros Bizjak <uros@kss-loka.si>
3928 * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2
3929 patterns to use memory input operand in x87->mem->XMM
3930 reload sequences. Skip transformation for TARGET_K8.
3932 2006-10-21 Uros Bizjak <uros@kss-loka.si>
3934 * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not
3935 force operand1 to register if both operands are memory operands.
3936 (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387)
3937 (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern
3938 if both operands are memory operands.
3939 (truncdfsf2): Do not force operand1 to register if both operands
3940 are memory operands.
3942 2006-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3944 * Makefile.in (LIBS): Add $(GMPLIBS).
3945 * doc/install.texi: Update GMP and MPFR requirements.
3946 * doc/sourcebuild.texi (need_gmp): Delete.
3948 2006-10-21 Richard Guenther <rguenther@suse.de>
3950 PR tree-optimization/3511
3951 * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that
3952 got new invariant arguments during PHI translation.
3954 2006-10-21 Richard Guenther <rguenther@suse.de>
3957 * fold-const.c (fold_comparison): Fold signed comparisons
3958 of the form X +- C1 CMP Y +- C2.
3960 2006-10-21 Richard Guenther <rguenther@suse.de>
3963 * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP
3964 if flag_unsafe_math_optimizations is specified. We have
3965 flag_finite_math_only for that.
3966 * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP
3967 or flag_unsafe_math_optimizations.
3969 2006-10-21 Richard Guenther <rguenther@suse.de>
3971 * builtins.c (fold_builtin_classify): Fix typo.
3973 2006-10-21 Richard Guenther <rguenther@suse.de>
3976 * simplify-rtx.c (simplify_const_relational_operation):
3977 Do not constant-fold ORDERED and UNORDERED for
3978 flag_unsafe_math_optimizations but only we do not need to
3979 honor NaNs for the given mode.