我可以使用LLVM来加速构建并减少GCC编译时间吗?
Can I use LLVM to accelerate a build and reduce GCC compile time?
我正在努力减少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,以加速任何事情。
- 为什么 gcc 编译这个而 msvc 没有
- 错误:使用 clang 没有可行的重载,使用 GCC 编译
- 带有自动参数的函数使用 GCC 编译,但不使用 Visual C++ 编译
- 使用 MINGW gcc 编译时,不会为 std::string 调用重载的新运算符
- Steam 回调在 Linux / GCC 编译期间触发警告
- 在其他容器中使用 boost::container::static_vector 时,GCC 编译错误"将'const s'绑定到类型's&'的引用丢弃限定符"
- 如何使用 GCC 编译指示启用选项 '-Werror'?
- 如何实现使用 gcc-4.4 编译的大向量初始化?
- 关于这个在 Linux 上使用 gcc 编译的程序中的 vtable,nm 告诉我什么?
- 使用 TDM GCC 5.1.0 编译 PDCurses36 时出错
- 为什么这段代码无法使用 gcc 4.8.5 编译,而使用 clang 编译正常
- 使用 std::addressof 时出现 GCC 7 编译错误
- 在类模板上使用 arm gcc 编译期间的隔离错误
- 使用 GCC 编译C++时如何包含 C11 标头?
- 类数据成员指针的非类型模板参数包无法使用 gcc 编译
- 是否可以使用 GCC 编译具有特定编译器标志的代码文件的一部分?
- 将 cctype 函数分配给 std::function,gcc 编译错误
- GCC 编译时出现警告:未知转义序列:"\040"
- 为什么以下代码不使用GCC编译,而是用Clang编译罚款
- GCC编译器,为较低版本的GCC编译应用程序