From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id D92173857C4B for ; Fri, 9 Sep 2022 09:47:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D92173857C4B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out2.suse.de (Postfix) with ESMTP id AED111F8B6 for ; Fri, 9 Sep 2022 09:47:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1662716859; h=from:from:reply-to:date:date:to:to:cc:mime-version:mime-version: content-type:content-type; bh=QyXD2OC4jCshGmU6IteF+rv0UdLDale05sxBpPVhFs0=; b=Pw5AT6I+PVG138iwQea5a3lq1iVVfAW6CQUbalenoulY/kTwAVZLICwpw0V4vjNGdpBXuG pWQPkbU4YHND7/UvQiidY6mWiAgdIrULkhNqddb1CQUr8iu0pfklA3Jku2kn+bvT2iUWBk YpkGJjkmbpa6aduiP549RgiG83XS0QA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1662716859; h=from:from:reply-to:date:date:to:to:cc:mime-version:mime-version: content-type:content-type; bh=QyXD2OC4jCshGmU6IteF+rv0UdLDale05sxBpPVhFs0=; b=KT/nKMcL0V/R2RpGDRYKjNqsdMRt3HBioA46hYdN9qtBE4UJOhBLJ/2MixUtMLFf/YUL1B PHHwEpO1rQCHlQCQ== Received: from wotan.suse.de (wotan.suse.de [10.160.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id A9E6A2C141 for ; Fri, 9 Sep 2022 09:47:39 +0000 (UTC) Date: Fri, 9 Sep 2022 09:47:39 +0000 (UTC) From: Richard Biener To: gcc-patches@gcc.gnu.org Subject: [PATCH] tree-optimization/106881 - fix simple_control_dep_chain part User-Agent: Alpine 2.22 (LSU 394 2020-01-19) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,MISSING_MID,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Message-ID: <20220909094739.2YoDOndm_M13zm6b9HV0oEsHP9LrH-6iHOWIc__WE0A@z> This adjusts simple_control_dep_chain in the same way I adjusted compute_control_dep_chain_pdom to avoid adding fallthru edges to the predicate chain. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. PR tree-optimization/106881 * gimple-predicate-analysis.cc (simple_control_dep_chain): Add only non-fallthru edges and avoid the same set of edges as compute_control_dep_chain_pdom does. --- gcc/gimple-predicate-analysis.cc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gcc/gimple-predicate-analysis.cc b/gcc/gimple-predicate-analysis.cc index 910ab97a29e..bc9ed847267 100644 --- a/gcc/gimple-predicate-analysis.cc +++ b/gcc/gimple-predicate-analysis.cc @@ -926,10 +926,14 @@ simple_control_dep_chain (vec& chain, basic_block from, basic_block to) { basic_block dest = src; src = get_immediate_dominator (CDI_DOMINATORS, src); - edge pred_e; - if (single_pred_p (dest) - && (pred_e = find_edge (src, dest))) - chain.safe_push (pred_e); + if (single_pred_p (dest)) + { + edge pred_e = single_pred_edge (dest); + gcc_assert (pred_e->src == src); + if (!(pred_e->flags & ((EDGE_FAKE | EDGE_ABNORMAL | EDGE_DFS_BACK))) + && !single_succ_p (src)) + chain.safe_push (pred_e); + } } } -- 2.35.3