This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Volatile memory is not general operand
Hi,
On Fri, 11 Feb 2011, Paulo J. Matos wrote:
> On 11/02/11 12:03, Eric Botcazou wrote:
> > > if (! volatile_ok&& MEM_VOLATILE_P (op))
> > > return 0;
> >.
> >
> > It's more of the other way around: MEM_VOLATILE_P is a general operand
> > unless
> > explicitly requested via init_recog_no_volatile. Some passes, like combine,
> > don't track the volatileness of operands precisely, so they disable their
> > manipulation altogether to avoid generating wrong code.
> >
>
> But the piece of code I quoted above is in general_regs. A (mem/v ...) will
> never be a general_operand, will it?
The piece of code you quoted also is conditional on volatile_ok. Connect
that with what Eric said.
Ciao,
Michael.