C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 如何使用来自LLVM的现有函数传递 – 传递?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在使用LLVM,我很困惑如何在我自己的传球中使用不同的已经存在的传球?确切地说,我的程序需要针对任何给定指令的Dominance Frontier Calculation. LLVM已经具有作为函数传递实现的Dominance函数类.我怎样才能在我的Module Pass中调用它/使用它?

解决方法

警告:我没有真正的经验,答案可能不正确或过时. (它主要基于过时的LLVM源: version 1.3.)

添加包含:

#include "llvm/Analysis/DominanceFrontier.h"

如果您传递了函数Pass,请将该方法添加到您的类中(如果未实现):

virtual void getAnalysisUsage(AnalysisUsage &AU) const { }

把它放进去吧:

AU.addrequired<DominanceFrontier>();

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

DominanceFrontier *DF = &getAnalysis<DominanceFrontier>();

在此之后你可以使用:

BasicBlock *BB = /* some BB */;
    DominanceFrontier::iterator DFI = DF->find(BB);

大佬总结

以上是大佬教程为你收集整理的c – 如何使用来自LLVM的现有函数传递 – 传递?全部内容,希望文章能够帮你解决c – 如何使用来自LLVM的现有函数传递 – 传递?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。