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

Evan Cheng evan.cheng at apple.com
Mon Jul 12 11:22:30 PDT 2010


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.

Evan

> 
> -Chris





More information about the llvm-commits mailing list