Hello!

Attached patch removes extra blockage insn generation. For the
software archaeology, please see the PR [1], where it was determined,
that the removed part is probably a dataflow branch to trunk merge
oversight.

2018-11-21  Uros Bizjak  <ubiz...@gmail.com>

    PR middle-end/88129
    * function.c (expand_function_end): Do not emit extra blockage insn.

Patch was bootstrapped and regression tested on x86_64-linux-gnu
{,-m32} for all default languages, obj-c++ and go.

OK for mainline?

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88129

Uros.
diff --git a/gcc/function.c b/gcc/function.c
index 302438323c87..44ad57840440 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -5296,14 +5296,6 @@ expand_function_end (void)
       if (flag_exceptions)
        sjlj_emit_function_exit_after (get_last_insn ());
     }
-  else
-    {
-      /* 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)
-       emit_insn (gen_blockage ());
-    }
 
   /* If this is an implementation of throw, do what's necessary to
      communicate between __builtin_eh_return and the epilogue.  */

Reply via email to