[llvm-commits] [llvm] r44874 - /llvm/trunk/lib/CodeGen/MachineLICM.cpp

Evan Cheng evan.cheng at apple.com
Wed Dec 12 11:32:41 PST 2007


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




More information about the llvm-commits mailing list