[LLVMdev] Back end loop invariant opt

Christopher Lamb christopher.lamb at gmail.com
Sat Mar 24 20:42:42 PDT 2007


Hi All,

It seems to me that there is potential for doing some target  
independent loop invariant optimizations in the back end, but prior  
to instruction selection. For instance, I noticed that the loop  
invariant constant generated for a loop bounds check is still stuck  
inside the loop. Likewise constant address generated for globals  
accessed within a loop are generated on each iteration, even though  
they are invariant.

I'm most familiar with LLVM's target interface and code gen and I'm  
not fully up to speed on the optimization framework. Is there an  
existing optimization pass that handles these cases that I've failed  
to properly enable or hook into? Is there something that inherently  
prevents these from being target independent optimizations, requiring  
a target specific opt pass? Is this simply an optimization pass that  
hasn't been implemented yet, but is a good idea?

Thanks
--
Christopher Lamb
christopher.lamb at gmail.com


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070324/75e58c54/attachment.html>


More information about the llvm-dev mailing list