[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...
Size: 26396 bytes
Desc: not available
More information about the llvm-dev