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
沒有留言:
張貼留言