https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121498
--- Comment #11 from Jeffrey A. Law <law at gcc dot gnu.org> --- I still need to throw it under a debugger, but I suspect it's the whole prologue/epilogue shrink wrapping that's the problem here. The component based shrink wrapping code excludes RA. Assuming that's the case, I don't see any great ways to let the target say "hey, don't shrink wrap at all" outside of the shrink-wrapping flag (and changing that in my mind is a non-starter). I'd hoped we could avoid having RA mentioned on branches/jumps. For example it would likely trigger a save/restore of RA in leaf functions that have any control flow. I'm going to need to think about this some more.