Hi!

Is this ok to apply to 4.8 and 4.9 branches?
Successfully bootstrapped/regtested on these branches on x86_64-linux and
i686-linux, testcase is fixed.

2015-06-12  Jakub Jelinek  <ja...@redhat.com>

        Backported from mainline
        2014-12-15  Vladimir Makarov  <vmaka...@redhat.com>
 
        PR target/62642
        * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.

--- gcc/ira.c   (revision 218760)
+++ gcc/ira.c   (revision 218761)
@@ -4358,6 +4358,12 @@ rtx_moveable_p (rtx *loc, enum op_type t
     case CLOBBER:
       return rtx_moveable_p (&SET_DEST (x), OP_OUT);
 
+    case UNSPEC_VOLATILE:
+      /* It is a bad idea to consider insns with with such rtl
+        as moveable ones.  The insn scheduler also considers them as barrier
+        for a reason.  */
+      return false;
+
     default:
       break;
     }

        Jakub

Reply via email to