Issues with alias list pruning for uncounted loops was found to cause
as-of-yet unresolved issues in the execution of SpecV6.  Disable this
while a reduced testcase is developed and a solution implemented.

Test derived from "omp_get_partition_place_nums" from libgomp "icv.c":

unsigned len = 8;

void
alias_fail (int n[8])
{
  unsigned int i;
  for (i = 0; i < len; i++)
    *n++ = i;
}

gcc/ChangeLog:

        * tree-vect-data-refs.cc (vect_prune_runtime_alias_test_list):
        Reject when !operand_equal_p for any data ref pair.
---
 gcc/tree-vect-data-refs.cc | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc
index afdb44aedda..0c87973fc63 100644
--- a/gcc/tree-vect-data-refs.cc
+++ b/gcc/tree-vect-data-refs.cc
@@ -4327,7 +4327,13 @@ vect_prune_runtime_alias_test_list (loop_vec_info 
loop_vinfo)
        {
          if (!operand_equal_p (DR_STEP (dr_info_a->dr),
                                DR_STEP (dr_info_b->dr), 0))
-           length_factor = scalar_loop_iters;
+           {
+             length_factor = scalar_loop_iters;
+             if (TREE_CODE (length_factor) == SCEV_NOT_KNOWN)
+               return opt_result::failure_at (vect_location,
+                                              "Unsupported alias check on"
+                                              " uncounted loop\n");
+           }
          else
            length_factor = size_int (vect_factor);
          segment_length_a = vect_vfa_segment_size (dr_info_a, length_factor);
-- 
2.43.0

Reply via email to