https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92007
--- Comment #8 from Segher Boessenkool <segher at gcc dot gnu.org> --- The current two jump passes we have after reload are there for a reason. Some targets will be very unhappy if you delete them. Like Jakub says, you need to avoid doing stuff with crossing edges in many cases, in the late passes.