On 10/24/11 20:02, Chung-Lin Tang wrote: > On 2011/10/18 04:03 PM, Eric Botcazou wrote: >>> thread_prologue_and_epilogue_insns should detect all cases where a >>> return insn can be created. So any CFG cleanup that runs before it does >>> not need this functionality. >> >> So we're left with CFG cleanups that run after it and could forward edges to >> an >> edge from a return insn to the exit block in order to build a new return >> insn.
We have no testcases to suggest that this ever happens. > Bernd, why can't we simply remove the assertion? The pre-reload case > will fail at validation and return 0, matching pre-reload, > pre-shrink-wrap behavior, while any possible remaining post-reload > redirection to the exit block can just use 'ret_rtx' as the rare > fallback No, after prologue insertion we have to distinguish between ret_rtx and simple_return_rtx. > (I see you have retained the NULL case in redirect_target()) That may just be a thinko. Bernd