From: rguenth Date: Wed, 5 Feb 2014 10:28:26 +0000 (+0000) Subject: 2014-02-05 Richard Biener X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1c7f4889a6eda09fbf61b05eac80ebabd35ce388;p=thirdparty%2Fgcc.git 2014-02-05 Richard Biener * tree-vect-loop.c (vect_analyze_loop_2): Be more informative when not vectorizing because of too many alias checks. * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207499 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f609d3f28225..7604ccf9b691 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-02-05 Richard Biener + + * tree-vect-loop.c (vect_analyze_loop_2): Be more informative + when not vectorizing because of too many alias checks. + * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): + Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION. + 2014-02-05 Nick Clifton * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c index d018add0a969..fa96be9e34bb 100644 --- a/gcc/tree-vect-data-refs.c +++ b/gcc/tree-vect-data-refs.c @@ -2901,6 +2901,24 @@ vect_prune_runtime_alias_test_list (loop_vec_info loop_vinfo) && diff - (HOST_WIDE_INT) TREE_INT_CST_LOW (dr_a1->seg_len) < min_seg_len_b)) { + if (dump_enabled_p ()) + { + dump_printf_loc (MSG_NOTE, vect_location, + "merging ranges for "); + dump_generic_expr (MSG_NOTE, TDF_SLIM, + DR_REF (dr_a1->dr)); + dump_printf (MSG_NOTE, ", "); + dump_generic_expr (MSG_NOTE, TDF_SLIM, + DR_REF (dr_b1->dr)); + dump_printf (MSG_NOTE, " and "); + dump_generic_expr (MSG_NOTE, TDF_SLIM, + DR_REF (dr_a2->dr)); + dump_printf (MSG_NOTE, ", "); + dump_generic_expr (MSG_NOTE, TDF_SLIM, + DR_REF (dr_b2->dr)); + dump_printf (MSG_NOTE, "\n"); + } + dr_a1->seg_len = size_binop (PLUS_EXPR, dr_a2->seg_len, size_int (diff)); comp_alias_ddrs.ordered_remove (i--); @@ -2908,18 +2926,12 @@ vect_prune_runtime_alias_test_list (loop_vec_info loop_vinfo) } } + dump_printf_loc (MSG_NOTE, vect_location, + "improved number of alias checks from %d to %d\n", + may_alias_ddrs.length (), comp_alias_ddrs.length ()); if ((int) comp_alias_ddrs.length () > PARAM_VALUE (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS)) - { - if (dump_enabled_p ()) - { - dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, - "disable versioning for alias - max number of " - "generated checks exceeded.\n"); - } - - return false; - } + return false; return true; } diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index eb7ecb600658..ab4d06fef33f 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -1723,8 +1723,10 @@ vect_analyze_loop_2 (loop_vec_info loop_vinfo) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, - "too long list of versioning for alias " - "run-time tests.\n"); + "number of versioning for alias " + "run-time tests exceeds %d " + "(--param vect-max-version-for-alias-checks)\n", + PARAM_VALUE (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS)); return false; }