From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) by sourceware.org (Postfix) with ESMTPS id 7F07F3858C27 for ; Mon, 25 Oct 2021 08:36:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7F07F3858C27 Received: by mail-ed1-x52c.google.com with SMTP id 5so23406534edw.7 for ; Mon, 25 Oct 2021 01:36:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hXtQZ9vjlt91I3HCwl71JRyNiYq1oOPY7j7pMeosgU8=; b=4X3mXN+b9NQgXBo7anGgPZDO8V+IvuFw6p2zUc01X19qeX9etdGL/UKlNEGAfZ5K3V ZI60VdPbKthbwJ18J9AWKY1MmtUCIbWgGvtR5Wrw9oHyHzq3jo5WamdmBBw92pkeGdeX P/MLxFBsXYdZOGPohXG/f6yLmYrBCI4R1hkHr0CVDL+Zd096oSulxdBzLeWFkMiGoXWC qyT04kTL4L0QjVJUG3XtMLup9YnZt/Yei6vC5Q/WozgO2vR9pkgCJlA3VISWHrzqH3vX qglCV9f71nYI4jpQ1R/5MXnMX7oBbVvoU9UqOMLIjRrmavsCGQ+FLtAunnhKHfDi9Qbn 8qOQ== X-Gm-Message-State: AOAM5338MTo2U1pztmzITc7uCEiikzIXEciTVAcyLWFzWlDhE2JxmCDO IRZbMI5tNsdQxHZsG2BxD3m/AkVOgg7IcDuZY6o= X-Google-Smtp-Source: ABdhPJwzrnyE2Do+C+DQD8i2v6wTaPc62YHbmdso77jnB+yWtURF8LiA5EuDWqFFrP/P+ZeEm4lmC+9DsUsYvuK1Ih8= X-Received: by 2002:a05:6402:35cb:: with SMTP id z11mr26127438edc.342.1635150978348; Mon, 25 Oct 2021 01:36:18 -0700 (PDT) MIME-Version: 1.0 References: <1635067674-14256-1-git-send-email-apinski@marvell.com> In-Reply-To: <1635067674-14256-1-git-send-email-apinski@marvell.com> From: Richard Biener Date: Mon, 25 Oct 2021 10:36:07 +0200 Message-ID: Subject: Re: [PATCH] Fix PR 102908: wrongly removing null pointer loads To: Andrew Pinski Cc: GCC Patches Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-8.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Oct 2021 08:36:21 -0000 On Sun, Oct 24, 2021 at 11:28 AM apinski--- via Gcc-patches wrote: > > From: Andrew Pinski > > Just like PR 100382, here we have a DCE removing a > null pointer load which is needed still. > In this case, execute_fixup_cfg removes a store (correctly) > and then removes the null load (incorrectly) due to > not checking stmt_unremovable_because_of_non_call_eh_p. > This patch adds the check in the similar way as the patch > to fix PR 100382 did. OK. Thanks, Richard. > gcc/ChangeLog: > > * tree-ssa-dce.c (simple_dce_from_worklist): > Check stmt_unremovable_because_of_non_call_eh_p also > before removing the statement. > --- > gcc/tree-ssa-dce.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c > index 372e0691ae6..1281e67489c 100644 > --- a/gcc/tree-ssa-dce.c > +++ b/gcc/tree-ssa-dce.c > @@ -1828,6 +1828,11 @@ simple_dce_from_worklist (bitmap worklist) > if (gimple_has_side_effects (t)) > continue; > > + /* Don't remove statements that are needed for non-call > + eh to work. */ > + if (stmt_unremovable_because_of_non_call_eh_p (cfun, t)) > + continue; > + > /* Add uses to the worklist. */ > ssa_op_iter iter; > use_operand_p use_p; > -- > 2.17.1 >