[LLVMdev] Identify Loops from within FunctionPass, or possible to intermix different types of Passes?

Jeff Kunkel jdkunk3 at gmail.com
Thu Jan 6 12:06:08 PST 2011


I've never seen a LoopPass, but doing a function pass and grab the loop info
from "\llvm\Analysis\LoopInfo.h".

>From there just you use the LoopInfo api to grap the loop headers and loop
blocks and whatever else you want to do.

- Thank
Jeff Kunkel

On Thu, Jan 6, 2011 at 2:24 PM, Devang Patel <dpatel at apple.com> wrote:

>
> On Jan 6, 2011, at 9:21 AM, Chuck Zhao wrote:
>
>  LLVMers,
>
> I have a traversal plan which needs to visit certain types of Functions.
> For each instruction in such functions, I will need to know:
> 1. is it located inside a loop
> 2. if yes, what level of loop nest it is currently in.
>
> So on the highest level, it should be a FunctionPass. However, in order to
> identify loops and loop-nest levels, it should also be a LoopPass.
>
> Is there a reasonably simple way to identify loop(s) within a function
> under FunctionPass?
>
> (Any existing LLVM code that I can take a look?)
>
>
> Your FunctionPass can use LoopInfo to get this information.
>
> -
> Devang
>
>
> OR
>
> Is it possible to intermix different types of LLVM Passes?
>
> E.g.
>
> class MyPass: public FunctionPass, public LoopPass{
>   ...
> public:
>   bool runOnFunction(...);
>   bool runOnLoop(...);
>   ...
> };
>
> Does this make any sense?
> I haven't seem to find any existing LLVM pass under such uses.
>
>
> Thank you very much
>
> Chuck
>
>  _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110106/5ae345ce/attachment.html>


More information about the llvm-dev mailing list