LLVM:如何在CallGraphSCC过程中使用LoopInfoPass和ScalarRevolutionPass?

LLVM:如何在CallGraphSCC过程中使用LoopInfoPass和ScalarRevolutionPass?,llvm,static-analysis,klee,Llvm,Static Analysis,Klee,我想在从CallGraphSCC pass派生的pass的runonsc()方法中使用LoopInfoPass。更具体地说,我想判断basicblock是否在runOnSCC()方法中的循环中。 因此,代码应该如下所示: LoopInfo &lf = getAnalysis<LoopInfo>(F); Loop *bbLoop = lf.getLoopFor(BB); 最后,我使用PassManager: PassManager pm; pm.add(LoopInfo);

我想在从CallGraphSCC pass派生的pass的
runonsc()
方法中使用
LoopInfoPass
。更具体地说,我想判断basicblock是否在
runOnSCC()
方法中的循环中。 因此,代码应该如下所示:

LoopInfo &lf = getAnalysis<LoopInfo>(F);
Loop *bbLoop = lf.getLoopFor(BB);
最后,我使用PassManager:

PassManager pm;
pm.add(LoopInfo);
pm.add(ScalarEvolution);
pm.add(AnalyzerPass);
pm.run(&module);
执行
pm.run(&module)
时,我得到错误:

Unable to schedule 'Natural Loop Info' for 'analysis'.
Unable to schedule pass.
我想问我哪里错了?关于如何使用CallGraphSCC Pass的信息太少。任何帮助都将不胜感激

PassManager pm;
pm.add(LoopInfo);
pm.add(ScalarEvolution);
pm.add(AnalyzerPass);
pm.run(&module);
Unable to schedule 'Natural Loop Info' for 'analysis'.
Unable to schedule pass.