OSDN Git Service

* config/i386/i386.c (ix86_tune_features
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 19e47fc..142d6c2 100644 (file)
@@ -1,3 +1,276 @@
+2007-04-23  Mike Stump  <mrs@apple.com>
+
+       * config/i386/i386.c (ix86_tune_features
+       [X86_TUNE_DEEP_BRANCH_PREDICTION]: Prefer call over thunks on
+       nocona and core2.
+
+2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/i386.md (prefix_extra): New attribute.
+       (length): Add prefix_extra.
+
+       * onfig/i386/sse.md (sse2_movdqu): Set prefix_data16.
+       (sse2_movntv2di): Likewise.
+       (sse2_cvtps2dq): Likewise.
+       (sse2_cvtpd2pi): Likewise.
+       (sse2_cvttpd2pi): Likewise.
+       (*sse2_cvtpd2ps): Likewise.
+       (*add<mode>3): Likewise.
+       (sse2_ssadd<mode>3): Likewise.
+       (sse2_usadd<mode>3): Likewise.
+       (*sub<mode>3): Likewise.
+       (sse2_sssub<mode>3): Likewise.
+       (sse2_ussub<mode>3): Likewise.
+       (*mulv8hi3): Likewise.
+       (*smulv8hi3_highpart): Likewise.
+       (*umulv8hi3_highpart): Likewise.
+       (sse2_umulv2siv2di3): Likewise.
+       (sse2_pmaddwd): Likewise.
+       (ashr<mode>3): Likewise.
+       (lshr<mode>3): Likewise.
+       (ashl<mode>3): Likewise.
+       (sse2_ashlti3): Likewise.
+       (sse2_lshrti3): Likewise.
+       (*umaxv16qi3): Likewise.
+       (*smaxv8hi3): Likewise.
+       (*uminv16qi3): Likewise.
+       (*sminv8hi3): Likewise.
+       (sse2_eq<mode>3): Likewise.
+       (sse2_gt<mode>3): Likewise.
+       (*and<mode>3): Likewise.
+       (sse2_nand<mode>3): Likewise.
+       (*ior<mode>3): Likewise.
+       (*xor<mode>3): Likewise.
+       (sse2_packsswb): Likewise.
+       (sse2_packssdw): Likewise.
+       (sse2_packuswb): Likewise.
+       (sse2_punpckhbw): Likewise.
+       (sse2_punpcklbw): Likewise.
+       (sse2_punpckhwd): Likewise.
+       (sse2_punpcklwd): Likewise.
+       (sse2_punpckhdq): Likewise.
+       (sse2_punpckldq): Likewise.
+       (sse2_punpckhqdq): Likewise.
+       (sse2_punpcklqdq): Likewise.
+       (*sse2_pinsrw): Likewise.
+       (*sse2_pextrw): Likewise.
+       (sse2_pshufd_1): Likewise.
+       (sse2_uavgv16qi3): Likewise.
+       (sse2_uavgv8hi3): Likewise.
+       (sse2_psadbw): Likewise.
+       (sse2_pmovmskb): Likewise.
+       (*sse2_maskmovdqu): Likewise.
+       (*sse2_maskmovdqu_rex64): Likewise.
+       (sse4a_extrqi): Likewise.
+       (sse4a_extrq): Likewise.
+       (sse3_lddqu): Set prefix_rep.
+       (sse3_addsubv4sf3): Likewise.
+       (sse3_haddv4sf3): Likewise.
+       (sse3_hsubv4sf3): Likewise.
+       (sse_cvtss2si): Likewise.
+       (sse_cvtss2si_2): Likewise.
+       (sse_cvtss2siq): Likewise.
+       (sse_cvtss2siq_2): Likewise.
+       (sse_cvttss2si): Likewise.
+       (sse_cvttss2siq): Likewise.
+       (sse2_cvttps2dq): Likewise.
+       (sse3_movshdup): Likewise.
+       (sse3_movsldup): Likewise.
+       (sse2_cvtsd2si): Likewise.
+       (sse2_cvtsd2si_2): Likewise.
+       (sse2_cvtsd2siq): Likewise.
+       (sse2_cvtsd2siq_2): Likewise.
+       (sse2_cvttsd2si): Likewise.
+       (sse2_cvttsd2siq): Likewise.
+       (*sse2_cvtpd2dq): Likewise.
+       (*sse2_cvttpd2dq): Likewise.
+       (sse2_pshuflw_1): Likewise.
+       (sse2_pshufhw_1): Likewise.
+       (sse4a_insertqi): Likewise.
+       (sse4a_insertq): Likewise.
+       (ssse3_phaddwv8hi3): Set prefix_data16 and prefix_extra.
+       (ssse3_phadddv4si3): Likewise.
+       (ssse3_phaddswv8hi3): Likewise.
+       (ssse3_phsubwv8hi3): Likewise.
+       (ssse3_phsubdv4si3): Likewise.
+       (ssse3_phsubswv8hi3): Likewise.
+       (ssse3_pmaddubswv8hi3): Likewise.
+       (ssse3_pmulhrswv8hi3): Likewise.
+       (ssse3_pshufbv16qi3): Likewise.
+       (ssse3_psign<mode>3): Likewise.
+       (ssse3_palignrti): Likewise.
+       (abs<mode>2): Likewise.
+       (ssse3_phaddwv4hi3): Set prefix_extra.
+       (ssse3_phadddv2si3): Likewise.
+       (ssse3_phaddswv4hi3): Likewise.
+       (ssse3_phsubwv4hi3): Likewise.
+       (ssse3_phsubdv2si3): Likewise.
+       (ssse3_phsubswv4hi3): Likewise.
+       (ssse3_pmaddubswv4hi3): Likewise.
+       (ssse3_pmulhrswv4hi3): Likewise.
+       (ssse3_pshufbv8qi3): Likewise.
+       (ssse3_psign<mode>3): Likewise.
+       (ssse3_palignrdi): Likewise.
+       (abs<mode>2): Likewise.
+       (sse2_cvtdq2ps): Set mode to V4SF instead of V2DF.
+       (*vec_dupv2df): Set mode to V2DF instead of V4SF.
+       (sse2_pmovmskb): Set mode to SI instead of V2DF.
+
+2007-04-23  Nick Clifton  <nickc@redhat.com>
+
+       * params.def: Fix formatting of emacs local variables.
+
+2007-04-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/i386/sse.md (sse2_stored): Don't split to inter-unit
+       move if inter-unit move isn't allowed.
+       Don't split moving the first element of V2DI to DI to inter-unit
+       move if inter-unit move isn't allowed.
+
+2007-04-23  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-sink.c (execute_sink_code): Calculate CDI_DOMINATORS
+       and CDI_POST_DOMINATORS separately.
+
+2007-04-23  Nick Clifton  <nickc@redhat.com>
+
+       * c.opt (Wformat-contains-nul): Add warning attribute.
+
+2007-04-23  Jan Hubicka  <jh@suse.cz>
+
+       * function.c (init_function_start): Don't init line number info.
+       (expand_function_end): Update.
+       (reset_block_changes, record_block_change, finalize_block_changes,
+       check_block_change, free_block_changes): Kill.
+       * function.h (reset_block_changes, record_block_change,
+       finalize_block_changes, check_block_change, free_block_changes): Remove
+       prototypes.
+       (struct function): Remove ib_boundaries_block.
+       * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
+       Use curr_insn_locator to initialize locator.
+       (emit_line_note): Remove.
+       * cfgexpand.c (expand_gimple_cond_expr): Update.
+       (construct_exit_block): Likewise.
+       (tree_expand_cfg): Initialize/finalize locators.
+       * expr.c (expand_expr_real): Update.
+       * cfglayout.c (line_locators_locs, line_locators_lines,
+       file_locators_locs, file_locators_files): Remove.
+       (set_block_levels): Move to cfgexpand.c.
+       (insn_locators_initialize): Remove.
+       (pass_insn_locators_initialize): Remove.
+       (locations_locators_locs, locations_locators_vals): New static vars.
+       (curr_location, last_location, curr_block, last_block, curr_rtl_loc):
+       Likewise.
+       (insn_locators_alloc, insn_locators_finalize,
+       set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
+       New functions.
+       (locator_location): New.
+       (locator_line, locator_file): Rewrite.
+       * rtl.h (emit_line_note): Kill.
+       (insn_locators_alloc, insn_locators_finalize,
+       set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
+       Declare.
+       * tree-inline.c (initialize_cfun): Do not initialize
+       ib_boundaries_block.
+       * passes.c (pass_insn_locators_initialize): Remove.
+
+2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
+
+       PR middle-end/31448
+       * expr.c (reduce_to_bit_field_precision): Handle
+       CONST_INT rtx's.
+
+2007-04-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR tree-optimization/24659
+       * optabs.h (enum optab_index) [OTI_vec_unpacks_hi,
+       OTI_vec_unpacks_lo]: Update comment to mention floating point operands.
+       (vec_pack_trunc_optab): Rename from vec_pack_mod_optab.
+       * genopinit.c (optabs): Rename vec_pack_mod_optab
+       to vec_pack_trunc_optab.
+       * tree-vect-transform.c (vectorizable_type_demotion): Do not fail
+       early for scalar floating point operands for NOP_EXPR.
+       (vectorizable_type_promotion): Ditto.
+       * optabs.c (optab_for_tree_code) [VEC_PACK_TRUNC_EXPR]: Return
+       vec_pack_trunc_optab.
+       (expand_binop): Rename vec_float_trunc_optab to vec_pack_mod_optab.
+
+       * tree.def (VEC_PACK_TRUNC_EXPR): Rename from VEC_PACK_MOD_EXPR.
+       * tree-pretty-print.c (dump_generic_node) [VEC_PACK_TRUNC_EXPR]:
+       Rename from VEC_PACK_MOD_EXPR.
+       (op_prio) [VEC_PACK_TRUNC_EXPR]: Ditto.
+       * expr.c (expand_expr_real_1): Ditto.
+       * tree-inline.c (estimate_num_insns_1): Ditto.
+       * tree-vect-generic.c (expand_vector_operations_1): Ditto.
+
+       * config/i386/sse.md (vec_unpacks_hi_v4sf): New expander.
+       (vec_unpacks_lo_v4sf): Ditto.
+       (vec_pack_trunc_v2df): Ditto.
+       (vec_pack_trunc_v8hi): Rename from vec_pack_mod_v8hi.
+       (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
+       (vec_pack_trunc_v2di): Rename from vec_pack_mod_v2di.
+
+       * config/rs6000/altivec.md (vec_pack_trunc_v8hi): Rename from
+       vec_pack_mod_v8hi.
+       (vec_pack_trunc_v4si): Rename from vec_pack_mod_v4si.
+
+       * doc/c-tree.texi (Expression trees) [VEC_PACK_TRUNC_EXPR]:
+       Rename from VEC_PACK_MOD_EXPR.  This expression also represent
+       packing of floating point operands.
+       [VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR]: These expression also
+       represent unpacking of floating point operands.
+       * doc/md.texi (Standard Names) [vec_pack_trunc]: Update documentation.
+       [vec_unpacks_hi]: Ditto.
+       [vec_unpacks_lo]: Ditto.
+
+2007-04-22  Jan Hubicka  <jh@suse.cz>
+
+       * final.c (rest_of_handle_final): Call
+       targetm.asm_out.constructor/targetm.asm_out.destructor
+       * cgraphunit.c (cgraph_build_static_cdtor): Don't do it here; set
+       proper priority via decl_*_priority_insert.
+       * c-common.c (c_expand_body): Likewise.
+
+2007-04-22  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/29789
+       * tree-ssa-loop-im.c (stmt_cost): Adjust cost of shifts.
+       (rewrite_reciprocal): New helper split out from
+       determine_invariantness_stmt.
+       (rewrite_bittest): Likewise.
+       (determine_invariantness_stmt): Rewrite (A >> B) & 1 to
+       A & (1 << B) if (1 << B) is loop invariant but (A >> B)
+       is not.
+
+2007-04-22  Revital Eres  <eres@il.ibm.com>
+
+       * loop-unroll.c (var_to_expand): New field to support also
+       insns of the form x = something + x.
+       (analyze_insn_to_expand_var): Use it.
+       (expand_var_during_unrolling): Likewise.
+
+2007-04-21  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * predict.c: Include pointer-set.h.
+       (bb_predictions): New variable.
+       (tree_predicted_by_p, tree_predict_edge,
+       remove_predictions_associated_with_edge): Use bb_predictions map
+       instead of bb->predictions.
+       (clear_bb_predictions, assert_is_empty): New functions.
+       (combine_predictions_for_bb): Use bb_predictions map.  Call
+       clear_bb_predictions.
+       (tree_estimate_probability): Create and free bb_predictions map.
+       * Makefile.in (predict.o): Add pointer-set.h dependency.
+       * basic-block.h (struct basic_block_def): Remove predictions
+       field.
+       * cfgrtl.c (rtl_verify_flow_info_1): Do not check bb->predictions.
+
+2007-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/31480
+       * config/sh/sh.md (length): Check if prev_nonnote_insn (insn)
+       is null.
+
 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
 
        * timevar.c (timevar_print): Change reference of --disable-checking to