[llvm-commits] [PATCH] Accidental <kill> on two-address operand

Jakob Stoklund Olesen stoklund at 2pi.dk
Mon Aug 3 13:34:08 PDT 2009


On 03/08/2009, at 04.23, Evan Cheng wrote:

>> The generated code looks like this:
>>
>> %reg1032<def> = MOVENCC_z %reg1031<kill>
>> %reg1032<def> = BITTGL %reg1032, 0
>>
>> In this case a kill flag is also added to BITTGL, and
>> TwoAddressInstructionPass fails to remove it again. Probably because
>> it is expecting SSA code as input?
>
> I am confused. Is BITTGL a two-address instruction? Is MOVENCC_z the
> copy instruction? If so, then this is perfectly legal.

Yes and Yes, but both can be inserted by copyRegToReg /before/ two- 
address pass. That means non-SSA instructions before two-address has  
run.





More information about the llvm-commits mailing list