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@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits