Wilco1 added a comment. The general requirement is that inline and outline atomics have identical behaviour, and that GCC and LLVM emit the same sequences. I agree __sync is badly documented, so it's hard to figure whether an extra DMB barrier could actually make a difference, but it's best to be conservative with atomics. Also it was trivial to add (GCC just adds an extra flag for __sync which then emits the extra barrier if the flag is set, so you don't need to introduce new atomic models).
However if __sync primitives are hardly used in the real world then perhaps it is about time to deprecate them with annoying warnings, and completely remove support next year. Does that sound reasonable? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D129802/new/ https://reviews.llvm.org/D129802 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits