我找到了this 相关问题。
总结一下,了解一下编译器优化pass:
llvm-as < /dev/null | opt -O3 -disable-output -debug-pass=Arguments
正如 Geoff Nixon 的回答 (+1) 中指出的,clang 还运行了一些更高级别的优化,我们可以通过以下方式检索:
echo 'int;' | clang -xc -O3 - -o /dev/null -\#\#\#
个人通行证的文档可通过here获取。
您可以像这样比较更改高级标志(例如-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 添加选项