From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14412 invoked by alias); 1 Oct 2002 19:09:10 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 14369 invoked from network); 1 Oct 2002 19:09:09 -0000 Received: from unknown (HELO Cantor.suse.de) (213.95.15.193) by sources.redhat.com with SMTP; 1 Oct 2002 19:09:09 -0000 Received: from Hermes.suse.de (Charybdis.suse.de [213.95.15.201]) by Cantor.suse.de (Postfix) with ESMTP id 76B3D14AE1; Tue, 1 Oct 2002 21:09:08 +0200 (MEST) Date: Tue, 01 Oct 2002 12:24:00 -0000 From: Michael Matz To: Olivier Hainque Cc: Jan Hubicka , Subject: Re: Question on fixup_abnormal_edges In-Reply-To: <20021001184620.B16300@berlin.int.act-europe.fr> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2002-10/txt/msg00045.txt.bz2 Hi, On Tue, 1 Oct 2002, Olivier Hainque wrote: > Jan Hubicka wrote: > > There is another problem when I think about that - there should not be > > live register accross REG_NORETURN note and thus no caller save need. > > Do you have any idea why the register is alive? > > The .life dump reads several times like below > > (call_insn 1707 1706 1708 (parallel[ > (call (mem:DI (symbol_ref:DI ("_Unwind_Resume")) [0 S8 A64]) > ... > ;; End of basic block 175, registers live: > 29 [$29] 30 [$30] 31 [AP] 63 [FP] Ok, no $22 here. So either the caller-save code should take the current liveness into account before emitting loads/stores around calls (which I'm not sure it is able to, considering non-optimizing compilation) or not emit loads after non-return calls at all (and stores are probably useless to, except maybe for unwinding the stack). Ciao, Michael.