forked from OSchip/llvm-project
r64073 commit message is lost. Here it is:
Right now if the coalesced copy def is dead and its src is a kill, and that there are now other uses within the live range, the coalescer would mark the def of the source register as dead. But it should also check if there are other kills which means the value has other uses not in the live range. llvm-svn: 64075
This commit is contained in:
parent
f876bc9388
commit
fe014df914
|
@ -867,11 +867,12 @@ SimpleRegisterCoalescing::ShortenDeadCopySrcLiveRange(LiveInterval &li,
|
|||
if (LR->valno->def == RemoveStart) {
|
||||
// If the def MI defines the val# and this copy is the only kill of the
|
||||
// val#, then propagate the dead marker.
|
||||
if (li.isOnlyKill(LR->valno, RemoveEnd)) {
|
||||
if (!li.isOnlyKill(LR->valno, RemoveEnd))
|
||||
li.removeKill(LR->valno, RemoveEnd);
|
||||
else {
|
||||
PropagateDeadness(li, CopyMI, RemoveStart, li_, tri_);
|
||||
++numDeadValNo;
|
||||
} else
|
||||
li.removeKill(LR->valno, RemoveEnd);
|
||||
}
|
||||
}
|
||||
|
||||
removeRange(li, RemoveStart, LR->end, li_, tri_);
|
||||
|
|
Loading…
Reference in New Issue