[RDF] Ignore implicit defs when resetting <kill> flags

llvm-svn: 271519
This commit is contained in:
Krzysztof Parzyszek 2016-06-02 14:30:09 +00:00
parent acae9e3b30
commit f69ff7120b
1 changed files with 5 additions and 1 deletions

View File

@ -689,7 +689,11 @@ void Liveness::resetKills(MachineBasicBlock *B) {
MI->clearKillInfo();
for (auto &Op : MI->operands()) {
if (!Op.isReg() || !Op.isDef())
// An implicit def of a super-register may not necessarily start a
// live range of it, since an implicit use could be used to keep parts
// of it live. Instead of analyzing the implicit operands, ignore
// implicit defs.
if (!Op.isReg() || !Op.isDef() || Op.isImplicit())
continue;
unsigned R = Op.getReg();
if (!TargetRegisterInfo::isPhysicalRegister(R))