[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

Dan Gohman djg at cray.com
Mon Dec 10 06:47:41 PST 2007


> 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.

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.

Dan

-- 
Dan Gohman, Cray Inc.



More information about the llvm-commits mailing list