From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 100852 invoked by alias); 1 Aug 2016 01:43:25 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 100758 invoked by uid 89); 1 Aug 2016 01:43:24 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-0.6 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=sk:segher@, sk:segher, U*segher, D*crashing.org X-HELO: gcc1-power7.osuosl.org Received: from gcc1-power7.osuosl.org (HELO gcc1-power7.osuosl.org) (140.211.15.137) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 01 Aug 2016 01:43:10 +0000 Received: by gcc1-power7.osuosl.org (Postfix, from userid 10019) id 622AB1C06E2; Mon, 1 Aug 2016 01:43:08 +0000 (UTC) From: Segher Boessenkool To: gcc-patches@gcc.gnu.org Cc: bschmidt@redhat.com, Segher Boessenkool Subject: [PATCH 3/9] dce: Don't dead-code delete separately wrapped restores Date: Mon, 01 Aug 2016 01:43:00 -0000 Message-Id: <4af162bf22c8a405100c31f57ac2c3b0de9b721e.1470015604.git.segher@kernel.crashing.org> In-Reply-To: References: In-Reply-To: References: X-IsSubscribed: yes X-SW-Source: 2016-08/txt/msg00001.txt.bz2 Deleting restores (before a noreturn) that are dead confuses dwarf2cfi. 2016-06-07 Segher Boessenkool * dce.c (delete_unmarked_insns): Don't delete instructions with a REG_CFA_RESTORE note. --- gcc/dce.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gcc/dce.c b/gcc/dce.c index ea3fb00..d510287 100644 --- a/gcc/dce.c +++ b/gcc/dce.c @@ -587,6 +587,15 @@ delete_unmarked_insns (void) if (!dbg_cnt (dce)) continue; + if (crtl->shrink_wrapped_separate + && find_reg_note (insn, REG_CFA_RESTORE, NULL)) + { + if (dump_file) + fprintf (dump_file, "DCE: NOT deleting insn %d, it's a " + "callee-save restore\n", INSN_UID (insn)); + continue; + } + if (dump_file) fprintf (dump_file, "DCE: Deleting insn %d\n", INSN_UID (insn)); -- 1.9.3