Commit 22a8be9e by Sebastian Pop Committed by Sebastian Pop

Improve vectorization diagnostic: loop contains function calls.

2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>

	PR middle-end/43436
	* tree-vect-data-refs.c (vect_analyze_data_refs): When
	compute_data_dependences_for_loop returns false, early exit
	and output an extra diagnostic for the failed data reference
	analysis.

From-SVN: r157800
parent 58adb739
2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/43436
* tree-vect-data-refs.c (vect_analyze_data_refs): When
compute_data_dependences_for_loop returns false, early exit
and output an extra diagnostic for the failed data reference
analysis.
2010-03-29 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43560
......
......@@ -1860,6 +1860,7 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo)
VEC (data_reference_p, heap) *datarefs;
struct data_reference *dr;
tree scalar_type;
bool res;
if (vect_print_dump_info (REPORT_DETAILS))
fprintf (vect_dump, "=== vect_analyze_data_refs ===\n");
......@@ -1867,17 +1868,34 @@ vect_analyze_data_refs (loop_vec_info loop_vinfo, bb_vec_info bb_vinfo)
if (loop_vinfo)
{
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
{
bb = BB_VINFO_BB (bb_vinfo);
compute_data_dependences_for_bb (bb, true,
&BB_VINFO_DATAREFS (bb_vinfo),
&BB_VINFO_DDRS (bb_vinfo));
res = compute_data_dependences_for_bb (bb, true,
&BB_VINFO_DATAREFS (bb_vinfo),
&BB_VINFO_DDRS (bb_vinfo));
if (!res)
{
if (vect_print_dump_info (REPORT_UNVECTORIZED_LOCATIONS))
fprintf (vect_dump, "not vectorized: basic block contains function"
" calls or data references that cannot be analyzed");
return false;
}
datarefs = BB_VINFO_DATAREFS (bb_vinfo);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment