ilinpv added a comment. > Offtopic: Outlining atomics seems to be very CPU specific thing. In my > experience LSE were ~= old exclusive semantics. So adding extra call + extra > bit check (too bad IFUNCs are not used :)) each time it would be executed > seems to be quite an extra load (for CPU, TLB, dcache..), so I'm not sure > that outline atomics is a win-win thing (at least on some of the CPUs). This > is absolutely not a case for this patch anyway, just some of my thoughts, I > would be glad to hear other opinions :)
Outline atomics overhead is mostly negligible. "Various members in the Arm ecosystem have measured the performance impact of this indirection on a diverse set of systems and we were happy to find out that it was minimal compared to the benefit of using the LSE instructions for better scalability at large core counts." https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/making-the-most-of-the-arm-architecture-in-gcc-10 For IFUNCs Function Multi Versioning https://github.com/ARM-software/acle/blob/main/main/acle.md#function-multi-versioning ##lse## feature can be used. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D159398/new/ https://reviews.llvm.org/D159398 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits