Commit f47cda24 by Richard Biener Committed by Richard Biener

re PR tree-optimization/68861 (FAIL: libgomp.fortran/vla8.f90 -O3 -g execution test)

2015-12-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68861
	* tree-vect-slp.c (vect_build_slp_tree): Properly handle
	duplicate stmts when applying swapping to stmts.

From-SVN: r231689
parent 36e24655
2015-12-16 Richard Biener <rguenther@suse.de>
PR tree-optimization/68861
* tree-vect-slp.c (vect_build_slp_tree): Properly handle
duplicate stmts when applying swapping to stmts.
2015-12-16 Kirill Yukhin <kirill.yukhin@intel.com>
* config/i386/i386-c.c (ix86_target_macros_internal): Remove
......@@ -1049,11 +1049,29 @@ vect_build_slp_tree (vec_info *vinfo,
if we end up building the operand from scalars as
we'll continue to process swapped operand two. */
for (j = 0; j < group_size; ++j)
if (!matches[j])
{
gimple *stmt = SLP_TREE_SCALAR_STMTS (*node)[j];
gimple_set_plf (stmt, GF_PLF_1, false);
}
for (j = 0; j < group_size; ++j)
{
gimple *stmt = SLP_TREE_SCALAR_STMTS (*node)[j];
if (!matches[j])
{
/* Avoid swapping operands twice. */
if (gimple_plf (stmt, GF_PLF_1))
continue;
swap_ssa_operands (stmt, gimple_assign_rhs1_ptr (stmt),
gimple_assign_rhs2_ptr (stmt));
gimple_set_plf (stmt, GF_PLF_1, true);
}
}
/* Verify we swap all duplicates or none. */
if (flag_checking)
for (j = 0; j < group_size; ++j)
{
gimple *stmt = SLP_TREE_SCALAR_STMTS (*node)[j];
swap_ssa_operands (stmt, gimple_assign_rhs1_ptr (stmt),
gimple_assign_rhs2_ptr (stmt));
gcc_assert (gimple_plf (stmt, GF_PLF_1) == ! matches[j]);
}
/* If we have all children of child built up from scalars then
......
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