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