[LLVMdev] LiveInterval Questions

Evan Cheng evan.cheng at apple.com
Thu Jan 17 11:04:13 PST 2008


On Jan 16, 2008, at 11:19 PM, Christopher Lamb wrote:

> On Jan 16, 2008, at 11:49 AM, David Greene wrote:
>
>> I had been assuming that give a LiveRange a, a.valno->def, if
>> valid, would be the same as a.start.  But this is apparently not
>> always the case.  For example:
>>
>>     Predecessors according to CFG: 0x839d130 (#3) 0x8462780 (#35)
>> 308	%reg1051 = MOV64rr %reg1227<kill>
>> 312	%reg1052 = MOV64rr %reg1228<kill>
>> 316	%reg1053 = MOV64rr %reg1229<kill>
>> 320	%reg1054 = MOV64rr %reg1230<kill>
>> 324	%reg1055<dead> = LEA64r %reg1047, 1, %reg1053, 0
>> 328	%reg1135 = MOVSX64rr32 %reg1025
>> 332	%reg1136 = MOV64rr %reg1135<kill>
>> 336	%reg1136 = ADD64ri32 %reg1136, -4, %EFLAGS<imp-def,dead>
>> 340	TEST64rr %reg1136<kill>, %reg1136, %EFLAGS<imp-def>
>> 344	JNS mbb<file solve.f, line 23, in loop at depth 1,  
>> bb16,0x83a2c70>,
>> %EFLAGS<imp-use,kill>
>
> David, could you post the live ins/outs for the block? My thinking  
> is that %reg1055 may be live through the block.

Probably not the case. reg1055 is marked dead so its live range should  
end right there. My guess is this is a coalescing bug. But I need a  
test case.

Evan

> --
> Christopher Lamb
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list