This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/43436] Missed vectorization: "unhandled data-ref"
- From: "irar at il dot ibm dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Mar 2010 18:05:52 -0000
- Subject: [Bug tree-optimization/43436] Missed vectorization: "unhandled data-ref"
- References: <bug-43436-7780@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from irar at il dot ibm dot com 2010-03-28 18:05 -------
(In reply to comment #4)
> What about fixing the diagnostic message like this:
>
It would be nice to do the same for SLP (compute_data_dependences_for_bb) for
completeness.
Thanks,
Ira
> diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
> index 37ae9b5..44248b3 100644
> --- a/gcc/tree-vect-data-refs.c
> +++ b/gcc/tree-vect-data-refs.c
> @@ -1866,10 +1866,21 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo,
> bb_vec_info bb_vinfo)
>
> if (loop_vinfo)
> {
> + bool res;
> +
> loop = LOOP_VINFO_LOOP (loop_vinfo);
> - compute_data_dependences_for_loop (loop, true,
> - &LOOP_VINFO_DATAREFS (loop_vinfo),
> - &LOOP_VINFO_DDRS (loop_vinfo));
> + res = compute_data_dependences_for_loop
> + (loop, true, &LOOP_VINFO_DATAREFS (loop_vinfo),
> + &LOOP_VINFO_DDRS (loop_vinfo));
> +
> + if (!res)
> + {
> + if (vect_print_dump_info (REPORT_UNVECTORIZED_LOCATIONS))
> + fprintf (vect_dump, "not vectorized: loop contains function calls"
> + " or data references that cannot be analyzed");
> + return false;
> + }
> +
> datarefs = LOOP_VINFO_DATAREFS (loop_vinfo);
> }
> else
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43436