On Mon, Aug 10, 2009 at 1:16 PM, Ramana Radhakrishnan<ramana.radhakrish...@arm.com> 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