2014年8月7日 星期四

clang's atomic operation trick

clang will generate libCall or LLVM atomic IR with built-in atomic operaion.

1. when data size of atomic operation is less than getTarget().getMaxAtomicInlineWidth()
&& alignent, it will generate LLVM atomic IR, otherwise generate libCall

2. in ARM target, give fail triple name also generates libCall

3. MaxAtomicInlineWidth is defined in lib/Basic/Targets.cpp

沒有留言:

張貼留言