From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1666) id 6174C3885C16; Mon, 29 Nov 2021 08:20:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6174C3885C16 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Richard Biener To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-5571] Restore can_be_invalidated_p semantics to before refactoring X-Act-Checkin: gcc X-Git-Author: Richard Biener X-Git-Refname: refs/heads/master X-Git-Oldrev: 3e15df63ca4ca793b2418640b715b8195d2a5474 X-Git-Newrev: 5e5f880d0452ef2cffb94f4a686d56833c9f4215 Message-Id: <20211129082020.6174C3885C16@sourceware.org> Date: Mon, 29 Nov 2021 08:20:20 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 29 Nov 2021 08:20:20 -0000 https://gcc.gnu.org/g:5e5f880d0452ef2cffb94f4a686d56833c9f4215 commit r12-5571-g5e5f880d0452ef2cffb94f4a686d56833c9f4215 Author: Richard Biener Date: Fri Nov 26 08:50:24 2021 +0100 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 * gimple-predicate-analysis.cc (can_be_invalidated_p): Restore semantics to the one before the split from tree-ssa-uninit.c. Diff: --- gcc/gimple-predicate-analysis.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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; }