llvm 4.0.0初始化AliasSetTracker类

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 /

我正在尝试使用AliasSetTracker收集别名集。然而,新版本让我感到困惑。要初始化AliasSetTracker,我需要一个AliasAnalysis实例。但是旧的一个:

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()

它现在可以工作了:)