[LLVMdev] LoopInfo of a basic block
John Criswell
criswell at illinois.edu
Mon Feb 28 14:52:01 PST 2011
On 2/28/11 4:43 PM, Devang Patel wrote:
>
> On Feb 28, 2011, at 2:35 PM, Naznin Fauzia wrote:
>
>> Hi all,
>>
>> How Can I get the Loops around an Instruction?
>>
>> I know I can get the basic block of an instruction using
>> inst.getParent() which returns a BasicBlock*. Now I want to use the
>> getLoopFor(BasicBlock) method of the class LoopInfo.
>> But I dont know how to get the LoopInfo.
>>
>> BasicBlock* bb = inst.getParent();
>>
>> (... what should I add here?)
>>
>> Loop* innerloop = LI -> getLoopFor(bb):
>>
>
> Two steps:
> 1) In your pass's getAnalysisUsage(), request LoopInfo.
>
> virtual void getAnalysisUsage(AnalysisUsage &AU) const {
> AU.addRequired<LoopInfo>();
> }
>
> 2) In your runOnLoop() method get the analysis.
>
> LoopPass *LI = &getAnalysis<LoopInfo>();
>
> Now, you can do LI->getLoopFor(...)
To add to what Devang has said, you may find the doxygen docs on
LoopInfo helpful:
http://llvm.org/doxygen/classllvm_1_1LoopInfo.html
-- John T.
>
> -
> Devang
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110228/f134922d/attachment.html>
More information about the llvm-dev
mailing list