LLVM Pass

启用Pass的方法

  • out-of-tree
    • Opt启用Pass(常用,Legacy&New PM均可用)
    • Xclang编译选项启动Pass
  • in-tree
    • 资料较少,需要在Sanitizer.def里加入希望在编译选项中看到的(-fsanitizer=)whatever_name,然后通过PassManager初始化对应的Pass类。

LLVM New Pass Manager

较新的LLVM开始同时支持Legacy Pass Manager(Legacy PM)和New Pass Manager(New PM)来管理LLVM Pass。Legacy PM在CGSCC Pass(Call Graph Strongly Connected Component)中无法支持对先前的函数分析结果进行缓存及检索,因此促使了New PM的诞生(参考这里)。New PM将Pass和Analysis分离,使用专门的Analysis Manager来管理Analysis的结果。

Legacy PM可能在Clang14中被弃用?(根据GDB调试clang的结果来看,clang14使用New PM而非Legacy PM初始化ASAN,而clang12中使用Legacy PM而非New PM初始化ASAN)

引文来自这里

There will be efforts to deprecate and remove the legacy PM for the optimization pipeline in the future.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值