On Dec 10, 2007 3:44 PM, Evan Cheng <[EMAIL PROTECTED]> wrote: > On Dec 10, 2007, at 1:23 PM, Bill Wendling wrote: > > On Dec 10, 2007 11:36 AM, Evan Cheng <[EMAIL PROTECTED]> wrote: > >> 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. > >> > > This is going to happen with the current pass, though. Each loop is > > going to see the hoisted instructions from the previous iteration and > > try to re-hoist them. Is there some heuristic we should apply to > > prevent it from hoisting instructions too far? > > > > I am not sure. :-) > > For innermost loops, hoisting invariants out into the preheader always > make sense. Intuitively, hoisting invariants from inner loops out of > the outermost loop only makes sense when all (or a lot, whatever that > means :-) of the inner loops use it. Or at least the first inner loop > use it. > > What does the LLVM level LICM do? > It does the same thing that Machine LICM does...tries to hoist things as far as possible.
-bw _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits