From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19286 invoked by alias); 10 Aug 2009 13:09:13 -0000 Received: (qmail 19267 invoked by uid 22791); 10 Aug 2009 13:09:12 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from fg-out-1718.google.com (HELO fg-out-1718.google.com) (72.14.220.156) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 10 Aug 2009 13:09:05 +0000 Received: by fg-out-1718.google.com with SMTP id 16so779787fgg.5 for ; Mon, 10 Aug 2009 06:09:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.86.99.12 with SMTP id w12mr3157425fgb.77.1249909742511; Mon, 10 Aug 2009 06:09:02 -0700 (PDT) In-Reply-To: <1249902983.25908.44.camel@e200593-lin.cambridge.arm.com> References: <1249902983.25908.44.camel@e200593-lin.cambridge.arm.com> Date: Mon, 10 Aug 2009 13:25:00 -0000 Message-ID: <571f6b510908100609p3211d20fl68698e6d9e406df8@mail.gmail.com> Subject: Re: ifcvt.c question. From: Steven Bosscher To: ramana.radhakrishnan@arm.com Cc: gcc@gcc.gnu.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2009-08/txt/msg00163.txt.bz2 On Mon, Aug 10, 2009 at 1:16 PM, Ramana Radhakrishnan wrote: > I wonder if the best way to fix this is to teach ifcvt.c to handle > conditional returns. Yes. This is a bug in the middle-end. I can only guess why you are the first to run into this (the ia64 return instruction is not predicable?) but clearly the assert is bogus if the conditional branch of the IF-block is actually a conditional return. > Should I be fixing this inside ifcvt.c by handling > conditional returns specially I think you should fix this inside ifcvt.c, but try to make the handing of cond_return not too specially ;-) Alternatively, you could add a conditional call pattern and a post-reload splitter to the ARM backend, and disallow the EXIT_BLOCK_PTR as the JOIN-block in ifcvt.c. Ciao! Steven