From patchwork Wed Apr 8 15:23:21 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xi Ruoyao X-Patchwork-Id: 132818 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id EC8024BA2E3B for ; Wed, 8 Apr 2026 15:25:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EC8024BA2E3B Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=xry111.site header.i=@xry111.site header.a=rsa-sha256 header.s=default header.b=JaXHpcCe X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from xry111.site (xry111.site [89.208.246.23]) by sourceware.org (Postfix) with ESMTPS id 33F2B4BA2E16 for ; Wed, 8 Apr 2026 15:24:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 33F2B4BA2E16 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=xry111.site Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=xry111.site ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 33F2B4BA2E16 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=89.208.246.23 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775661864; cv=none; b=xPp5IL+0Ltx2Awe6LPh3dRRWCGg0vPgQdKSPjUHgt4LC7aJwZR5USVG1zYIozA9vReAZhTQ/CSA9tZVyMNvq3ZimV+d2VqTwC9iBl9dW9y8HknPxCR3k5U+uzDhaDa51U9WCQ2+R33TQ/kzYmjgMkgKaHLq/26VhZrNltHSt8DI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1775661864; c=relaxed/simple; bh=GcD0YPkh6xZI6YecHautKO6q74YT2DONYWgL6CpKrkI=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=tFURp9AYiPqcFsPo1P3+Zuvit/sCXFHz9P8Xwml5Ub5O9hlxEWlrr1O5sR3yTzmzp4I2MKB/19CKtS6YF9pDqa6lF68DXeOu0OH73Tjs/lVbC7/ZGy0pfV9qqczNT8dl+Vuxl4T+sJGdwX1fOwG2Y6cZRnR7+hgsiT36bdcgx1Q= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 33F2B4BA2E16 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xry111.site; s=default; t=1775661862; bh=UGyrSAyAoglME+Ok8mR18y5tchZwxk6dZeNGdmXEFFU=; h=From:To:Cc:Subject:Date:From; b=JaXHpcCejCdZRDJn75FseVCMRmRY1rn+zaWHC0rPSYrIJtkXEKzAv30vUqNsbervN O/TiJgBv1wFH34IgFT0x5ZJnpDeLSVJ3PHKWlmLhvPQuo4fCiZtVY47HXHSaVzeN2Z wJrUmYarzaaVJYX3bLTIlegGt2iBD58GWFVk2f78= Received: from stargazer (unknown [IPv6:2408:824e:305:fbc1:1a03:70b5:436b:8e1a]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (Client did not present a certificate) (Authenticated sender: xry111@xry111.site) by xry111.site (Postfix) with ESMTPSA id 9A8CB65992; Wed, 8 Apr 2026 11:24:17 -0400 (EDT) From: Xi Ruoyao To: gcc-patches@gcc.gnu.org Cc: Andrew Pinski , Mingcong Bai , Henry Chen , Zixing Liu , Xi Ruoyao Subject: [PATCH] ifcvt: reject use of ctrap post reload [PR 105192] Date: Wed, 8 Apr 2026 23:23:21 +0800 Message-ID: <20260408152354.77017-1-xry111@xry111.site> X-Mailer: git-send-email 2.53.0 MIME-Version: 1.0 X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, LIKELY_SPAM_FROM, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org The ctrap expanders of several targets can end up creating pseudos. And it would be really counter-intuitive to disallow a define_expand to generate pseudos. So don't invoke the expander post reload. PR target/105192 gcc/ * ifcvt.cc (find_if_header): Don't attempt to use ctrap expander after reload. gcc/testsuite/ * gcc.c-torture/compile/pr105192.c: New test. --- Bootstrapped and regtested on x86_64-linux-gnu and mips64el-linux-gnuabi64. Ok for trunk? gcc/ifcvt.cc | 2 +- gcc/testsuite/gcc.c-torture/compile/pr105192.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.c-torture/compile/pr105192.c diff --git a/gcc/ifcvt.cc b/gcc/ifcvt.cc index 7f5af2ca915..c151146c1b2 100644 --- a/gcc/ifcvt.cc +++ b/gcc/ifcvt.cc @@ -5180,7 +5180,7 @@ find_if_header (basic_block test_bb, int pass) && cond_exec_find_if_block (&ce_info)) goto success; - if (targetm.have_trap () + if (!reload_completed && targetm.have_trap () && optab_handler (ctrap_optab, word_mode) != CODE_FOR_nothing && find_cond_trap (test_bb, then_edge, else_edge)) goto success; diff --git a/gcc/testsuite/gcc.c-torture/compile/pr105192.c b/gcc/testsuite/gcc.c-torture/compile/pr105192.c new file mode 100644 index 00000000000..0cc61505218 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr105192.c @@ -0,0 +1,9 @@ +/* { dg-additional-options "-fno-if-conversion -fharden-compares" } */ + +int a, b; + +void +foo (void) +{ + b = a % 0 > 0; +}