GCC编译Linux内核速度比LLVM更

LLVM的ClangC/C++编译器传统上以提供了比GCC更快的编译速度而著称,不过在GCC的最近几个版本中,其编译速度有所提升

并且在某些领域由于LLVM/Clang进一步优化工作的缺失和其他工作加入到不断增长的代码库中,导致其速度有所减慢,因此就目前而言,GCC在编译Linux内核方面的速度比LLVM/Clang更快。

与会者在上周LinuxPlumbers大会上发表的演讲介绍了使用LLVM/Clang编译Linux内核的时间。

开发者NathanChancellor和NathanHuckleberry发现,对于64位ARM和x86_64架构来说,即便LLVM在启用LTO和PGO的情况下进行编译,“GCC编译速度始终击败LLVM”。

只有当LLVM在编译时启用PGO来为32位ARM进行构建的情况下,其编译Linux内核的速度才比GCC快。

从历史上看,这个数据是出乎意料的,但考虑到最新的编译器及其在编译器性能方面激烈而友好的竞争,似乎又不是过于令人感到震惊的事情。

不过这种被超越的案例也让LLVM的开发者们开始探索未来的改进途径。例如,冗余的内联内联汇编(InlineAssembly)语句消耗了大约13%的构建过程,而此问题已经在Clang11中得到解决。

另外,还有一些需要跟踪宏参数源位置的高开销计算。

随着上游LLVM/Clang编译器为x86_64和AArch64(以及最近的i)构建上游内核编译器,LLVM开发者将更密切


转载请注明:http://www.aierlanlan.com/rzfs/1345.html