Spliter will try to extend a live range into r slot for a use operand,
that's works on most situaion, however that not work correctly when the operand
has tied to def, and the def operand is early clobber.
Give an example to demo what's wrong:
0 %0 = ...
16 early-clobber %0 = Op %0 (tied-def 0), ...
32 ... = Op %0
Before extend:
%0 = [0r, 0d) [16e, 32d)
The point we want to extend is 0d to 16e not 16r in this case, but if
we use 16r here we will extend nothing because that already contained
in [16e, 32d).
This patch add check for detect such case and adjust the extend point.
Detailed explanation for testcase: https://reviews.llvm.org/D126047
sorry for the naive question, what's the mean of (tied-def 0)?
Does it only mean that the operand is early-clobber? or tied-def 0 implicit defined the higher bits are zero ?
I also don't known what is the mean of "0r, 0d, 16e and 32d".