mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-27 05:44:15 +08:00
tree-optimization/114057 - handle BB reduction remain defs as LIVE
The following makes sure to record the scalars we add to the BB reduction vectorization result as scalar uses for the purpose of computing live lanes. This restores vectorization in the bondfree.c TU of 435.gromacs. PR tree-optimization/114057 * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Mark BB reduction remain defs as scalar uses.
This commit is contained in:
parent
aac30f8416
commit
0b02da5b99
@ -6646,8 +6646,14 @@ vect_bb_slp_mark_live_stmts (bb_vec_info bb_vinfo)
|
||||
auto_vec<slp_tree> worklist;
|
||||
|
||||
for (slp_instance instance : bb_vinfo->slp_instances)
|
||||
if (!visited.add (SLP_INSTANCE_TREE (instance)))
|
||||
worklist.safe_push (SLP_INSTANCE_TREE (instance));
|
||||
{
|
||||
if (SLP_INSTANCE_KIND (instance) == slp_inst_kind_bb_reduc)
|
||||
for (tree op : SLP_INSTANCE_REMAIN_DEFS (instance))
|
||||
if (TREE_CODE (op) == SSA_NAME)
|
||||
scalar_use_map.put (op, 1);
|
||||
if (!visited.add (SLP_INSTANCE_TREE (instance)))
|
||||
worklist.safe_push (SLP_INSTANCE_TREE (instance));
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
@ -6665,7 +6671,8 @@ vect_bb_slp_mark_live_stmts (bb_vec_info bb_vinfo)
|
||||
if (child && !visited.add (child))
|
||||
worklist.safe_push (child);
|
||||
}
|
||||
} while (!worklist.is_empty ());
|
||||
}
|
||||
while (!worklist.is_empty ());
|
||||
|
||||
visited.empty ();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user