首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复用编译器前端结果,加速多种配置/平台的C++代码编译

复用编译器前端结果,加速多种配置/平台的C++代码编译
EN

Stack Overflow用户
提问于 2019-04-04 15:46:26
回答 1查看 84关注 0票数 2

我想改善我的项目的编译时间。我支持多种平台: OSX,Linux,Android,iOS。对于它们中的每一个,我都为调试和发布构建了项目。

假设我的代码既没有特定于平台的代码,也没有特定于配置的代码。

在以下情况下,是否可以由任何编译器保存其中间表示:

1)解析代码或

2)优化阶段

这样我就可以通过(分别)重用结果来缩短编译时间:

1)调试/发布配置

2)平台( Android,iOS,OSX,Linux的发布)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-04 16:07:02

如果你使用clang -答案是肯定的,这是可能的:

代码语言:javascript
复制
clang -S -emit-llvm something.c

生成something.ll,它是LLVM文件。下一步是使用llc实用程序生成汇编文件:

代码语言:javascript
复制
llc -march=x86 something.ll

应使用特定于x86的程序集创建something.s

但是,我建议不要在大型项目中使用它(如果您正在寻找加速编译的选项,那么您可能有一个大型项目)。原因是在您的代码中或在第三方中,可能使用了特定于平台的宏。例如:

代码语言:javascript
复制
#ifdef UNIX
...
#else
...

预处理阶段是第一个阶段,它在发射IR之前进行。因此,如果您要为另一个平台生成程序集,它可能是错误的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55510488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档