diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b1923f21bed..bc1e8cb4fcf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-10-18 Segher Boessenkool + + PR rtl-optimization/82602 + * ira.c (rtx_moveable_p): Return false for volatile asm. + 2017-10-18 Vladimir Makarov PR middle-end/82556 diff --git a/gcc/ira.c b/gcc/ira.c index bfb05080de1..5265ab17488 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -4406,6 +4406,12 @@ rtx_moveable_p (rtx *loc, enum op_type type) for a reason. */ return false; + case ASM_OPERANDS: + /* The same is true for volatile asm: it has unknown side effects, it + cannot be moved at will. */ + if (MEM_VOLATILE_P (x)) + return false; + default: break; }