Re: About machine description for atomic_exchange

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2019-09-09 at 15:40 -0500, William Tambe wrote:
> I use documentation for atomic_exchange from:
> https://gcc.gnu.org/onlinedocs/gccint/Standard-Names.html#Standard-Names
> 
> When defining machine description for atomic_exchange, I find that GCC
> mark operands[1] as volatile such that (MEM_VOLATILE_P (operands[1]))
> returns TRUE; even when the memory operand is not declared using the C
> keyword "volatile".
> 
> Is there a way to have atomic_exchange not marking operands[1] as
> volatile unless the memory operand was declared volatile ?

If you want to distinguish that, one way is to implement all atomic
patterns in the backedn.  Then you know that those come from
__atomic__... calls.  In the other patterns, you can then assume that
MEM_VOLATILE_P must be a mem ref for everything else (that is
considered a volatile mem ref).

Cheers,
Oleg




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux