Hi Tim, 2014-07-02 12:25 GMT+02:00 Tim Northover <[email protected]>: > The backend *can* cope with all of these now, so Clang should give it the > chance. On CPUs without cmpxchg16b (e.g. the original athlon64) LLVM can > reform > the libcalls.
Sorry for the late response. This commit was already ages ago, but I only noticed the fallout a short time ago. I've noticed that this causes Clang to emit calls to __sync_*16() functions. This is a unusual, as the intent is that Clang never emits __sync_*() calls for C11 atomics. It always generates __atomic_* calls. In other words, this code will need to be patched in such a way that it only sets MaxAtomicPromoteWidth and MaxAtomicInlineWidth to 128 in case the backend is going to generate code that uses cmpxchg16b. In general I think it's a bit weird that all of the C11 __atomic_* bits are implemented in Clang itself and are expected to shadow the __sync_* calls generated by LLVM. -- Ed Schouten <[email protected]> _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
