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()<<I->getName()<<" "<<J->getName()<<" "<<PostDT->dominates(I,J)<<"\n";
  }
}


阅读更多
换一批

没有更多推荐了,返回首页