[LLVMdev] __atomic_fetch_add on ARM

Rafael EspĂ­ndola rafael.espindola at gmail.com
Fri May 10 09:01:52 PDT 2013

> This seems to be the problem in my box, and Benjamin's hint did solve the
> problem (setting MaxAtomicInlineWidth). However, I'm not sure what relation
> that variable has to do with choosing library calls or not. If it's just a
> matter of variable sizes (allowing direct atomic calls on 64-bit VFP
> instructions), that it's possible that the fix is correct.

For the hard float ABI I think that is the correct fix. At least on
fedora 18 for ARM gcc doesn't use function calls and in fact there
doesn't seem to be any library support present in the installed

>> * In ABIs that do use external function calls (non hard float linux?),
>> we don't have code to actually generate the calls.
> You mean in Clang? Or a library?

In clang. In an ABI where some atomic operations are done by calling
functions in libgcc, it is clang's responsibility to to produce these

>> See the thread in
>> http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130415/078021.html.
> From this discussion, seems that compiler-rt is the wrong fix. Shouldn't
> this be provided by libstdc++?

In the ABIs where we need to use library calls I think the
implementation itself should be in compiler-rt. I don't have a system
with such an ABI to check, but I am almost sure that they would be
implemented in libgcc.


More information about the llvm-dev mailing list