[LLVMdev] Bug? Coalescing & Updating Subreg Intervals
Evan Cheng
evan.cheng at apple.com
Fri Feb 22 00:41:36 PST 2008
On Feb 21, 2008, at 9:06 AM, David Greene wrote:
> On Thursday 21 February 2008 10:53, David Greene wrote:
>
>> Why do we do this trimming? The comment seems to say we don't care
>> about
>> the rest of the live range from Clobbers (%reg1026 in this case)
>> but that
>> doesn't match with our expectation that %reg15 will contain all of
>> the live
>> range information from %reg1026.
>
> I'll add that merging this correctly could get tricky. %reg15
> contains the
> following live ranges, all of which overlap [458,5168:0 [0]) from
> %reg1026:
>
> [938,942:1 [0])[942,943:2 [0])[962,966:3 [0])[966,967:4 [0])
> [1242,1246:5 [0])
> [1246,1247:6 [0])[1266,1270:7 [0])[1270,1271:8 [0])[1578,1582:9 [0])
> [1582,1583:10 [0])[1602,1606:11 [0])[1606,1607:12 [0])[2314,2318:13
> [0])
> [2318,2319:14 [0])[2338,2342:15 [0])[2342,2343:16 [0])[3366,3370:17
> [0])
> [3370,3371:18 [0])[3390,3394:19 [0])[3394,3395:20 [0])[3642,3646:21
> [0])
> [3646,3647:22 [0])[3666,3670:23 [0])[3670,3671:24 [0])[3942,3946:25
> [0])
> [3946,3947:26 [0])[3966,3970:27 [0])[3970,3971:28 [0])
>
> They all have different value numbers. How should this get merged
> in this
> case? Do we process each of these live ranges against [458,5168:0
> [0])
> using the existing code?
>
> What do we do with the holes between them? Fill them with new ranges
> that have an unknown definition value?
All of the new ranges, including values, should be from the new val#
defined by an unknown instruction. This does prevent further
coalescing but should be correct.
Evan
>
>
> -Dave
> _______________________________________________
> 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