X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=78798b24fa201e4806d4f0363f94343232a6c852;hb=c83f795dee4fcaa818e669cb710121d95dddba8e;hp=fcc7ce3ec7c377a7cbae09d7a15a8501dca33ae2;hpb=9fbc4e9e16c6ffd0b88fedb03a0b4193227a856a;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fcc7ce3ec7c..78798b24fa2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,706 @@ +2006-11-13 H.J. Lu + Zdenek Dvorak + + PR tree-optimization/29680 + * tree-ssa-operands.c (access_can_touch_variable): Revert fix for + PR 14784. + +2006-11-12 Jason Merrill + Andrew Pinski + + 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 + + * 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 + + * fold-const.c (negate_expr_p) : Correct/refine + condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING + && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations. + (fold_negate_expr) : Likewise. + +2006-11-12 Daniel Berlin + + 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 + Roger Sayle + + PR rtl-optimization/29797 + * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on + BITS_BIG_ENDIAN targets. + +2006-11-12 Kaveh R. Ghazi + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + PR tree-optimization/13827 + * fold-const.c (fold_binary) : Fold (X&C) op (Y&C) + as ((X^Y)&C) op 0. + +2006-11-12 Zdenek Dvorak + + * 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 + + * except.c (sjlj_emit_function_enter): Remove unused variable. + +2006-11-11 Roger Sayle + + * 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) : Ensure that TYPE_SIZE + has type bitsizetype and TYPE_SIZE_UNIT has type sizetype. + +2006-11-11 Andrew Pinski + + 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 + + Revert + 2006-11-11 Jie Zhang + * 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 + + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__ + and __BFIN__. + +2006-11-11 Jan Hubicka + + * 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 + + * tree-pretty-print.c (dump_generic_node): Print sign of Inf. + +2006-11-11 Jan Hubicka + + * predict.c (predict_loops): Kill RTL variant. + +2006-11-11 Jan Hubicka + + * 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 + + * 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 + + * 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 + + 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 + + * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO. + (NO_PROFILE_COUNTERS): Define as 1. + +2006-11-10 Roger Sayle + + * fold-const.c (operand_equal_p) : + Don't check for TREE_CONSTANT_OVERFLOW when comparing constants. + +2006-11-10 Peter Bergner + + * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER. + +2006-11-10 Kaveh R. Ghazi + + * 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 + + * 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 + + * 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 + + * final.c (final): Walk from first instruction. + * cfglayout.c (insn_locators_initialize): Remove line number notes. + +2006-11-10 Uros Bizjak + + 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 + + PR middle-end/29335 + * builtins.c (do_mpfr_arg3): New. + (fold_builtin_1): Handle builtins fma, fmin and fmax. + +2006-11-09 Eric Christopher + + 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 + + * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode + routines for integer division. + +2006-11-09 Daniel Jacobowitz + + * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete. + +2006-11-09 Serge Belyshev + + PR middle-end/29726 + * fold-const.c (fold_binary) : Fix typo in variable name. + +2006-11-09 Andreas Krebbel + + * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling + simplify_subreg with BLKmode outer mode. + +2006-11-08 Brooks Moses + + * doc/invoke.texi: Minor formatting fixes in option lists. + +2006-11-08 Zdenek Dvorak + + 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 + + * tree-pretty-print.c (dump_generic_node) : Use + HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer. + +2006-11-08 Roger Sayle + + * 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) : Use set_rhs to modify + the condition after calling fold_binary. + * fold-const.c (fold_inf_compare): Remove in_gimple_form check. + (fold_binary) : Likewise. + * builtins.c (fold_builtin_isascii): Likewise. + (fold_builtin_isdigit): Likewise. + +2006-11-08 Carlos O'Donell + + * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE. + * configure: Regenerate. + +2006-11-08 Dorit Nuzman + + * 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 + + * 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 + + * 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 + + * 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 + + * tree-vect-transform.c (vectorizable_reduction): Support multiple + datatypes. + (vect_transform_stmt): Removed redundant code. + + 2006-11-08 Dorit Nuzman + + * tree-vect-transform.c (vectorizable_operation): Support multiple + datatypes. + + 2006-11-08 Dorit Nuzman + + * 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 + + * 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 + + * 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 + + PR other/25028 + * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi, + _fixunstfdi, and _floatditf + +2006-11-06 Anatoly Sokolov + + * 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 + + * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo. + +2006-11-07 Josh Conner + + * doc/invoke.texi (fstrict-aliasing): Move implementation + details... + * doc/tree-ssa.texi (Alias analysis): ...here. + +2006-11-07 Richard Guenther + + 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 + + * 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 + + * gcc.c (process_command): Treat -b as normal switch if its argument + has no dash. + +2006-11-07 David Ung + + * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the + list. + +2006-11-06 Eric Christopher + + * 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 + + * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists + and output-exists-not. + 2006-11-06 Andrew Pinski PR tree-opt/29439 @@ -45,7 +748,7 @@ * config/arm/t-arm-coff: Likewise. * config/arm/t-xscale-coff: Likewise. * config/arm/t-wince-pe: Likewise. - + 2006-11-05 Kaz Kojima * config/sh/lib1funcs-4-300.asm: Guard entire file with @@ -136,7 +839,7 @@ (arm_override_options): Set arm_default_cpu. 2006-11-03 David Ung - + * 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 @@ -145,8 +848,8 @@ * 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 * config/sh/crt1.asm: Fix #ifdef indent. @@ -247,15 +950,15 @@ 2006-11-02 Carlos O'Donell * 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 @@ -468,7 +1171,7 @@ * toplev.c (compile_file): Call final_write_globals even if there have been errors. - + 2006-10-31 Eric Christopher Falk Hueffner @@ -667,7 +1370,7 @@ 2006-10-29 Daniel Berlin - * 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 @@ -736,7 +1439,7 @@ (compute_avail): Handle RETURN_EXPR. (init_pre): Modify for bitmapped sets. * tree-flow.h (has_stmt_ann): New function. - + 2006-10-29 Roger Sayle * builtins.c (fold_builtin_floor): Check for the availability of @@ -989,7 +1692,7 @@ * config/i386/i386.c (output_387_ffreep): Create output from a template string for !HAVE_AS_IX86_FFREEP. - + 2006-10-27 Eric Christopher * config/darwin.c: Fix formatting and grammar.