gpt4 book ai didi

optimization - LLVM 执行哪种优化?

转载 作者:行者123 更新时间:2023-12-03 15:31:38 24 4
gpt4 key购买 nike

我想具体了解 LLVM 的各种优化级别对应的是什么。

也就是说,当我使用 llvm 的“-0x”选项(或 clang 或 opt)时,我想知道哪些优化过程是完全执行的(在前端之外)以及以什么顺序执行。
相应工具的“人”没有提供太多关于这个问题的信息(与 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 -instcombine -strip-dead-prototypes -preverify -domtree -verify

这与我想要的很接近,但仍然存在两个问题:
  • 为什么有两个列表?
  • 其他工具有没有类似的选择,尤其是“clang”? (根据我的测试,“-debug-pass=Arguments”不适用于 clang)

  • 编辑 :工具“opt”的选项“-debug-pass=Structure”提供了更多用户友好的数据(来自 http://llvm.org/docs/WritingAnLLVMPass.html)

    最佳答案

    why are there two lists?



    功能和模块通行证有自己的通行证管理器,因此分别打印出来。

    is there any similar option for other tools, especially "clang"



    使用 clang,您可以使用 -mllvm -debug-pass=Arguments。

    关于optimization - LLVM 执行哪种优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7656156/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com