https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88070
--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> --- BTW: The extra blockage would crash compilation for all mode-switching targets, also in the pre-reload mode switching; the vzeroupper post-reload insertion just trips x86 target on a generic problem in the middle-end. Proposed patch: --cut here-- Index: function.c =================================================================== --- function.c (revision 266278) +++ function.c (working copy) @@ -5447,13 +5447,6 @@ expand_function_end (void) if (naked_return_label) emit_label (naked_return_label); - /* @@@ This is a kludge. We want to ensure that instructions that - may trap are not moved into the epilogue by scheduling, because - we don't always emit unwind information for the epilogue. */ - if (cfun->can_throw_non_call_exceptions - && targetm_common.except_unwind_info (&global_options) != UI_SJLJ) - emit_insn (gen_blockage ()); - /* If stack protection is enabled for this function, check the guard. */ if (crtl->stack_protect_guard && targetm.stack_protect_runtime_enabled_p ()) stack_protect_epilogue (); --cut here--