如何处理llvm生成的DFS调用图

如何处理llvm生成的DFS调用图,llvm,llvm-clang,call-graph,Llvm,Llvm Clang,Call Graph,我想在llvm生成的调用图上进行DFS(深度优先搜索)遍历,即我正在使用以下代码,但仍停留在如何进一步进行的问题上 bool runOnModule(Module &M) override { CallGraph cg = CallGraph(M); cg.dump(); CallGraph::iterator beg = cg.begin(); CallGraph::iterator end = cg.

我想在llvm生成的调用图上进行DFS(深度优先搜索)遍历,即我正在使用以下代码,但仍停留在如何进一步进行的问题上

bool runOnModule(Module &M) override
    {
        CallGraph cg = CallGraph(M);
         cg.dump();

         CallGraph::iterator beg =  cg.begin();

         CallGraph::iterator end = cg.end();

         return false;
    }

上面的代码只转储调用图。但我想从main方法开始对它进行DFS遍历。我使用叮当声作为前端。怎么做

学习使用LLVM图形迭代器后,深度优先遍历非常简单:

#包括
bool RUNNOMODule(模块和M)超控{
调用图CG=调用图(M);
对于(自动IT=df_开始(&CG),EI=df_结束(&CG);IT!=EI;IT++){
if(Function*F=IT->getFunction()){
dbgs()