> The use of a library function is ABI and therefore a natural frontend 
> responsibility.
> Among other things:
>   - the atomic library functions are not guaranteed to be atomic w.r.t. the 
> processor's
>     primitive atomics and
>   - different targets may require us to use a different set of atomic library 
> functions
>     or provide slightly different semantics to them.
>
> So it makes sense for the backend to require that the frontend just not emit
> illegal primitive atomic operations.

I see. I was reading http://gcc.gnu.org/wiki/Atomic/GCCMM/LIbrary and
got the impression that the atomic operations had to be implemented in
a shared library so that new atomic support in a processor could be
utilized. I guess the document is out of date and the atomic
operations that are available in portable code are just locked when an
ABI for an architecture is defined, correct?

If that is the case,  the comment

// FIXME: Set MaxAtomicInlineWidth if we have the feature v6e

is incorrect, no? The correct fix for this case is to set
MaxAtomicInlineWidth when using the hard float ABI variant.

> John.

Cheers,
Rafael
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to