]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2014-02-05 Richard Biener <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Feb 2014 10:28:26 +0000 (10:28 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Feb 2014 10:28:26 +0000 (10:28 +0000)
* 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

gcc/ChangeLog
gcc/tree-vect-data-refs.c
gcc/tree-vect-loop.c

index f609d3f28225eef31f4161bb4a319b17a17cc37a..7604ccf9b6919e5ba2cf3565443ea0a83b864929 100644 (file)
@@ -1,3 +1,10 @@
+2014-02-05  Richard Biener  <rguenther@suse.de>
+
+       * 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  <nickc@redhat.com>
 
        * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
index d018add0a969d7efab02814d8f0ae01b64322470..fa96be9e34bb159d94ad8b26b7882ed06388430d 100644 (file)
@@ -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;
 }
index eb7ecb60065837d4f0284f0dec97d6a2c68beba6..ab4d06fef33f735d42b2269df692fe1c9cb59237 100644 (file)
@@ -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;
     }