[llvm-commits] [llvm] r134216 - /llvm/trunk/lib/CodeGen/RegisterCoalescer.cpp
Jakob Stoklund Olesen
stoklund at 2pi.dk
Thu Jun 30 18:30:37 PDT 2011
On Jun 30, 2011, at 6:25 PM, Rafael Ávila de Espíndola wrote:
> On 06/30/2011 08:36 PM, Jakob Stoklund Olesen wrote:
>>
>> On Jun 30, 2011, at 5:16 PM, Rafael Espindola wrote:
>>
>>> + // FIXME: If "B = X" kills X, we have to move the kill back to its
>>> + // previous use. For now we just avoid the optimization in that case.
>>> + if (MI->getOperand(1).isKill())
>>> + return false;
>>
>> It's not so much the kill flags, they are actually recomputed after
>> register allocation.
>>
>> It is important that the live ranges are updated, though. You need to
>> shrink X to its uses when you remove a use.
>>
>> There doesn't have to be a kill flag: If you are removing the last use
>> in a loop where X is not live out, it doesn't have to be live in the
>> loop any more.
>
> So the check should be "at the end of the life range"? Is
>
> LifeRangeX.contains(CopySlot.getNextSlot())
>
> the best way to check that?
LR.killedAt(CopySlot).
/jakob
More information about the llvm-commits
mailing list