More refinements to fixing sparc's PR target/80968.
authorDavid S. Miller <davem@davemloft.net>
Mon, 12 Jun 2017 19:30:45 +0000 (19:30 +0000)
committerDavid S. Miller <davem@gcc.gnu.org>
Mon, 12 Jun 2017 19:30:45 +0000 (12:30 -0700)
gcc/

PR target/80968
* config/sparc/sparc.md (return expander): Emit frame blockage if
function uses alloca.

From-SVN: r249134

gcc/ChangeLog
gcc/config/sparc/sparc.md

index cc5435d54a60bba6c4bb125a74c9441267c45b22..9be291e3d2a28c01132113166c1939def07af22b 100644 (file)
@@ -1,3 +1,9 @@
+2017-06-12  David S. Miller  <davem@davemloft.net>
+
+       PR target/80968
+       * config/sparc/sparc.md (return expander): Emit frame blockage if
+       function uses alloca.
+
 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
 
        * combine.c (make_field_assignment): Check len rather than the mode
index 737bdb37543b00730d9533f161ff623433e8388c..5c5096bca2a9a3b0e1c251ce8ba1d380cf47b459 100644 (file)
 (define_expand "return"
   [(return)]
   "sparc_can_use_return_insn_p ()"
-  "")
+{
+  if (cfun->calls_alloca)
+    emit_insn (gen_frame_blockage ());
+})
 
 (define_insn "*return_internal"
   [(return)]