On Tue, Sep 18, 2018 at 10:15:00PM -0600, Jeff Law wrote: > On 9/18/18 8:04 AM, Segher Boessenkool wrote: > > On Wed, Sep 05, 2018 at 10:34:48AM +0200, Ilya Leoshkevich wrote: > >> S/390 epilogue ends with (parallel [(return) (use %r14)]) instead of > >> the more usual (return) or (simple_return). This sequence is not > >> recognized by the conditional return logic in try_optimize_cfg (). > > > > Why does it need this? Other targets with a link register make > > EPILOGUE_USES handle this. > I think because he's trying to optimize a conditional jump to a return > insn into a conditional return insn. I don't think we do that on other > targets, though I have pondered it from time to time.
See r248351, r236106, and importantly r235904. I wrote that because it is quite useful on Power. s390 already _has_ a proper EPILOGUE_USES btw. So just the return patterns themselves need fixing and all will be good, it seems. Segher