我想改善我的项目的编译时间。我支持多种平台: OSX,Linux,Android,iOS。对于它们中的每一个,我都为调试和发布构建了项目。
假设我的代码既没有特定于平台的代码,也没有特定于配置的代码。
在以下情况下,是否可以由任何编译器保存其中间表示:
1)解析代码或
2)优化阶段
这样我就可以通过(分别)重用结果来缩短编译时间:
1)调试/发布配置
2)平台( Android,iOS,OSX,Linux的发布)?
发布于 2019-04-04 16:07:02
如果你使用clang -答案是肯定的,这是可能的:
clang -S -emit-llvm something.c生成something.ll,它是LLVM文件。下一步是使用llc实用程序生成汇编文件:
llc -march=x86 something.ll应使用特定于x86的程序集创建something.s。
但是,我建议不要在大型项目中使用它(如果您正在寻找加速编译的选项,那么您可能有一个大型项目)。原因是在您的代码中或在第三方中,可能使用了特定于平台的宏。例如:
#ifdef UNIX
...
#else
...预处理阶段是第一个阶段,它在发射IR之前进行。因此,如果您要为另一个平台生成程序集,它可能是错误的。
https://stackoverflow.com/questions/55510488
复制相似问题