我正在尝试缩短HHVM
的编译时间,这可能需要两个小时。
我在某处读到LLVM
可以充当gcc
的预处理器并大大减少内存使用和编译时间?
不幸的是,我似乎无法直接使用HHVM
汇编clang
因为我遇到了'array' file not found
等奇怪的致命错误,即使我尝试将CXXFLAGS
设置为-std=c++11
或-std=gnu++11
模式,没有运气。
我读过关于dragonegg
但不确定如何使用它或者它是否是我要找的东西?
答案 0 :(得分:2)
dragonegg
是gcc的LLVM代码生成插件,因此它与您正在寻找的内容相反。
我不知道如何在最近支持的gcc前面插入Clang。也就是说,如果你可以用gcc构建一个项目,那么使用Clang构建它并不困难。如今,即使是Linux内核也可以使用Clang构建一些小补丁。 HVVM开发人员很可能也会使用Clang构建它,并且可能会有一些补丁。
但标题中问题的答案是否定的。
答案 1 :(得分:2)
我在某地读过LLVM可以充当gcc的预处理器
我认为您所阅读的内容实际上是关于预处理的。实际上,我自己依稀记得有人比GCC更快地打电话给Clang的预处理器。对我们来说不幸的是,您的答案并未提供指向您的信息来源的链接,因此无法检查实际的索赔内容。
您可以使用clang -E file.c -o file.i
预处理C文件。在此之后,您可以使用GCC编译file.i
,GCC将能够省略其(假设速度较慢)的预处理器。不幸的是,预处理是编译C文件的最简单步骤,我怀疑它占总时间的3%以上,这意味着即使将预处理所花费的时间减半,也最多可以改善编译时间减少1.5%。
我没有看到两个编译套件之间通用的任何其他语言,而不是可以从Clang输出的预处理C,以便加速进入GCC。
答案 2 :(得分:2)
无论如何,我认为直接使用clang会更容易。因此,试着找出为什么clang不适用于该项目,并找到补丁/修复程序。
例如,应用this patch可能是一个好的开始。