diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2014-12-15 20:04:04 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2014-12-15 20:04:04 +0000 |
commit | d8c1674416836c4b4573172b541992ddd12df713 (patch) | |
tree | 66048c3dfb9781777bc6aed4106af213685f2349 /gcc/ira.c | |
parent | 7b6e0c544a78f8ab4c5dc2c09b77266f870124e1 (diff) | |
download | gcc-d8c1674416836c4b4573172b541992ddd12df713.zip gcc-d8c1674416836c4b4573172b541992ddd12df713.tar.gz gcc-d8c1674416836c4b4573172b541992ddd12df713.tar.bz2 |
re PR target/62642 (x86 rdtsc is moved through barrier)
2014-12-15 Vladimir Makarov <vmakarov@redhat.com>
PR target/62642
* ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.
From-SVN: r218761
Diffstat (limited to 'gcc/ira.c')
-rw-r--r-- | gcc/ira.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -4358,6 +4358,12 @@ rtx_moveable_p (rtx *loc, enum op_type type) 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; } |