Commit 2c6a05b1 by Bin Cheng Committed by Bin Cheng

tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip unnecessary data…

tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip unnecessary data dependence check after visited store stmt.

	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip
	unnecessary data dependence check after visited store stmt.

From-SVN: r241696
parent 0b56e9ad
2016-10-31 Bin Cheng <bin.cheng@arm.com>
* tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Skip
unnecessary data dependence check after visited store stmt.
2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2016-10-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/71915 PR tree-optimization/71915
...@@ -583,6 +583,7 @@ vect_slp_analyze_node_dependences (slp_instance instance, slp_tree node, ...@@ -583,6 +583,7 @@ vect_slp_analyze_node_dependences (slp_instance instance, slp_tree node,
if (!dr_b) if (!dr_b)
return false; return false;
bool dependent = false;
/* If we run into a store of this same instance (we've just /* If we run into a store of this same instance (we've just
marked those) then delay dependence checking until we run marked those) then delay dependence checking until we run
into the last store because this is where it will have into the last store because this is where it will have
...@@ -599,22 +600,21 @@ vect_slp_analyze_node_dependences (slp_instance instance, slp_tree node, ...@@ -599,22 +600,21 @@ vect_slp_analyze_node_dependences (slp_instance instance, slp_tree node,
= STMT_VINFO_DATA_REF (vinfo_for_stmt (store)); = STMT_VINFO_DATA_REF (vinfo_for_stmt (store));
ddr_p ddr = initialize_data_dependence_relation ddr_p ddr = initialize_data_dependence_relation
(dr_a, store_dr, vNULL); (dr_a, store_dr, vNULL);
if (vect_slp_analyze_data_ref_dependence (ddr)) dependent = vect_slp_analyze_data_ref_dependence (ddr);
{
free_dependence_relation (ddr);
return false;
}
free_dependence_relation (ddr); free_dependence_relation (ddr);
if (dependent)
break;
} }
} }
else
ddr_p ddr = initialize_data_dependence_relation (dr_a, dr_b, vNULL);
if (vect_slp_analyze_data_ref_dependence (ddr))
{ {
ddr_p ddr = initialize_data_dependence_relation (dr_a,
dr_b, vNULL);
dependent = vect_slp_analyze_data_ref_dependence (ddr);
free_dependence_relation (ddr); free_dependence_relation (ddr);
return false;
} }
free_dependence_relation (ddr); if (dependent)
return false;
} }
} }
return true; return true;
......
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