LLVM 的后序支配树(Post Dominator Tree)使用方法


在头文件llvm/Analysis/PostDominators.h中提供了后序支配树PostDominatorTree。

方法与前序支配树DominatorTree类似,可以查看文章在LLVM中如何判断二个基本块(Basic Block)的支配关系。


Function* F; 
...
//为函数*F的控制流图构建后支配树(PostDominatorTree)
PostDominatorTree* PostDT=new PostDominatorTree();
PostDT->runOnFunction(*F);
//打印出支配树
PostDT->print(errs(),0);
//打印出所有基本块之间的支配关系
for(Function::iterator I=F->begin(),E=F->end();I!=E;I++){
  for(Function::iterator J=F->begin(),JE=F->end();J!=JE;J++){
    errs()<getName()<<" "<getName()<<" "<dominates(I,J)<<"\n";
  }
}


你可能感兴趣的:(LLVM,CFG)