From c616bb5c2ed2704bd85176bdd587c5dca3dc0f39 Mon Sep 17 00:00:00 2001 From: kyukhin Date: Mon, 7 Nov 2011 08:41:55 +0000 Subject: gcc/ PR rtl-optimization/47698 * ifconv.c (noce_operand_ok): prevent CMOV generation for volatile mem. gcc/testsuite/ PR rtl-optimization/47698 * gcc.target/i386/47698.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181075 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ifcvt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gcc/ifcvt.c') diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 784e2e8b106..3b05c2a8ad8 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -2329,12 +2329,12 @@ noce_operand_ok (const_rtx op) { /* We special-case memories, so handle any of them with no address side effects. */ - if (MEM_P (op)) - return ! side_effects_p (XEXP (op, 0)); - if (side_effects_p (op)) return FALSE; + if (MEM_P (op)) + return ! side_effects_p (XEXP (op, 0)); + return ! may_trap_p (op); } -- cgit v1.2.1