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

Chris Lattner sabre at nondot.org
Mon Jul 12 14:44:00 PDT 2010


On Jul 12, 2010, at 11:22 AM, Evan Cheng wrote:

> 
> On Jul 12, 2010, at 8:29 AM, Chris Lattner wrote:
> 
>> 
>> On Jul 12, 2010, at 12:57 AM, Evan Cheng wrote:
>> 
>>>> change machinelicm to use MachineInstr::isSafeToMove.  No
>>>> intended functionality change.
>>>> 
>>>> The avoidance of hoistiing implicitdef seems wrong though.
>>> 
>>> It's not. We want to avoid creating implicitdef with no trivial live intervals. The trivial ones will be converted to undef machine operands which do not take up registers. 
>> 
>> Why?  The register allocator treats them specially just so they don't use a register (according to Jakob).
> 
> No, that's not correct. The ones with trivial live intervals, i.e. defined and used in the same BB, are converted to undef operands. These do not take up registers. The ones that have uses outside of the definition block *may* not be eliminated. Those will take up registers.

Jakob, didn't you just tell me that the RA turned them into trivial short live ranges?  If not, isn't that the right thing to do?

-Chris



More information about the llvm-commits mailing list