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
+2011-11-07 Sergey Ostanevich <sergos.gnu@gmail.com>
+
+ PR rtl-optimization/47698
+ * ifconv.c (noce_operand_ok): prevent CMOV generation
+ for volatile mem.
+
2011-11-07 Tristan Gingold <gingold@adacore.com>
* common/config/alpha/alpha-common.c (alpha_option_init_struct):
{
/* 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);
}
+
+2011-11-07 Sergey Ostanevich <sergos.gnu@gmail.com>
+
+ PR rtl-optimization/47698
+ * gcc.target/i386/47698.c: New test.
+
2011-11-06 Jason Merrill <jason@redhat.com>
PR c++/35688
--- /dev/null
+/* { dg-options "-Os" } */
+/* { dg-final { scan-assembler-not "cmov" } } */
+
+extern volatile unsigned long mmio;
+unsigned long foo(int cond)
+{
+ if (cond)
+ return mmio;
+ return 0;
+}