相关疑难解决方法(0)

Clang优化级别

海合会,手动解释什么-O3,-Os等转化为在特定的优化参数方面(-funswitch-loops,-fcompare-elim,等)

我正在为clang寻找相同的信息.

我看过网上,man clang其中只提供一般信息(-O2优化更多-O1,-Os优化速度,...),并在此处查看Stack Overflow并发现了这一点,但我没有在引用的源文件中找到任何相关内容.

编辑:我找到了答案,但我仍然感兴趣,如果有人有链接到用户手册记录所有优化传递和选择的传球.目前我刚刚找到了这个通行证列表,但在优化级别上没有任何内容.-Ox

clang compiler-optimization user-manual

86
推荐指数
3
解决办法
7万
查看次数

LLVM执行哪种优化?

我想具体了解LLVM的各种优化级别对应的内容.

也就是说,我想知道哪些优化传递是完全执行的(在前端之外)以及当我使用llvm(或clang或opt)的"-0x"选项时的顺序.相应工具的"人"没有提供关于此事的大量信息(对于gcc的对话).

我知道这个有用的页面:http://llvm.org/docs/Passes.html,但它没有提供有关"-Ox"选项的任何信息.我正在寻找一些调试或冗长的选项(尤其是使用"opt --help"中的信息),但我找不到任何有用的选项.

作为补充,我注意到通过解析代码,所有各种LLVM工具以及clang使用不同的驱动程序,这些驱动程序以自己的方式解析选项.所有这些驱动程序是否与"-Ox"选项相似?

编辑:我为"opt"工具找到了"-debug-pass = Arguments"选项,它为选项"O1"提供了以下输出:

Pass Arguments:  -targetdata -no-aa -tbaa -targetlibinfo -basicaa -simplifycfg -domtree -scalarrepl -early-cse -lower-expect
Pass Arguments:  -targetlibinfo -targetdata -no-aa -tbaa -basicaa -globalopt -ipsccp -deadargelim -instcombine -simplifycfg -basiccg -prune-eh -always-inline -functionattrs -scalarrepl-ssa -domtree -early-cse -simplify-libcalls -lazy-value-info -jump-threading -correlated-propagation -simplifycfg -instcombine -tailcallelim -simplifycfg -reassociate -domtree -loops -loop-simplify -lcssa -loop-rotate -licm -lcssa -loop-unswitch -instcombine -scalar-evolution -loop-simplify -lcssa -iv-users -indvars -loop-idiom -loop-deletion -loop-unroll -memdep -memcpyopt -sccp -instcombine -lazy-value-info -jump-threading -correlated-propagation -domtree -memdep -dse -adce -simplifycfg …
Run Code Online (Sandbox Code Playgroud)

optimization llvm

11
推荐指数
1
解决办法
6447
查看次数