https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114415
--- Comment #5 from Vladimir Makarov <vmakarov at gcc dot gnu.org> --- After some considerations, I've decided to fix it in the scheduler. Such approach solves the problem for all targets and schedulers, still permitting live range shrinkage (important for space optimizations) and scheduling for all option cases. I see the only downside in adding additional dependencies for stack pointer modifications. But such insns have very small latency time and increase critical paths only quite a bit. I'll push the patch today or tomorrow.