[Bug target/88070] [8/9 Regression] ICE in create_pre_exit, at mode-switching.c:438
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Nov 19 20:36:00 GMT 2018
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--
More information about the Gcc-bugs
mailing list