我发现了这个相关的问题。
综上所述,了解编译器优化通道:
llvm-as < /dev/null | opt -O3 -disable-output -debug-pass=Arguments
正如Geoff Nixon的回答 (+1)中所指出的,clang
还运行了一些更高级别的优化,我们可以通过以下方式检索:
echo 'int;' | clang -xc -O3 - -o /dev/null -\#\#\#
个人通行证的文档可在此处获得。
您可以比较更改高级标志的效果,-O
如下所示:
diff -wy --suppress-common-lines \
<(echo 'int;' | clang -xc - -o /dev/null -\#\#\# 2>&1 | tr " " "\n" | grep -v /tmp) \
<(echo 'int;' | clang -xc -O0 - -o /dev/null -\#\#\# 2>&1 | tr " " "\n" | grep -v /tmp)
# will tell you that -O0 is indeed the default.
对于6.0 版,通行证如下:
对于3.8 版,通行证如下:
----------
对于3.7 版,通行证如下(上面命令的解析输出):
----------
对于3.6 版,通行证记录在 GYUNGMIN KIM 的帖子中。
----------
对于3.5 版,通行证如下(上面命令的解析输出):
----------
对于3.4 版,通行证如下(上面命令的解析输出):
----------
对于3.2 版,通行证如下(上面命令的解析输出):
-------------
编辑 [2014 年 3 月]从列表中删除了重复项。
编辑 [2014 年 4 月]添加了 3.4 的文档链接 + 选项
编辑 [2014 年 9 月]添加了 3.5 的选项
编辑 [2015 年 12 月]添加了 3.7 的选项并提及 3.6 的现有答案
编辑 [2016 年 5 月]为 opt 和 clang 添加了 3.8 的选项,并提到了 clang 的现有答案(相对于 opt)
编辑 [2018 年 11 月]添加 6.0 的选项