On Dec 10, 2007 4:38 PM, Chris Lattner <[EMAIL PROTECTED]> wrote: > With that said, licm should hoist things as far out as possible. The > LLVM LICM pass is structured the way it is in order to hoist loads > out, which require checking alias information at each level of a loop > nest. We don't have short-term plans to hoist out loops (which will > require extensive machine aliasing support), so switching to a model > like dan describes (single pass over all bb's in outermost loops, > hoisting instructions once instead of iteratively) makes sense to me. > I'm confused. If we do that, we won't be able to hoist things in inner loops into their pre-header blocks. Or are you suggesting that the machine LICM pass looks for loop-invariant instructions. If they can be hoisted all of the way out, then do that. Otherwise, find each containing loop and try to hoist to that pre-header?
-bw _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits