gpt4 book ai didi

c++ - 如何使用我的 LLVM 中的现有函数传递 - 传递?

转载 作者:可可西里 更新时间:2023-11-01 18:38:01 24 4
gpt4 key购买 nike

我一直在使用 LLVM,我对如何使用与我自己的 pass 不同的已经存在的 pass 感到困惑?准确地说,我的程序需要对任何给定指令进行优势边界计算。 LLVM 已经具有作为函数传递实现的 Dominance 函数类。我如何在我的 Module Pass 中调用它/使用它?

最佳答案

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

添加一个包含:

#include "llvm/Analysis/DominanceFrontier.h"

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

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 中的现有函数传递 - 传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9333726/

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