[LLVMdev] LoopInfo of a basic block

Naznin Fauzia laboni14 at gmail.com
Mon Feb 28 16:13:15 PST 2011


Actually it didnt require the getAnalysisUsage in the loop pass. I was just
able to call the getAnalysis in my runOnLoop. That solved my problem.

Thanks guys.

On Mon, Feb 28, 2011 at 6:42 PM, Justin Holewinski <
justin.holewinski at gmail.com> wrote:

> On Mon, Feb 28, 2011 at 6:04 PM, Naznin Fauzia <laboni14 at gmail.com> wrote:
>
>> Thanks Devang and John. My pass is actually a loop pass, not a function
>> pass. So, I couldnt override the getAnalysisUsage.
>>
>
> A LoopPass is no different from a FunctionPass here.  You can use
> getAnalysisUsage and getAnalysis in a LoopPass.
>
>
>> I am in a loop pass, I know the outermost loop. Now How can I get the
>> loopInfo from here? I couldn't find helpful methods in the LoopInfo class
>> documents.
>>
>>
>> On Mon, Feb 28, 2011 at 5:52 PM, John Criswell <criswell at illinois.edu>wrote:
>>
>>>  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
>>>
>>>
>>>
>>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>
>
> --
>
> Thanks,
>
> Justin Holewinski
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110228/b78e60d9/attachment.html>


More information about the llvm-dev mailing list