[RDF] Add registers to live set even if they are live already

When calculating kills, a register may be considered live because a part
of it is live, but if there is a use of that (whole) register, the whole
register (and its subregisters) need to be added to the live set.

llvm-svn: 292845
This commit is contained in:
Krzysztof Parzyszek 2017-01-23 23:03:49 +00:00
parent 0f550c8176
commit 09a8638724
1 changed files with 5 additions and 6 deletions

View File

@ -803,8 +803,7 @@ void Liveness::resetKills(MachineBasicBlock *B) {
IsLive = true; IsLive = true;
break; break;
} }
if (IsLive) if (!IsLive)
continue;
Op.setIsKill(true); Op.setIsKill(true);
for (MCSubRegIterator SR(R, &TRI, true); SR.isValid(); ++SR) for (MCSubRegIterator SR(R, &TRI, true); SR.isValid(); ++SR)
Live.set(*SR); Live.set(*SR);