Llvm 使用“时,如何修复未定义的符号?”;LoopInfo::getLoopFor";?
我试图写一个通过每个基本块的过程,我想确定每个基本块是否在循环中 我添加了Llvm 使用“时,如何修复未定义的符号?”;LoopInfo::getLoopFor";?,llvm,llvm-c++-api,Llvm,Llvm C++ Api,我试图写一个通过每个基本块的过程,我想确定每个基本块是否在循环中 我添加了LoopInfo作为必要的分析: virtualvoid getAnalysisUsage(AnalysisUsage&AU)const{ AU.setscfg(); AU.addRequired(); AU.addPreserved(); } 然后调用getLoopFor: virtualbool runOnFunction(函数和函数){ b(bb); 返回false; } 虚拟空间优化bb(基本块和bb){ Loo
LoopInfo
作为必要的分析:
virtualvoid getAnalysisUsage(AnalysisUsage&AU)const{
AU.setscfg();
AU.addRequired();
AU.addPreserved();
}
然后调用getLoopFor
:
virtualbool runOnFunction(函数和函数){
b(bb);
返回false;
}
虚拟空间优化bb(基本块和bb){
LoopInfo&LI=getAnalysis();
errs()我假设您包含了正确的头。在下面的代码中,您将传递什么作为bb
virtual bool runOnFunction(Function &Func) {
OptimizeBB(bb);
return false;
}
您需要迭代Func
以获取Func
中的BBs,然后将其传递给OptimizeBB()
试试这个
virtual bool runOnFunction(Function &Func) {
for (Function::iterator I = F.begin(), E = F.end(); I != E; ++I)
OptimizeBB(bb);
return false;
}
这是一个basicblock(basicblock*bb)@IanTsai请尝试在LoopInfo.h中注释以下外部声明,并构建在根llvm目录上;