diff options
author | Richard Biener <rguenther@suse.de> | 2021-11-26 08:50:24 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-11-29 09:20:09 +0100 |
commit | 5e5f880d0452ef2cffb94f4a686d56833c9f4215 (patch) | |
tree | e854699843d73ae990e574fef77f2ad33d459d70 /gcc | |
parent | 3e15df63ca4ca793b2418640b715b8195d2a5474 (diff) | |
download | gcc-5e5f880d0452ef2cffb94f4a686d56833c9f4215.zip gcc-5e5f880d0452ef2cffb94f4a686d56833c9f4215.tar.gz gcc-5e5f880d0452ef2cffb94f4a686d56833c9f4215.tar.bz2 |
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/gimple-predicate-analysis.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/gimple-predicate-analysis.cc b/gcc/gimple-predicate-analysis.cc index 6dde020..da6adc9 100644 --- a/gcc/gimple-predicate-analysis.cc +++ b/gcc/gimple-predicate-analysis.cc @@ -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; } |