Andarwinux wrote: > > I think llvm/clang as open-source compiler should encourage users who are > > aware of performance to use more advanced -march. > > @Andarwinux Most people do not compile their own version of Clang (and many > distros prefer to remain backwards-compatible). The whole point of this PR is > to allow the performance gain to all users who support this feature rather > than those who put their hands on a -march binary.
Many Linux distributions are also planning to migrate to x86-64-v2/v3, but the main objection we’ve encountered is that “the performance gains aren’t significant enough to justify breaking backward compatibility” This is a chicken-and-egg problem. Since x86-64-v2 is not the default, software (such as this PR) attempts to add runtime dispatch, which masks the performance benefits of x86-64-v2. Then x86-64-v2 is considered meaningless, which blocks attempts to migrate to it and the possibility of removal of runtime dispatch once adopted as the baseline. >From the compiler’s perspective, I believe it should encourage downstream >users to enable more advanced -march and recompile more frequently - this >would be more beneficial for the compiler’s own coverage as well as the code >size and performance of compiled binaries. It would benefit the entire >ecosystem in long term. > You can still use -march which should (though MaskRay said otherwise?) not > cause any regressions (IIRC the compiler optimizes the whole runtime check > away when compiled with SSE4.2 support), so this seems like a net improvement > to me. Yes, that's exactly what I requested in the original PR due to Windows regression. But I still feel it will open a Pandora’s box. I really don’t want to see a situation decades from now still trapped in the original x86-64 without extensions. > Ideally, we would use multi-versioning here because that gets the best > performance without making people performance tune the compiler when they > build. This improves throughput for our pre- and post-commit CI pipeline, > debug builds our developers are using, etc. Could LLVM's infrastructure be upgraded to use -march=x86-64-v2 or native? I'm guessing there aren't any buildbots still running on such old machines. https://github.com/llvm/llvm-project/pull/180631 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
