[LLVMdev] LoopInterchange Pass

Satya Jandhayala satya_jandhayala at yahoo.com
Sat Jul 17 15:25:56 PDT 2010

Hi Devang,
Thanks for the feed back.
I took care of function naming and limiting comments to 80 columns.
I am looking into implementing Loop Dependence Analysis. As of release 2.7 no data dependence analysis is being done.
--- On Wed, 7/14/10, Devang Patel <devang.patel at gmail.com> wrote:

From: Devang Patel <devang.patel at gmail.com>
Subject: Re: [LLVMdev] LoopInterchange Pass
To: "Satya Jandhayala" <satya_jandhayala at yahoo.com>
Cc: llvmdev at cs.uiuc.edu
Date: Wednesday, July 14, 2010, 11:21 AM

Hi Satya,

On Tue, Jul 13, 2010 at 12:06 PM, Satya Jandhayala <satya_jandhayala at yahoo.com> wrote:

I developed a Loop Interchange pass. Please take a look.
I have not incorporate data dependence analysis check. I can insert it when the LoopDependenceAnalysis is available.

Have you tried using include/llvm/Analysis/LoopDependenceAnalysis.h ?

Please include all the changes listed in README.txt in the patch along with a test case that is in .ll form. It makes easier to review such complete patch.

Few general comments and initial thoughts.

- Stay within 80 columns
- Add comment before each function def.
- Use at least one vertical space between function def.
- There is cut-n-paste error in runOnLoop() where the code checks LCSSA form.

>   std::vector<std::pair<Loop*,Loop*> > interchangedLoops;

This may not be the most reliable way to keep track of interchangedLoops. This vector must be recomputed if loop info is recreated.  It must be updated if a loop is replaced or deleted by another pass.

> void LoopInterchange::updateDominators ...

However the pass does not preserve dominators info. 

> void LoopInterchange::removeChildLoop

It is a good idea to use another name for this method to avoid any confusion with Loop::removeChildLoop.

What is the difference between updateSSA() and updateSSAAgain() ?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100717/8d3b8889/attachment.html>

More information about the llvm-dev mailing list