Strengthen the previous check.

llvm-svn: 64076
This commit is contained in:
Evan Cheng 2009-02-08 08:24:28 +00:00
parent fe014df914
commit 942519306e
2 changed files with 12 additions and 13 deletions

View File

@ -272,17 +272,15 @@ namespace llvm {
return I != kills.end() && *I == KillIdx;
}
/// isOnlyKill - Return true if the specified index is the only kill of the
/// specified val#.
static bool isOnlyKill(const VNInfo *VNI, unsigned KillIdx) {
bool Found = false;
const SmallVector<unsigned, 4> &kills = VNI->kills;
for (unsigned i = 0, e = kills.size(); i != e; ++i) {
if (KillIdx != kills[i])
/// isOnlyLROfValNo - Return true if the specified live range is the only
/// one defined by the its val#.
bool isOnlyLROfValNo( const LiveRange *LR) {
for (const_iterator I = begin(), E = end(); I != E; ++I) {
const LiveRange *Tmp = I;
if (Tmp != LR && Tmp->valno == LR->valno)
return false;
Found = true;
}
return Found;
return true;
}
/// MergeValueNumberInto - This method is called when two value nubmers

View File

@ -489,7 +489,7 @@ static void removeRange(LiveInterval &li, unsigned Start, unsigned End,
}
/// TrimLiveIntervalToLastUse - If there is a last use in the same basic block
/// as the copy instruction, trim the ive interval to the last use and return
/// as the copy instruction, trim the live interval to the last use and return
/// true.
bool
SimpleRegisterCoalescing::TrimLiveIntervalToLastUse(unsigned CopyIdx,
@ -867,9 +867,10 @@ 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))
li.removeKill(LR->valno, RemoveEnd);
else {
if (!li.isOnlyLROfValNo(LR)) {
if (li.isKill(LR->valno, RemoveEnd))
li.removeKill(LR->valno, RemoveEnd);
} else {
PropagateDeadness(li, CopyMI, RemoveStart, li_, tri_);
++numDeadValNo;
}