[LLVMdev] LoopInterchange Pass
Devang Patel
devang.patel at gmail.com
Wed Jul 14 11:21:39 PDT 2010
Hi Satya,
On Tue, Jul 13, 2010 at 12:06 PM, Satya Jandhayala <
satya_jandhayala at yahoo.com> wrote:
> Hi,
>
> 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() ?
-
Devang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100714/4e03a9f0/attachment.html>
More information about the llvm-dev
mailing list