[{"id":3677986,"web_url":"http://patchwork.ozlabs.org/comment/3677986/","msgid":"<910o4p98-64s2-n8q9-8399-rs04387704on@fhfr.qr>","list_archive_url":null,"date":"2026-04-16T07:58:12","subject":"Re: [PATCH] tree-ssa-propagate: Call update_stmt before folding\n [PR124891]","submitter":{"id":4338,"url":"http://patchwork.ozlabs.org/api/people/4338/","name":"Richard Biener","email":"rguenther@suse.de"},"content":"On Thu, 16 Apr 2026, Jakub Jelinek wrote:\n\n> Hi!\n> \n> The following testcase ICEs, because we\n>       did_replace |= substitute_and_fold_engine->replace_uses_in (stmt);\n> and replace some SSA_NAME with INTEGER_CST and without update_stmt\n> call fold_stmt.  Now fold_stmt ends up asking ranger about something end\n> ICEs because it attempts to walk SSA_USE_OPs on that stmt and because\n> we haven't updated the stmt, walks even the INTEGER_CST among ssa uses\n> and checking ICEs because it attempts to test SSA_NAME flags on the\n> INTEGER_CST.\n> \n> The following patch fixes it by calling update_stmt before folding in that\n> case, it is called again after folding just in case it is folded.\n> \n> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?\n\nOK.\n\n> 2026-04-16  Jakub Jelinek  <jakub@redhat.com>\n> \n> \tPR tree-optimization/124891\n> \t* tree-ssa-propagate.cc\n> \t(substitute_and_fold_dom_walker::before_dom_children): Call update_stmt\n> \tin the did_replace case before calling fold_stmt.\n> \n> \t* gcc.dg/torture/pr124891.c: New test.\n> \n> --- gcc/tree-ssa-propagate.cc.jj\t2026-03-27 10:17:21.499210556 +0100\n> +++ gcc/tree-ssa-propagate.cc\t2026-04-15 17:03:42.791155358 +0200\n> @@ -860,6 +860,7 @@ substitute_and_fold_dom_walker::before_d\n>        /* If we made a replacement, fold the statement.  */\n>        if (did_replace)\n>  \t{\n> +\t  update_stmt (stmt);\n>  \t  fold_stmt (&i, follow_single_use_edges);\n>  \t  stmt = gsi_stmt (i);\n>  \t  gimple_set_modified (stmt, true);\n> --- gcc/testsuite/gcc.dg/torture/pr124891.c.jj\t2026-04-15 17:05:24.273462229 +0200\n> +++ gcc/testsuite/gcc.dg/torture/pr124891.c\t2026-04-15 17:05:14.427626500 +0200\n> @@ -0,0 +1,10 @@\n> +/* PR tree-optimization/124891 */\n> +/* { dg-do compile } */\n> +\n> +void\n> +foo (int x, int y, int z, int *buf)\n> +{\n> +  for (int i = 0; i < x; ++i)\n> +    for (int j = z; j < x-z; ++z)\n> +      buf[j + (y - z +i) * x] = buf[x];\n> +}\n> \n> \tJakub\n> \n>","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=a2kobl35;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=hO2+Eb5r;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=hItBTLbP;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=78onjMos;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=a2kobl35;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=hO2+Eb5r;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=hItBTLbP;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=78onjMos","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=suse.de","sourceware.org; spf=pass smtp.mailfrom=suse.de","server2.sourceware.org;\n arc=none smtp.remote-ip=195.135.223.131","smtp-out2.suse.de;\n\tnone"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fx9Pv3Yvrz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 17:58:58 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 5EC3A4BA2E26\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 07:58:55 +0000 (GMT)","from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131])\n by sourceware.org (Postfix) with ESMTPS id 156324BA23CE\n for <gcc-patches@gcc.gnu.org>; Thu, 16 Apr 2026 07:58:15 +0000 (GMT)","from murzim.nue2.suse.org (unknown [10.168.4.243])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-out2.suse.de (Postfix) with ESMTPS id DA1665BD17;\n Thu, 16 Apr 2026 07:58:12 +0000 (UTC)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 5EC3A4BA2E26","OpenDKIM Filter v2.11.0 sourceware.org 156324BA23CE"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 156324BA23CE","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 156324BA23CE","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776326295; cv=none;\n b=Y5bSvo22j9RTICdm+60dFNsTkLx7j8gLay9xNNyLv5kjhD85hJHJxI0lkQgpLrY87YA8a6HnK8/oiTCJ170mAqPy38vkEWn6lJSSUlhJJ13pGLQbbZMafnHljJdKAnIfQPz7CITavWMK7iVO6YoF7TMPoLLL6rh/mxWNlVINKYs=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776326295; c=relaxed/simple;\n bh=aNXphzOAg5iLTSL8aRaVq8HxX5g2zPVb+Avx7M50YRs=;\n h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:Date:\n From:To:Subject:Message-ID:MIME-Version;\n b=M2JC/ClcuRgYpZjuWNyWlQT+SAEB+qP1iQzM7v3Ot0SDcmQtarNPUhIcMr42IKI0Sk2Ju7j5uZWebEmIesdsczjzQoa/cUXeGekAD4swkJLnoPvD3+pBYQNObzj7+F7ksLXF6iFXuD2lrpljcCpAA0NegqnfM2MHtIISJL0YOoU=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1776326294;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=p9ilPwiAThfgMJKyZqchx2k5Pw6kyvGTL7iOsp3fHLo=;\n b=a2kobl35xDyXzX3Ev+xl/LJglkBtVIb9ntIonhSaDVxsEXgEikQVdoR7Lww5xi+MZnh6m+\n pz76HhELRXcy/tWi5rEnMYhzfWkhD/uYPeuC8abjw2d0htO2RGDOLH12/6p4kEhxgdpeW0\n Ulv4HQ9bHeFIOwXpuQ/7Pll3PJlRzHE=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1776326294;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=p9ilPwiAThfgMJKyZqchx2k5Pw6kyvGTL7iOsp3fHLo=;\n b=hO2+Eb5rdmFksT914heFHfsnO1F84x5QWNMfzCOhJFIzEsOtzpZY6cd+5uSTw6ros4awb2\n q6XS3aQTRY/FI2CQ==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1776326292;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=p9ilPwiAThfgMJKyZqchx2k5Pw6kyvGTL7iOsp3fHLo=;\n b=hItBTLbP6E7MEzASDloqivFJhTRs5g5G3axyMQuPYayYW8g0vMUa7dpNlJchgyLoJ+JTcK\n oebrSgpHjoBDKuDcD61tQs+qcY7aNJAlJcprvD9HGj8jn6Ly8c18XAbQfm2Ie6Jkv+Bsvw\n m9k7eElHheVZBYmTGpp/fF40pLqefUA=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1776326292;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=p9ilPwiAThfgMJKyZqchx2k5Pw6kyvGTL7iOsp3fHLo=;\n b=78onjMos4W71spyUHafLqgQt2LsqIrHOuWNvO+ZDx8hn3Ib+/QDHJLExo9x8Mn5YT0kip+\n MNC5YrGUWuj5IwAA=="],"Date":"Thu, 16 Apr 2026 09:58:12 +0200 (CEST)","From":"Richard Biener <rguenther@suse.de>","To":"Jakub Jelinek <jakub@redhat.com>","cc":"gcc-patches@gcc.gnu.org","Subject":"Re: [PATCH] tree-ssa-propagate: Call update_stmt before folding\n [PR124891]","In-Reply-To":"<aeCOPGYEvn2rBmoW@tucnak>","Message-ID":"<910o4p98-64s2-n8q9-8399-rs04387704on@fhfr.qr>","References":"<aeCOPGYEvn2rBmoW@tucnak>","MIME-Version":"1.0","Content-Type":"text/plain; charset=US-ASCII","X-Spamd-Result":"default: False [-4.30 / 50.00]; BAYES_HAM(-3.00)[100.00%];\n NEURAL_HAM_LONG(-1.00)[-1.000];\n NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain];\n FROM_HAS_DN(0.00)[]; FUZZY_RATELIMITED(0.00)[rspamd.com];\n ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_TWO(0.00)[2];\n DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_SOME(0.00)[];\n FROM_EQ_ENVFROM(0.00)[];\n URIBL_BLOCKED(0.00)[murzim.nue2.suse.org:helo,suse.de:email,fhfr.qr:mid];\n RCVD_COUNT_ZERO(0.00)[0]; MISSING_XM_UA(0.00)[];\n DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:email, fhfr.qr:mid,\n tree-ssa-propagate.cc:url, murzim.nue2.suse.org:helo]","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}}]