+2006-11-14 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/29798
+
+ * fwprop.c (use_killed_between): Check that DEF_INSN dominates
+ TARGET_INSN before any other check.
+ (fwprop_init): Always calculate dominators.
+ (fwprop_done): Always free them.
+
+2006-11-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and
+ COND_EXPR.
+
+2006-11-13 DJ Delorie <dj@redhat.com>
+
+ * config/m32c/m32c.c (m32c_prepare_shift): Use a separate
+ temporary for intermediates.
+
+2006-11-13 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
+ (sh_optimize_target_register_callee_saved): #if 0 the code
+ using NOTE_INSN_LOOP_{BEG,END}.
+
+2006-11-13 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (optimize_bit_field_compare): Recursively call
+ fold when simplifying non-constant comparisons between bit-fields.
+
+2006-11-13 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
+ test.
+ * configure: Rebuilt.
+
+2006-11-13 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ * config/rs6000/cell.md: New file.
+ * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
+ variable.
+ (ppccell_cost): New cost matrix.
+ (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
+ (rs6000_override_options): Set rs6000_always_hint to false
+ for cell. Also align functions/lables/loops to 8byte
+ for the Cell. Use PROCESSOR_CELL.
+ (rs6000_emit_epilogue): Rename using_mfcr_multiple to
+ using_mtcr_multiple.
+ (rs6000_variable_issue): If the insn is a nonpipelined instruction
+ on the Cell, return 0.
+ (rs6000_adjust_cost): Add Cell cost adjustments.
+ (is_microcoded_insn): Return true for Cell microcoded
+ instructions.
+ (is_nonpipeline_insn): New function.
+ (rs6000_issue_rate): Add PROCESSOR_CELL.
+ (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
+ instructions.
+ (rs6000_use_sched_lookahead_guard): New function.
+ (rs6000_sched_reorder): Reorder the ready list, if the second
+ to last ready insn is a nonepipeline insn on the Cell.
+ * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
+ (ASM_CPU_SPEC): Add Cell.
+ * config/rs6000/rs6000.md (cpu): Add Cell.
+ (cell_micro): New Attr.
+ Include cell.md
+
+2006-11-13 Jakub Jelinek <jakub@redhat.com>
+
+ * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
+ style versions.
+ * configure: Rebuilt.
+
+2006-11-13 Richard Guenther <rguenther@suse.de>
+
+ * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
+ return value.
+ (ix86_expand_lfloorceil): Likewise.
+ (ix86_expand_rint): Likewise.
+ (ix86_expand_floorceildf_32): Likewise.
+ (ix86_expand_floorceil): Likewise.
+ (ix86_expand_rounddf_32): Likewise.
+ (ix86_expand_truncdf_32): Likewise.
+ (ix86_expand_round): Likewise.
+
+2006-11-13 Carlos O'Donell <carlos@codesourcery.com>
+ Mark Mitchell <mark@codesourcery.com>
+
+ * gcc.c: Organize search path variables into $prefix relative,
+ and well-known native. Add comments.
+ (add_sysrooted_prefix): Add comment.
+ (process_command): If !gcc_exec_prefix add $prefix based paths.
+ If *cross_compile == '0', add native well-known paths.
+ Assert tooldir_base_prefix is always relative.
+ (main): If print_search_dirs, and if gcc_exec_prefix is set,
+ use this value for 'install:' path.
+ * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.
+
+2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/i386/i386.c: Fix a typo in comment.
+
+2006-11-13 Michael Matz <matz@suse.de>
+
+ * genemit.c (gen_expand): Allocate enough memory.
+
+2006-11-13 Joseph Myers <joseph@codesourcery.com>
+
+ * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
+ __GXX_TYPEINFO_EQUALITY_INLINE but not
+ __GXX_MERGED_TYPEINFO_NAMES.
+ * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
+ __GXX_MERGED_TYPEINFO_NAMES.
+ * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
+ __GXX_TYPEINFO_EQUALITY_INLINE.
+
+2006-11-13 H.J. Lu <hongjiu.lu@intel.com>
+ Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/29680
+ * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
+ PR 14784.
+
+2006-11-12 Jason Merrill <jason@redhat.com>
+ Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/28915
+ * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
+ vector ctors.
+ * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
+ vector ctors.
+ * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
+ * tree.c (build_vector): Handle non-_CST elements.
+
+2006-11-12 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * genemit.c (gen_insn): Call gen_exp with a non-null used
+ when handling multiple insns.
+ (gen_expand): Likewise.
+ * reorg.c (emit_delay_sequence): Copy the delay slot insn.
+ * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
+ (movsi_const_16bit+1): Copy operands[1].
+ (call_pcrel): Copy the call_site pattern.
+ (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
+
+2006-11-12 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
+ condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING
+ && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
+ (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
+
+2006-11-12 Daniel Berlin <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/29587
+ * tree-ssa-structalias.c (process_constraint): Don't
+ mark address taken due only to escaped vars constraint.
+
+2006-11-12 Michael Matz <matz@suse.de>
+ Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/29797
+ * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
+ BITS_BIG_ENDIAN targets.
+
+2006-11-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_cosh): New.
+ (fold_builtin_1): Use it.
+ * fold-const.c (negate_mathfn_p): Add llround, lround, round,
+ trunc to the list of "odd" functions. Also add llrint, lrint,
+ rint and nearbyint when flag_rounding_math is false.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-flow.h (name_mappings_registered_p): Declare.
+ * tree-into-ssa.c (name_mappings_registered_p): New function.
+ * tree-cfg.c (tree_can_merge_blocks_p): Check
+ name_mappings_registered_p instead of need_ssa_update_p.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop.c (tree_vectorize): Return the result of
+ vectorize_loops.
+ * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
+ if anything changed.
+ * tree-vectorizer.h (vectorize_loops): Declaration removed.
+ * tree-flow.h (vectorize_loops): Declaration changed.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
+ comments.
+ (issue_prefetch_ref): Move assignment to write_p out of loop.
+ (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
+ SIMULTANEOUS_PREFETCHES into account.
+ (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
+ * lambda-code.c (lcm): Renamed to ...
+ (least_common_multiple): ... and exported.
+ * tree-flow.h (least_common_multiple): Declare.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
+ * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow
+ ud-chains. Handle AND_EXPR.
+ (record_estimate): Record whether the estimate is realistic
+ and whether it is derived from a loop exit.
+ (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref,
+ infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
+ functions.
+ (compute_estimated_nb_iterations): Take only realistic bounds into
+ account. Set estimate_state. Use double_ints.
+ (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
+ and infer_loop_bounds_from_signedness. Do not consider basic blocks
+ that do not have to be always executed.
+ (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
+ to determine whether to call infer_loop_bounds_from_undefined
+ and compute_estimated_nb_iterations.
+ (n_of_executions_at_most): Use double_ints.
+ (free_numbers_of_iterations_estimates_loop): Set estimate_state.
+ (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
+ * double-int.c (double_int_to_tree): Improve comment.
+ (double_int_fits_to_tree_p): New function.
+ * double-int.h (double_int_fits_to_tree_p): Declare.
+ * tree-data-ref.c: Include langhooks.h.
+ (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed.
+ (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
+ (analyze_array): Do not pass estimate_only argument to
+ analyze_array_indexes.
+ (get_number_of_iters_for_loop): Build tree from the stored double_int
+ value.
+ (get_references_in_stmt, find_data_references_in_stmt): New functions.
+ (find_data_references_in_loop): Use find_data_references_in_stmt.
+ * tree-data-ref.h (struct data_ref_loc_d): New.
+ (get_references_in_stmt): Declare.
+ (estimate_iters_using_array): Declaration removed.
+ * cfgloop.h (struct nb_iter_bound): Change type of bound to
+ double_int. Improve comments. Add is_exit and realistic
+ fields.
+ (struct loop): Changed type of estimated_nb_iterations to double_int.
+ Added estimate_state field.
+ (record_estimate): Declaration removed.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * params.c (set_param_value): Initialize the "set" field.
+ * params.h (struct param_info): Add "set" field.
+ (PARAM_SET_P): New macro.
+ (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
+ L1_CACHE_LINE_SIZE): New macros.
+ * toplev.c (DEFPARAM): Initialize the "set" field.
+ * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
+ SIMULTANEOUS_PREFETCHES): Removed.
+ (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
+ (tree_ssa_prefetch_arrays): Dump the values of the parameters.
+ * config/sparc/sparc.c: Include params.h.
+ (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
+ L1_CACHE_LINE_SIZE parameters.
+ * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
+ Removed.
+ * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
+ Removed.
+ * config/i386/i386.c: Include params.h.
+ (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
+ (override_options): Set SIMULTANEOUS_PREFETCHES and
+ L1_CACHE_LINE_SIZE parameters.
+ * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
+ (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
+ L1_CACHE_LINE_SIZE parameters.
+ * config/ia64/ia64.c (ia64_optimization_options): Set
+ SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
+ * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
+ Removed.
+ * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
+ PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
+ * doc/invoke.texi: Document new params.
+
+2006-11-12 Roger Sayle <roger@eyesopen.com>
+
+ PR tree-optimization/13827
+ * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
+ as ((X^Y)&C) op 0.
+
+2006-11-12 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
+ update_single_exit_for_duplicated_loops): New functions.
+ (duplicate_loop_to_header_edge): Use
+ update_single_exit_for_duplicated_loops.
+ * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
+ functions only with ENABLE_CHECKING.
+
+2006-11-12 Andreas Schwab <schwab@suse.de>
+
+ * except.c (sjlj_emit_function_enter): Remove unused variable.
+
+2006-11-11 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (int_binop_types_match_p): New function.
+ (size_binop): Relax constraint that both arguments must both have
+ exactly the same sizetype type. Instead use int_binop_types_match_p.
+ (size_diffop): Likewise.
+
+ (make_range): Use build_int_cst instead of fold_convert.
+ (fold_cond_expr_with_comparison): Use build_int_cst to construct
+ integer constants of the correct type.
+ (fold_div_compare): Likewise.
+ (fold_single_bit_test): Likewise.
+ (fold_binary): Likewise.
+ * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
+ has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
+
+2006-11-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR rtl-opt/28812
+ * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
+ non null value if the struct memory access is in the 0th
+ aliasing set.
+
+2006-11-12 Jie Zhang <jie.zhang@analog.com>
+
+ Revert
+ 2006-11-11 Jie Zhang <jie.zhang@analog.com>
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
+ and __BFIN__.
+
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
+ instead of builtin_define for bfin and BFIN.
+
+2006-11-11 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
+ and __BFIN__.
+
+2006-11-11 Jan Hubicka <jh@suse.cz>
+
+ * extended.texi (__builtin_expect): We no longer require second argument
+ to be constant.
+ * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
+ * builtins.c (expand_builtin_expect): Simplify.
+ (expand_builtin_expect_jump): Kill.
+ * final.c (final_scan_insn): Do not skip the removed notes.
+ * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
+ EXPECTED_VALUE): Remove.
+ * dojump.c (do_jump): Do not care about __builtin_expect.
+ * predict.c (expected_value_to_br_prob): Kill.
+ * function.c (expand_function_end): Do not expand
+ NOTE_INSN_REPEATED_LINE_NUMBER.
+ * print-rtl.c (print_rtx): Do not pretty print the removed notes.
+ * expect.c (sjlj_emit_function_enter): Emit directly branch probability.
+ * cfgexpand.c (add_reg_br_prob_note): Export.
+ * cfgcleanup.c (rest_of_handle_jump2): Do not call
+ expected_value_to_br_prob.
+ * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
+ * rtl.h (add_reg_br_prob_note): Declare.
+
+2006-11-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
+
+2006-11-11 Jan Hubicka <jh@suse.cz>
+
+ * predict.c (predict_loops): Kill RTL variant.
+
+2006-11-11 Jan Hubicka <jh@suse.cz>
+
+ * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
+ * modulo-sched.c (find_line_note): Remove.
+ (loop_canon_p): Do not worry about line number notes.
+ (sms_schedule): Likewise.
+ * cse.c (cse_main): Likewise.
+ * regmove.c (fixup_match_1): Likewise
+ * function.c (emit_return_info_block): Likewise.
+ (expand_function_end): Likewise.
+ (thread_prologue_an_epilogue_insns): Likewise.
+ * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
+ Likewise.
+ * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
+ emit_note_copy_after): Kill.
+ (emit_note_copy): Do not worry about line numbers.
+ * jump.c (purge_line_number_notes): Kill.
+ (pass_purge_lineno_notes): Kill.
+ * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
+ call.
+ * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
+ * passes.c (init_optimization_passes): Don't purge_lineno_notes.
+ * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
+ * tree-pass.h (pass_purge_lineno_notes): Kill.
+ * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
+ rm_redundant_line_notes.
+ * sched-rgb.c (schedule_region): Don't rm_line_notes,
+ rm_redundant_line_notes.
+ * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
+ * haifa-sched.c: Update comment about handling notes.
+ (unlink_line_notes): Kill.
+ (rm_line_notes): Kill.
+ (save_line_notes): Simplify.
+ (rm_redundant_line_notes): Kill.
+
+2006-11-11 Richard Guenther <rguenther@suse.de>
+
+ * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
+ Remove unused tree codes.
+ * tree-vrp.c (extract_range_from_unary_expr): Remove handling
+ of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
+ * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
+ * tree.c (stabilize_reference): Likewise.
+ * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
+ fold_unary): Likewise.
+ * tree-gimple.c (is_gimple_cast): Likewise.
+ * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
+ * expr.c (expand_expr_real_1): Likewise.
+ * tree-eh.c (tree_could_trap_p): Likewise.
+ * gimplify.c (gimplify_expr): Likewise.
+ * tree-inline.c (estimate_num_insns_1): Likewise.
+ * tree-cfg.c (verify_expr): Likewise.
+
+2006-11-11 Zdenek Dvorak <dvorakz@suse.cz>
+
+ * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
+ * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
+ (tree_ssa_prefetch_arrays): Do not dump for removed loops.
+
+2006-11-11 Richard Sandiford <richard@codesourcery.com>
+
+ PR middle-end/27528
+ * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
+ constraints accept neither registers or memories.
+
+2006-11-11 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
+ (NO_PROFILE_COUNTERS): Define as 1.
+
+2006-11-10 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
+ Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
+
+2006-11-10 Peter Bergner <bergner@vnet.ibm.com>
+
+ * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
+
+2006-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
+ (fold_builtin_hypot): Likewise.
+ * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.
+
+ * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.
+
+2006-11-10 Roger Sayle <roger@eyesopen.com>
+
+ * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
+ when attempting to build INTEGER_CSTs of non-integral types.
+ * expmed.c (make_tree): Use the correct type, i.e. the inner
+ type, when constructing the individual elements of a CONST_VECTOR.
+
+2006-11-10 Jan Hubicka <jh@suse.cz>
+
+ * cse.c (cse_process_notes): Copy the propagated value.
+ * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
+ in REG_EQUIV notes.
+ * gcse.c (try_replace_reg): Copy the replacement.
+ * i386.c (emit_i387_cw_initialization): Copy stored_mode.
+ (assign_386_stack_local): Always return copied memory expression
+ * function.c (instantiate_virtual_regs_in_insn): Copy the operand
+ duplicates.
+
+2006-11-10 Jan Hubicka <jh@suse.cz>
+
+ * final.c (final): Walk from first instruction.
+ * cfglayout.c (insn_locators_initialize): Remove line number notes.
+
+2006-11-10 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/29777
+ * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn
+ to define_expand.
+ (umulv8hi3_highpart): Ditto.
+ (vec_widen_smult_hi_v8hi): New expander.
+ (vec_widen_smult_lo_v8hi): Ditto.
+
+2006-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ PR middle-end/29335
+ * builtins.c (do_mpfr_arg3): New.
+ (fold_builtin_1): Handle builtins fma, fmin and fmax.
+
+2006-11-09 Eric Christopher <echristo@apple.com>
+
+ PR bootstrap/26892
+ PR bootstrap/27814
+ PR other/28994
+ * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks.
+ * config.gcc (powerpc64-*-darwin*): New target.
+ * config.host: Ditto.
+ * config/rs6000/darwin64.h: New file.
+ * config/rs6000/x-darwin64: Ditto.
+ * config/rs6000/host-ppc64-darwin.c: Ditto.
+
+2006-11-09 Steve Ellcey <sje@cup.hp.com>
+
+ * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode
+ routines for integer division.
+
+2006-11-09 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete.
+
+2006-11-09 Serge Belyshev <belyshev@depni.sinp.msu.ru>
+
+ PR middle-end/29726
+ * fold-const.c (fold_binary) <EQ_EXPR>: Fix typo in variable name.
+
+2006-11-09 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling
+ simplify_subreg with BLKmode outer mode.
+
+2006-11-08 Brooks Moses <brooks.moses@codesourcery.com>
+
+ * doc/invoke.texi: Minor formatting fixes in option lists.
+
+2006-11-08 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/29738
+ * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments.
+ (ccp_lattice_t): Remove UNKNOWN_VAL.
+ (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node):
+ Do not handle UNKNOWN_VAL.
+ (get_default_value): Set initial value of virtual operands to
+ VARYING.
+ (get_value): Always use get_default_value on uninitialized
+ operands.
+ (set_value_varying, surely_varying_stmt_p): New functions.
+ (set_lattice_value): Do not pass argument to get_value.
+ Do not handle UNKNOWN_VAL.
+ (likely_value): Follow the semantics described in the comment.
+ (ccp_initialize): Use surely_varying_stmt_p. Do not mark
+ phi nodes DONT_SIMULATE_AGAIN.
+ (ccp_fold): Do not pass argument to get_value.
+ (fold_const_aggregate_ref, visit_assignment): Ditto. Do not
+ handle UNKNOWN_VAL.
+
+2006-11-08 Andrew Pinski <Andrew_Pinski@playstation.sony.com>
+
+ * tree-pretty-print.c (dump_generic_node) <INTEGER_CST>: Use
+ HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer.
+
+2006-11-08 Roger Sayle <roger@eyesopen.com>
+
+ * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a
+ test for inclusion rather than as a test for exclusion.
+ * tree-ssa-ccp.c (fold_stmt_r) <COND_EXPR>: Use set_rhs to modify
+ the condition after calling fold_binary.
+ * fold-const.c (fold_inf_compare): Remove in_gimple_form check.
+ (fold_binary) <LT_EXPR, GT_EXPR, LE_EXPR, GE_EXPR>: Likewise.
+ * builtins.c (fold_builtin_isascii): Likewise.
+ (fold_builtin_isdigit): Likewise.
+
+2006-11-08 Carlos O'Donell <carlos@codesourcery.com>
+
+ * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE.
+ * configure: Regenerate.
+
+2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take
+ enum argument instead of bool.
+ (vect_analyze_operations): Call vectorizable_type_promotion.
+ * tree-vectorizer.h (type_promotion_vec_info_type): New enum
+ stmt_vec_info_type value.
+ (supportable_widening_operation, vectorizable_type_promotion): New
+ function declarations.
+ * tree-vect-transform.c (vect_gen_widened_results_half): New function.
+ (vectorizable_type_promotion): New function.
+ (vect_transform_stmt): Call vectorizable_type_promotion.
+ * tree-vect-analyze.c (supportable_widening_operation): New function.
+ * tree-vect-patterns.c (vect_recog_dot_prod_pattern):
+ Add implementation.
+ * tree-vect-generic.c (expand_vector_operations_1): Consider correct
+ mode.
+
+ * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR):
+ (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes.
+ * tree-inline.c (estimate_num_insns_1): Add cases for above new
+ tree-codes.
+ * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
+ * expr.c (expand_expr_real_1): Likewise.
+ * optabs.c (optab_for_tree_code): Likewise.
+ (init_optabs): Initialize new optabs.
+ * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab,
+ vec_widen_smult_hi_optab, vec_widen_smult_lo_optab,
+ vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab,
+ vec_unpacku_lo_optab): Initialize new optabs.
+ * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo):
+ (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi,
+ OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New
+ optab indices.
+ (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab):
+ (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab):
+ (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab):
+ (vec_unpacku_lo_optab): New optabs.
+ * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi):
+ (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo):
+ (vec_widen_smult_hi, vec_widen_smult_lo): New.
+ * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR):
+ (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR):
+ (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New.
+
+ * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB):
+ (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH):
+ (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New.
+ (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New.
+ (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to
+ implement the unsigned unpacking patterns.
+ (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi):
+ (vec_unpacks_lo_v8hi): New signed unpacking patterns.
+ (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi):
+ (vec_unpacku_lo_v8hi): New unsigned unpacking patterns.
+ (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi):
+ (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi):
+ (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi):
+ (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening
+ multiplication patterns.
+
+ * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New.
+ * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN):
+ (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
+ * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New.
+ (rs6000_builtin_mul_widen_odd): New.
+ (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined.
+ (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined.
+ * tree-vectorizer.h (enum vect_relevant): New enum type.
+ (_stmt_vec_info): Field relevant chaned from bool to enum
+ vect_relevant.
+ (STMT_VINFO_RELEVANT_P): Updated.
+ (STMT_VINFO_RELEVANT): New.
+ * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT
+ instead of STMT_VINFO_RELEVANT_P.
+ * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p):
+ Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT,
+ and boolean variable with enum vect_relevant.
+ (vect_mark_stmts_to_be_vectorized): Likewise + update documentation.
+ * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
+ (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
+
+ 2006-11-08 Richard Henderson <rth@redhat.com>
+
+ * config/i386/sse.md (vec_widen_umult_hi_v8hi,
+ vec_widen_umult_lo_v8hi): New.
+ (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si,
+ vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New.
+
+ * config/i386/i386.c (ix86_expand_sse_unpack): New.
+ * config/i386/i386-protos.h (ix86_expand_sse_unpack): New.
+ * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi,
+ vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi,
+ vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi,
+ vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si,
+ vec_unpacks_lo_v4si): New.
+
+ 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-transform.c (vectorizable_type_demotion): New function.
+ (vect_transform_stmt): Add case for type_demotion_vec_info_type.
+ (vect_analyze_operations): Call vectorizable_type_demotion.
+ * tree-vectorizer.h (type_demotion_vec_info_type): New enum
+ stmt_vec_info_type value.
+ (vectorizable_type_demotion): New function declaration.
+ * tree-vect-generic.c (expand_vector_operations_1): Consider correct
+ mode.
+
+ * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes.
+ * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and
+ VEC_PACK_SAT_EXPR.
+ * tree-iniline.c (estimate_num_insns_1): Likewise.
+ * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
+ * optabs.c (optab_for_tree_code): Likewise.
+
+ * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode
+ compared against the predicate of the result is not 'mode' (the input
+ to the function) but a mode with half the size of 'mode'.
+ (init_optab): Initialize new optabs.
+ * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat):
+ New optab indices.
+ (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New
+ optabs.
+ * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab):
+ (vec_pack_usat_optab): Initialize new optabs.
+ * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New.
+ * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New.
+
+ 2006-11-08 Richard Henderson <rth@redehat.com>
+
+ * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si):
+ (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi):
+ (vec_interleave_highv8hi, vec_interleave_lowv8hi):
+ (vec_interleave_highv4si, vec_interleave_lowv4si):
+ (vec_interleave_highv2di, vec_interleave_lowv2di): New.
+
+ 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-transform.c (vectorizable_reduction): Support multiple
+ datatypes.
+ (vect_transform_stmt): Removed redundant code.
+
+ 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-transform.c (vectorizable_operation): Support multiple
+ datatypes.
+
+ 2006-11-08 Dorit Nuzman <dorit@il.ibm.com>
+
+ * tree-vect-transform.c (vect_align_data_ref): Removed.
+ (vect_create_data_ref_ptr): Added additional argument - ptr_incr.
+ Updated function documentation. Return the increment stmt in ptr_incr.
+ (bump_vector_ptr): New function.
+ (vect_get_vec_def_for_stmt_copy): New function.
+ (vect_finish_stmt_generation): Create a stmt_info to newly created
+ vector stmts.
+ (vect_setup_realignment): Call vect_create_data_ref_ptr with additional
+ argument.
+ (vectorizable_reduction, vectorizable_assignment): Not supported yet if
+ VF is greater than the number of elements that can fit in one vector
+ word.
+ (vectorizable_operation, vectorizable_condition): Likewise.
+ (vectorizable_store, vectorizable_load): Support the case that the VF
+ is greater than the number of elements that can fit in one vector word.
+ (vect_transform_loop): Don't fail in case of multiple data-types.
+ * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail
+ in case of multiple data-types; the smallest type determines the VF.
+ (vect_analyze_data_ref_dependence): Don't record datarefs as same_align
+ if they are of different sizes.
+ (vect_update_misalignment_for_peel): Compare misalignments in terms of
+ number of elements rather than number of bytes.
+ (vect_enhance_data_refs_alignment): Fix/Add dump printouts.
+ (vect_can_advance_ivs_p): Fix a dump printout
+
+2006-11-07 Eric Christopher <echristo@apple.com>
+
+ * libgcc2.c (__bswapdi2): Rename from bswapDI2.
+ (__bswapsi2): Ditto.
+ * libgcc2.h: Remove transformation of bswap routines.
+ * config/i386/i386.md (bswapsi2): New.
+ (bswapdi2): Ditto.
+
+2006-11-07 Jakub Jelinek <jakub@redhat.com>
+
+ * c-common.c (c_common_attributes): Add gnu_inline attribyte.
+ (handle_gnu_inline_attribute): New function.
+ * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute.
+ (merge_decls, start_decl, start_function): Likewise.
+ * doc/extend.texi: Document gnu_inline attribute.
+
+2006-11-07 Steve Ellcey <sje@cup.hp.com>
+
+ PR other/25028
+ * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi,
+ _fixunstfdi, and _floatditf
+
+2006-11-06 Anatoly Sokolov <aesok@post.ru>
+
+ * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove
+ prototype.
+ * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove.
+ (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out,
+ lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value
+ which start in an odd register.
+
+2006-11-07 Richard Sandiford <richard@codesourcery.com>
+
+ * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo.
+
+2006-11-07 Josh Conner <jconner@apple.com>
+
+ * doc/invoke.texi (fstrict-aliasing): Move implementation
+ details...
+ * doc/tree-ssa.texi (Alias analysis): ...here.
+
+2006-11-07 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/29610
+ * tree-cfgcleanup.c (cleanup_control_flow): Honor return value
+ of tree_purge_dead_eh_edges as it may free dominators.
+
+ * g++.dg/other/pr29610.C: New testcase.
+
+2006-11-07 David Ung <davidu@mips.com>
+
+ * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of
+ costs when optimizing for size.
+ (override_options): Use mips_rtx_cost_optimize_size table for cost
+ calculations.
+
+2006-11-07 Jie Zhang <jie.zhang@analog.com>
+
+ * gcc.c (process_command): Treat -b as normal switch if its argument
+ has no dash.
+
+2006-11-07 David Ung <davidu@mips.com>
+
+ * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the
+ list.
+
+2006-11-06 Eric Christopher <echristo@apple.com>
+
+ * config.gcc: Add x86_64-darwin host support.
+ * config.host: Ditto.
+ * config/i386/darwin64.h: New file.
+ * config/i386/t-darwin64: Ditto.
+
+2006-11-06 Janis Johnson <janis187@us.ibm.com>
+
+ * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists
+ and output-exists-not.
+
+2006-11-06 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR tree-opt/29439
+ * tree-vrp.c (vrp_int_const_binop): Use the correct tree when
+ checking for overflow.
+
2006-11-06 Jan van Dijk <jan@etpmod.phys.tue.nl>
* configure.ac: Fixed typo in case statement: :: changed to ;;
* config/arm/t-arm-coff: Likewise.
* config/arm/t-xscale-coff: Likewise.
* config/arm/t-wince-pe: Likewise.
-
+
2006-11-05 Kaz Kojima <kkojima@gcc.gnu.org>
* config/sh/lib1funcs-4-300.asm: Guard entire file with
(arm_override_options): Set arm_default_cpu.
2006-11-03 David Ung <davidu@mips.com>
-
+
* config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add
PROCESSOR_24KC and PROCESSOR_24KF.
* config/mips/mips.c (mips_cpu_info_table): Add processor names
* config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf.
* config/mips/24k.md: Remove references to 24k and replace with
uses of 24kc/24kf in the appropriate reservations.
- * doc/invoke.texi (MIPS Options): Updated.
-
+ * doc/invoke.texi (MIPS Options): Updated.
+
2006-11-03 J"orn Rennecke <joern.rennecke@st.com>
* config/sh/crt1.asm: Fix #ifdef indent.
2006-11-02 Carlos O'Donell <carlos@codesourcery.com>
* config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1.
- * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
- file_end_indicate_exec_stack.
- * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
+ * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call
+ file_end_indicate_exec_stack.
+ * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK):
Define as 0.
* lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section
for a non-executable stack.
* crti.asm: Likewise.
* crtn.asm: Likewise.
- * libunwind.S: Likewise.
+ * libunwind.S: Likewise.
2006-11-02 Ben Elliston <bje@au.ibm.com>
* toplev.c (compile_file): Call final_write_globals
even if there have been errors.
-
+
2006-10-31 Eric Christopher <echristo@apple.com>
Falk Hueffner <falk@debian.org>
2006-10-29 Daniel Berlin <dberlin@dberlin.org>
- * tree.h (tree_value_handle): Remove struct value_set declaration.
+ * tree.h (tree_value_handle): Remove struct value_set declaration.
Change value_set to bitmap_set.
* tree-pretty-print.c (dump_generic_node): Use has_stmt_ann.
* tree-vn.c (get_value_handle): Made inline and moved to
(compute_avail): Handle RETURN_EXPR.
(init_pre): Modify for bitmapped sets.
* tree-flow.h (has_stmt_ann): New function.
-
+
2006-10-29 Roger Sayle <roger@eyesopen.com>
* builtins.c (fold_builtin_floor): Check for the availability of
* config/i386/i386.c (output_387_ffreep): Create output from a
template string for !HAVE_AS_IX86_FFREEP.
-
+
2006-10-27 Eric Christopher <echristo@apple.com>
* config/darwin.c: Fix formatting and grammar.