我可以使用LLVM来加速构建并减少GCC编译时间吗?

Can I use LLVM to accelerate a build and reduce GCC compile time?

本文关键字:GCC 编译 时间 可以使 LLVM 构建 加速 我可以      更新时间:2023-10-16

我正在努力减少HHVM的编译时间,这可能需要两个小时。

我在某处读到LLVM可以作为gcc的预处理器,并大大减少内存使用和编译时间?

不幸的是,我似乎不能直接与clang编译HHVM,因为我得到奇怪的致命错误,如'array' file not found,即使我尝试将CXXFLAGS设置为-std=c++11-std=gnu++11模式,没有运气。

我读过关于dragonegg,但不确定如何使用它,或者如果它是我在寻找什么?

无论如何,我认为直接使用clang会容易得多。所以试着找出clang不能在项目中工作的原因,并找到相应的补丁/修复。

例如,应用这个补丁可能是一个好的开始。

dragonegg是一个用于gcc的LLVM代码生成插件,所以它与您正在寻找的相反。

我不知道现在有什么方法可以把Clang插入到gcc的前端。也就是说,如果您可以用gcc构建一个项目,那么用Clang构建它应该不难。现在,即使是Linux内核也可以用Clang构建,只需要一些小的补丁。很有可能HVVM开发人员也使用Clang来构建它,并且他们可能对此有一些补丁。

但是题目中问题的答案是否定的

我在某处读到LLVM可以作为gcc的预处理器

我认为你读到的是关于预处理的。事实上,我自己也隐约记得有人说Clang的预处理器比GCC的快。遗憾的是,您的回答没有提供您的信息来源的链接,因此无法检查实际索赔是什么。

你可以用clang -E file.c -o file.i预处理你的C文件。在此之后,您可以用GCC编译file.i,并且GCC将能够省略它的(据说较慢的)预处理器。不幸的是,预处理是编译C文件中最简单的步骤,我怀疑它占总时间的3%以上,这意味着即使预处理花费的时间减少一半,最多也只能将编译时间提高1.5%。

我没有看到任何其他语言,在这两个编译套件之间,除了预处理的C语言,可以从Clang输出到GCC,以加速任何事情。