On Dec 12, 2007, at 11:12 AM, Bill Wendling wrote: > >> One thing that is some what annoying to me is if LICM is after live >> variables then it won't need to compute vreg def info or liveness >> info. I wonder if it is possible to move the pass after live >> variables? >> > I'm sure I could move it, but as Chris asked, isn't it trivial to get > this information anyway? Also, I'm kind of hesitant to put so much > effort into compile-time performance issues when it doesn't even have > partial (let alone full) functionality right now. We don't know what > impact any of those optimizations have or if they are necessary yet. > :-)
It's something to keep in mind. Not critical right now if we are not hoisting anything with implicit defs / uses. If we are keeping LICM before livevariables, we will have to compute liveness in the BB's where the invariants are hoisted to. Now that I think about it, we *cannot* use the register scavenger to do this because it also depends on kill / dead markers on the operands. The scavenger's job is not to add the kill / dead markers, it is to track what registers are live at any point of the BB. This means you'll have to walk the BB and track all physical register defs and uses in the BB. Evan > > -bw > _______________________________________________ > 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