Restore can_be_invalidated_p semantics to before refactoring

This restores the semantics of can_be_invalidated_p to the original
semantics of the function this was split out from tree-ssa-uninit.c.
The current semantics only ever look at the first predicate which
cannot be correct.

2021-11-26  Richard Biener  <rguenther@suse.de>

	* gimple-predicate-analysis.cc (can_be_invalidated_p):
	Restore semantics to the one before the split from
	tree-ssa-uninit.c.
This commit is contained in:
Richard Biener 2021-11-26 08:50:24 +01:00
parent 3e15df63ca
commit 5e5f880d04
1 changed files with 5 additions and 3 deletions

View File

@ -1199,14 +1199,16 @@ can_be_invalidated_p (const pred_chain_union &preds, const pred_chain &guard)
for (unsigned i = 0; i < preds.length (); ++i)
{
const pred_chain &chain = preds[i];
for (unsigned j = 0; j < chain.length (); ++j)
unsigned j;
for (j = 0; j < chain.length (); ++j)
if (can_be_invalidated_p (chain[j], guard))
return true;
break;
/* If we were unable to invalidate any predicate in C, then there
is a viable path from entry to the PHI where the PHI takes
an interesting value and continues to a use of the PHI. */
return false;
if (j == chain.length ())
return false;
}
return true;
}