[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