[LLVMdev] iterate over loops inside the runOnFunction
Zheng Wang
jason.wangz at gmail.com
Tue Apr 20 05:29:29 PDT 2010
Here is an example. You can also check lib/Scalar/LoopUnroll.cpp.
-----------------------------------
void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<LoopInfo>();
AU.addPreserved<LoopInfo>();
...
}
virtual bool runOnFunction(Function &F)
{
LoopInfo &LI = getAnalysis<LoopInfo>();
for (LoopInfo::iterator i = LI.begin(), e =
LI.end(); i != e; ++i) {
//This is for subLoops ... and you can iteratively do it as the same.
std::vector<Loop*> subLoops = i->getSubLoops();
}
-----------------
}
On 20 April 2010 12:22, khaled hamidouche <khaledhamidouche at gmail.com> wrote:
> Hello
> I'm wandring to write a Function parser that iterates over loops inside each
> function and inside each loop iterates over instructions
>
> So I found a way to do the Function parser that iterates over BasicBlocks
> (using the runOnfunction Pass) but I no know how make it iterates over
> loops ?
>
> So my question is there any way to make a loop inside the runOnfunction to
> iterate over "loops" (just like with the Basicblock loop "for
> (BasicBlock::iterator i = b->begin(), ie = b->end(); i != ie; ++i) " ) ?
>
> Thank you so much for helping me
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
--
Best regards,
WANG Zheng
More information about the llvm-dev
mailing list