[LLVMdev] LoopInterchange Pass
satya_jandhayala at yahoo.com
Sat Jul 17 15:25:56 PDT 2010
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
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...
More information about the llvm-dev