This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH i386] PR47698 no CMOV for volatile mem
- From: Richard Guenther <rguenther at suse dot de>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Sergey Ostanevich <sergos dot gnu at gmail dot com>, "H.J. Lu" <hjl dot tools at gmail dot com>
- Date: Fri, 28 Oct 2011 10:16:37 +0200 (CEST)
- Subject: Re: [PATCH i386] PR47698 no CMOV for volatile mem
- References: <CAFULd4aMR_Lf4rVbagtyKTEove4yoKinSWiXwtKNTo5ph8yjNw@mail.gmail.com>
On Thu, 27 Oct 2011, Uros Bizjak wrote:
> Hello!
>
> > Here's a patch for PR47698, which is about CMOV should not be
> > generated for memory address marked as volatile.
> > Successfully bootstrapped and passed make check on x86_64-unknown-linux-gnu.
>
>
> PR rtl-optimization/47698
> * config/i386/i386.c (ix86_expand_int_movcc) prevent CMOV generation
> for volatile mem
>
> PR rtl-optimization/47698
> * gcc.target/i386/47698.c: New test
>
> Please use punctuation marks and correct capitalization in ChangeLog entries.
>
> OTOH, do we want to fix this per-target, or in the middle-end?
The middle-end pattern documentation does not say operands 2 and 3
are not evaluated if they do not end up being stored, so a middle-end
fix is more appropriate.
Richard.