aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-11-26 08:50:24 +0100
committerRichard Biener <rguenther@suse.de>2021-11-29 09:20:09 +0100
commit5e5f880d0452ef2cffb94f4a686d56833c9f4215 (patch)
treee854699843d73ae990e574fef77f2ad33d459d70 /gcc
parent3e15df63ca4ca793b2418640b715b8195d2a5474 (diff)
downloadgcc-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.cc8
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;
}