llvm 4.0.0初始化AliasSetTracker类
我正在尝试使用AliasSetTracker收集别名集。然而,新版本让我感到困惑。要初始化AliasSetTracker,我需要一个AliasAnalysis实例。但是旧的一个:llvm 4.0.0初始化AliasSetTracker类,llvm,Llvm,我正在尝试使用AliasSetTracker收集别名集。然而,新版本让我感到困惑。要初始化AliasSetTracker,我需要一个AliasAnalysis实例。但是旧的一个: AliasAnalysis &AA = getAnalysis<AliasAnalysis>(); AliasSetTracker tr(AA); AliasAnalysis&AA=getAnalysis(); 行政长官(AA),; 不工作和错误: In file included from /
AliasAnalysis &AA = getAnalysis<AliasAnalysis>();
AliasSetTracker tr(AA);
AliasAnalysis&AA=getAnalysis();
行政长官(AA),;
不工作和错误:
In file included from /Users/.../LLVM/llvm/include/llvm/Pass.h:388:
/Users/.../llvm/include/llvm/PassAnalysisSupport.h:223:53: error: no member
named 'ID' in 'llvm::AAResults'
return getAnalysisID<AnalysisType>(&AnalysisType::ID);
/Users.../program/Analysis.cpp:215:25: note: in
instantiation of function template specialization
'llvm::Pass::getAnalysis<llvm::AAResults>' requested here
AliasAnalysis &AA = getAnalysis<AliasAnalysis>();
在/Users/../LLVM/LLVM/include/LLVM/Pass.h中包含的文件中:388:
/Users/../llvm/include/llvm/passanalysisssupport.h:223:53:错误:无成员
在“llvm::AAResults”中命名为“ID”
返回getAnalysisID(&AnalysisType::ID);
/用户…/program/Analysis.cpp:215:25:note:in
函数模板专门化的实例化
此处请求了“llvm::Pass::getAnalysis”
AliasAnalysis&AA=getAnalysis();
在新版LLVM中,您必须使用函数getAnalysisUsage并修改函数GetAnalysiss的使用方式:1-在pass结构中添加以下函数:
virtualvoid getAnalysisUsage(AnalysisUsage&AU)常量覆盖{
AU.addRequired();
}
2-修改对getAnalysis函数的调用:
AliasAnalysis&AA=getAnalysis().getAAResults()代码>
现在可以使用了:)在这个新版本的LLVM中,您必须使用函数getAnalysisUsage并修改函数getAnalysisUsage的使用方式:
1-在pass结构中添加以下函数:
virtualvoid getAnalysisUsage(AnalysisUsage&AU)常量覆盖{
AU.addRequired();
}
2-修改对getAnalysis函数的调用:
AliasAnalysis&AA=getAnalysis().getAAResults()代码>
它现在可以工作了:)