Message ID | 37545rsn-6682-46p8-8986-7o7q6576n1sr@fhfr.qr |
---|---|
State | Committed |
Commit | 5e5f880d0452ef2cffb94f4a686d56833c9f4215 |
Headers | show |
Series | Restore can_be_invalidated_p semantics to before refactoring | expand |
On 11/26/2021 12:53 AM, Richard Biener via Gcc-patches wrote: > 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. > > Bootstrapped and tested on x86_64-unknown-linux-gnu, OK? > > Thanks, > Richard. > > 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. OK. Sorry this got missed in the review of splitting out those bits. jeff
diff --git a/gcc/gimple-predicate-analysis.cc b/gcc/gimple-predicate-analysis.cc index 6dde0203841..da6adc9a3e2 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; }