[llvm-commits] [llvm] r44687 - in /llvm/trunk: include/llvm/CodeGen/Passes.h lib/CodeGen/LLVMTargetMachine.cpp lib/CodeGen/MachineLICM.cpp lib/Target/PowerPC/PPCInstrInfo.td

Evan Cheng evan.cheng at apple.com
Mon Dec 10 11:36:47 PST 2007


On Dec 10, 2007, at 6:47 AM, Dan Gohman wrote:

>> Thanks for pointing this out. I'll go over it when I'm doing the  
>> load/
>> store instructions in my pass.
>
> Hi Bill,
>
> How involved will MachineLICM be? After LLVM's main LICM pass runs, it
> seems all that's left for MachineLICM to do are just the constant-pool
> loads, immediates, etc. that aren't exposed in the main LLVM IR,  
> things
> that don't require alias analysis.

I think this is probably true. I'd be surprised if  machine level LICM  
would require alias analysis.
>
>
> And if that's all it's doing, MachineLICM's traversal could be  
> simplified
> a little. Instead of visiting each loop individually, taking care to  
> avoid
> revisiting to blocks within inner loops, the pass could just traverse
> entire outer-most loops, which will implicitly include the blocks of  
> any
> inner loops. Instructions nested deep in inner loops can then be  
> hoisted
> all the way out of the outer-most loop in a single step instead of  
> being
> hoisted out one loop at a time.

I don't think lifting loop invariant from inner loop all the way out  
of outer-most loop is a good idea. That will increase register  
pressure in basic blocks where it is not used.

Evan

>
>
> Dan
>
> -- 
> Dan Gohman, Cray Inc.
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list