From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2001:67c:2178:6::1d]) by sourceware.org (Postfix) with ESMTPS id 646ED3858439 for ; Wed, 15 Mar 2023 09:29:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 646ED3858439 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 8E1EA1FD70 for ; Wed, 15 Mar 2023 09:29:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1678872555; h=from:from:reply-to:date:date:to:to:cc:mime-version:mime-version: content-type:content-type; bh=d9Io92Uqi0VzsVFmbqxMQ9BshN0PL0TTb9afza3oYFQ=; b=ryk5ZJVe1Qes/MZl5IsQFi6PotyWysLtBcH8mlotNmZRgh/cVQzV198Rzm7CDnYZBATZbl jNCaRAjWqjFmdtTfhA/MkUIMCVvO/ckDhb09vc4KrOviRpU8VIzOblT6bPjzTlBYxcA6vn U+Ely3er2v8fouxBAFcy1rMw/YiD1UM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1678872555; h=from:from:reply-to:date:date:to:to:cc:mime-version:mime-version: content-type:content-type; bh=d9Io92Uqi0VzsVFmbqxMQ9BshN0PL0TTb9afza3oYFQ=; b=IIOGU8Ihg+a+nMTk2V+u2k3RzeiakdkcIokvMmWPCx/3D/qDLa7Ioiv7wPyFpKCHobSgH3 YmrusAfEgsUS5TBg== 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 836B52C141 for ; Wed, 15 Mar 2023 09:29:15 +0000 (UTC) Date: Wed, 15 Mar 2023 09:29:15 +0000 (UTC) From: Richard Biener To: gcc-patches@gcc.gnu.org Subject: [PATCH] tree-optimization/109139 - fix .DEFERRED_INIT removal 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.6 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 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: <20230315092915.CALlIwtZONEo8LNURyIROISNInlA113A7UDAFnUG1LQ@z> The following make sure to strip MEMs when looking for unused decls on the LHS of .DEFERRED_INIT. Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. PR tree-optimization/109139 * tree-ssa-live.cc (remove_unused_locals): Look at the base address for unused decls on the LHS of .DEFERRED_INIT. * gcc.dg/torture/pr109139.c: New testcase. --- gcc/testsuite/gcc.dg/torture/pr109139.c | 12 ++++++++++++ gcc/tree-ssa-live.cc | 3 ++- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/torture/pr109139.c diff --git a/gcc/testsuite/gcc.dg/torture/pr109139.c b/gcc/testsuite/gcc.dg/torture/pr109139.c new file mode 100644 index 00000000000..9fa97ebc665 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr109139.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-ftrivial-auto-var-init=zero" } */ + +const int COMPARE_CANDIDATE; +char ipmi_ek_compare_link_record1_0, ipmi_ek_compare_link_record2_0; +void ipmi_ek_compare_link() +{ + for (; ipmi_ek_compare_link_record1_0;) + for (; ipmi_ek_compare_link_record2_0;) { + int link[COMPARE_CANDIDATE]; + } +} diff --git a/gcc/tree-ssa-live.cc b/gcc/tree-ssa-live.cc index 9118e82b4f1..1be92956cc5 100644 --- a/gcc/tree-ssa-live.cc +++ b/gcc/tree-ssa-live.cc @@ -897,7 +897,8 @@ remove_unused_locals (void) else if (gimple_call_internal_p (stmt, IFN_DEFERRED_INIT)) { tree lhs = gimple_call_lhs (stmt); - if (DECL_P (lhs) && !is_used_p (lhs)) + tree base = get_base_address (lhs); + if (DECL_P (base) && !is_used_p (base)) { unlink_stmt_vdef (stmt); gsi_remove (&gsi, true); -- 2.35.3