LLVM学习之OPT工具

10 篇文章 2 订阅

介绍

opt命令是LLVM的优化器和分析器。输入LLVM源文件,会对其进行优化或分析,然后输出优化文件或分析结果。

OPT用法

opt [options] [filename]

$opt –passname input.ll –o output.ll

eg:   $ opt –S –instcombine testfile.ll –o output1.ll

OPT命令一些选项

  • -f

    在终端上启用二进制输出。通常,如果输出流是终端,opt将拒绝写入原始bitcode输出。使用此选项, opt将写入原始bitcode,而不管输出设备如何。

  • -help

    打印命令行选项的摘要。

  • -o filename

    指定输出文件名。

  • -p

    每次转换后打印模块。

  • -S

    输出LLVM IR而不是LLVM字节码

  • -{passname}

    opt提供了以任何顺序运行任何LLVM优化或分析Pass的能力。选项列出了所有可用的Passes。选项在命令行中出现的顺序是它们的执行顺序(在传递约束内)。

                         eg:–instcombine为指令合并pass, –deadargelim为无用参数消除pass;

  • -disable-inlining:此选项只是从标准列表中删除内联传递。

  • -disable-opt:只有在给出-std-link-opts时,此选项才有意义。它会禁用大多数Pass。

  • -strip-debug:此选项导致opt在应用其他优化之前从模块中剥离调试信息。它与-strip基本相同, 但它确保首先完成调试信息的剥离。

  • -verify-each:此选项导致opt在命令行上另外指定的每次传递后添加验证传递(包括-verify)。这对于怀疑传递正在创建无效模块但不清楚哪个传递正在执行它的情况很有用。

  • -stats:打印统计信息

  • -time-passes:记录每个Pass所需的时间并将其打印到标准错误。

  • -debug:如果这是一个调试版本,则此选项将启用使用该LLVM_DEBUG()宏的传递的调试打印输出。

  • -load=<plugin>

    加载动态对象plugin。此对象应注册新的优化或分析过程。加载后,该对象将添加新的命令行选项以启用各种优化或分析。要查看新的完整优化列表,请同时使用-help-load选项。

  •  adce:入侵式无用代码消除。

  • bb-vectorize:基本块向量化。

  • constprop:简单常量传播。

  • dce:无用代码消除。

  • deadargelim:无用参数消除。

  • globaldce:无用全局变量消除。

  • globalopt:全局变量优化。

  • gvn:全局变量编号。

  • inline:函数内联。

  • instcombine:冗余指令合并。

  • licm:循环常量代码外提。

  • loop-unswitch:循环外提。

  • loweratomic:原子内建函数 lowering。

  • lowerinvoke:invode 指令 lowering,以支持不稳定的代码生成器。

  • lowerswitch:switch 指令 lowering。

  • mem2reg:内存访问优化。

  • memcpyopt: MemCpy 优化。

  • simplifycfg:简化 CFG。

  • sink:代码提升。

  • tailcallelim:尾调用消除。

退出状态

如果opt成功,它将以0退出。否则,如果发生错误,它将以非零值退出。

参考:LLVM opt命令详解(LLVM优化器) - LLVM中文网概要opt [options] [filename] 描述opt命令是LLVM模块化的优化器和分析器。它将LLVM源文件作为输入,对其运行指定的优化或分析,然后输出优化文件或分析结果。opt的功能取决于是否给出了-analyze选项。 当-analyze被指定时,opt执行输入源的各种分析。它通常会在标准输出上打印结果,但在少数情况下,它会将输出打印到标准错误或生成带分析输出的文件,这通常在输出用https://llvm.liuxfe.com/docs/man/opt

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

What’smean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值