首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用LLVM - pass中的现有函数pass?

如何使用LLVM - pass中的现有函数pass?
EN

Stack Overflow用户
提问于 2012-02-18 02:48:44
回答 1查看 3K关注 0票数 7

我一直在使用LLVM,我很困惑如何使用与我自己的pass不同的现有pass?准确地说,我的程序需要对任何给定的指令进行支配地位前沿计算。LLVM已经有了作为函数传递实现的支配函数类。我如何在我的模块传递中调用/使用它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-18 03:07:51

警告:我没有实际经验,回答可能是不正确的或过时的。(它很大程度上是基于过时的LLVM来源:version 1.3。)

添加一个include:

代码语言:javascript
复制
#include "llvm/Analysis/DominanceFrontier.h"

如果传递If函数,则将该方法(如果未实现)添加到类中:

代码语言:javascript
复制
virtual void getAnalysisUsage(AnalysisUsage &AU) const { }

然后把这个放进去:

代码语言:javascript
复制
 AU.addRequired<DominanceFrontier>();

然后,在您的类runOnFunction方法中:

代码语言:javascript
复制
 DominanceFrontier *DF = &getAnalysis<DominanceFrontier>();

在此之后,您可以使用:

代码语言:javascript
复制
    BasicBlock *BB = /* some BB */;
    DominanceFrontier::iterator DFI = DF->find(BB);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9333726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档