为了账号安全,请及时绑定邮箱和手机立即绑定

lang优化级别

lang优化级别

海合会,手动解释什么-O3,-Os等转化为在特定的优化参数方面(-funswitch-loops,-fcompare-elim,等)我正在为clang寻找相同的信息。我在网上看过,man clang并且只提供一般信息(-O2优化多于-O1,-Os针对速度进行了优化,…),还在此处查看Stack Overflow并发现了这一点,但是在引用的源文件中没有发现任何相关信息。编辑:我找到了答案,但是我仍然很感兴趣是否有人链接到用户手册,该手册记录了所有优化过程以及所选择的过程。目前,我仅找到此通行证列表,但在优化级别上却一无所获。-Ox
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

准确地描述了已启用的LLVM优化,但是还有其他一些受Clang影响的特定于Clang的选项(即那些影响降低AST的-O[0|1|2|3|fast]选项)。


您可以通过以下方式查看这些内容:


echo 'int;' | clang -xc -O0    - -o /dev/null -\#\#\#


echo 'int;' | clang -xc -O1    - -o /dev/null -\#\#\#


echo 'int;' | clang -xc -O2    - -o /dev/null -\#\#\#


echo 'int;' | clang -xc -O3    - -o /dev/null -\#\#\#


echo 'int;' | clang -xc -Ofast - -o /dev/null -\#\#\#


例如,-O0能够使-mrelax-all,-O1使-vectorize-loops和-vectorize-slp,并-Ofast使得-menable-no-infs,-menable-no-nans,-menable-unsafe-fp-math,-ffp-contract=fast和-ffast-math。


@Techogrebo:


是的,不需要不一定需要其他LLVM工具。尝试:


echo 'int;' | clang -xc - -o /dev/null -mllvm -print-all-options


另外,您可以单独使用Clang检查/修改很多更详细的选项……您只需要知道如何使用它们即可!


尝试以下几种方法:


clang -help


clang -cc1 -help


clang -cc1 -mllvm -help


clang -cc1 -mllvm -help-list-hidden


clang -cc1as -help


查看完整回答
反对 回复 2019-11-23
  • 3 回答
  • 0 关注
  • 716 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信