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