-/* Return TRUE if DDR_NEW is already found in MAY_ALIAS_DDRS list. */
-
-static bool
-vect_is_duplicate_ddr (VEC (ddr_p, heap) * may_alias_ddrs, ddr_p ddr_new)
-{
- unsigned i;
- ddr_p ddr;
-
- for (i = 0; VEC_iterate (ddr_p, may_alias_ddrs, i, ddr); i++)
- {
- tree dref_A_i, dref_B_i, dref_A_j, dref_B_j;
-
- dref_A_i = DR_REF (DDR_A (ddr));
- dref_B_i = DR_REF (DDR_B (ddr));
- dref_A_j = DR_REF (DDR_A (ddr_new));
- dref_B_j = DR_REF (DDR_B (ddr_new));
-
- if ((operand_equal_p (dref_A_i, dref_A_j, 0)
- && operand_equal_p (dref_B_i, dref_B_j, 0))
- || (operand_equal_p (dref_A_i, dref_B_j, 0)
- && operand_equal_p (dref_B_i, dref_A_j, 0)))
- {
- if (vect_print_dump_info (REPORT_DR_DETAILS))
- {
- fprintf (vect_dump, "found same pair of data references ");
- print_generic_expr (vect_dump, dref_A_i, TDF_SLIM);
- fprintf (vect_dump, " and ");
- print_generic_expr (vect_dump, dref_B_i, TDF_SLIM);
- }
- return true;
- }
- }
- return false;
-}
-
-/* Save DDR in LOOP_VINFO list of ddrs that may alias and need to be
- tested at run-time. Returns false if number of run-time checks
- inserted by vectorizer is greater than maximum defined by
- PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS. */
-static bool
-vect_mark_for_runtime_alias_test (ddr_p ddr, loop_vec_info loop_vinfo)
-{
- struct loop *loop = LOOP_VINFO_LOOP (loop_vinfo);
-
- if (vect_print_dump_info (REPORT_DR_DETAILS))
- {
- fprintf (vect_dump, "mark for run-time aliasing test between ");
- print_generic_expr (vect_dump, DR_REF (DDR_A (ddr)), TDF_SLIM);
- fprintf (vect_dump, " and ");
- print_generic_expr (vect_dump, DR_REF (DDR_B (ddr)), TDF_SLIM);
- }
-
- /* FORNOW: We don't support versioning with outer-loop vectorization. */
- if (loop->inner)
- {
- if (vect_print_dump_info (REPORT_DR_DETAILS))
- fprintf (vect_dump, "versioning not yet supported for outer-loops.");
- return false;
- }
-
- /* Do not add to the list duplicate ddrs. */
- if (vect_is_duplicate_ddr (LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo), ddr))
- return true;
-
- if (VEC_length (ddr_p, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo))
- >= (unsigned) PARAM_VALUE (PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS))
- {
- if (vect_print_dump_info (REPORT_DR_DETAILS))
- {
- fprintf (vect_dump,
- "disable versioning for alias - max number of generated "
- "checks exceeded.");
- }
-
- VEC_truncate (ddr_p, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo), 0);
-
- return false;
- }
- VEC_safe_push (ddr_p, heap, LOOP_VINFO_MAY_ALIAS_DDRS (loop_vinfo), ddr);
- return true;
-}
-