在LLVM中识别块的封闭循环

pyt*_*nic 8 c c++ llvm

对于由类表示的LLVM基本块,BasicBlock如何识别哪个最近的循环(如果有)包含该块.我希望在runOnModule传球中识别出这一点.

Joh*_*ugo 6

您可以注册LoopInfo依赖项并使用getLoopF​​or(BasicBlock*BB):

Loop* llvm::LoopInfo::getLoopFor(const BasicBlock *BB) const 
Run Code Online (Sandbox Code Playgroud)

您可以在以下网址查看文档:http://llvm.org/doxygen/classllvm_1_1LoopInfo.html#a4abca289c73cd09487e05d11d9f7d877