[LLVMdev] <IsKill> getting from MachineOperand is just <Used> attribute from logic.

任坤 hbrenkun at yahoo.cn
Thu Jan 14 18:39:33 PST 2010


I have ported LLC to a risc cpu. It can pass benchmark that I have at current. 

But I want do some optimization after register alloction by adjusting 
register using. I scan MachineBasicBlock to analyze operand's IsKill, IsDead , IsDef attribute to get a physical register's liverange. But I get a strange case at MBB.jpg.

  R4 is marked <kill> at MBB0.  If I scan R4's liverange by [MBB0->MBB1->MBB2]. I will find R4 first is killed, then is used. It can not unlogisch. Attually R4 just is <Used>. It will cause my optimization pass crash(Actually, I ingore Live In message of MBB. I recollect live in messges at my pass.).

  1. Does <kill> attribute of R4 at MBB0 is a unimportant  and redundancy messages, Or a little bug???
  2. Is it unreliable to get a physical register's liverange by Kill, Dead messages from MachineBasicBlock?? 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: MBB.jpg
Type: image/jpeg
Size: 26396 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100115/2c00f5cc/attachment.jpg>

More information about the llvm-dev mailing list