OSDN Git Service

[RegisterCoalscer] Manually remove leftover segments when commuting def
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>
Tue, 21 Aug 2018 19:01:26 +0000 (19:01 +0000)
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>
Tue, 21 Aug 2018 19:01:26 +0000 (19:01 +0000)
commit3682387e68b164d03fe997bb9c0637961714d12c
tree261e111de1878ab508d3052a2d70a7c034c82192
parentbe8b313cd233bf0c399c05a9fdf56266d08b604c
[RegisterCoalscer] Manually remove leftover segments when commuting def

In removeCopyByCommutingDef, segments from the source live range are
copied into (and merged with) the segments of the target live range.
This is performed for all subranges of the source interval. It can
happen that there will be subranges of the target interval that had
no corresponding subranges in the source interval, and in such cases
these subrages will not be updated. Since the copy being coalesced
is about to be removed, these ranges need to be updated by removing
the segments that are started by the copy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@340318 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegisterCoalescer.cpp
test/CodeGen/SystemZ/subregliveness-07.mir [new file with mode: 0644]