Simplify code. No intended functionality/performance change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92938 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2010-01-07 19:46:15 +00:00
parent e6c74c9c2a
commit 2e0de6f771

View File

@ -481,32 +481,21 @@ PreAllocSplitting::PerformPHIConstruction(MachineBasicBlock::iterator UseI,
// Search for the use in this block that precedes the instruction we care // Search for the use in this block that precedes the instruction we care
// about, going to the fallback case if we don't find it. // about, going to the fallback case if we don't find it.
if (UseI == MBB->begin())
return PerformPHIConstructionFallBack(UseI, MBB, LI, Visited, Defs,
Uses, NewVNs, LiveOut, Phis,
IsTopLevel, IsIntraBlock);
MachineBasicBlock::iterator Walker = UseI; MachineBasicBlock::iterator Walker = UseI;
--Walker;
bool found = false; bool found = false;
while (Walker != MBB->begin()) { while (Walker != MBB->begin()) {
--Walker;
if (BlockUses.count(Walker)) { if (BlockUses.count(Walker)) {
found = true; found = true;
break; break;
} }
--Walker;
}
// Must check begin() too.
if (!found) {
if (BlockUses.count(Walker))
found = true;
else
return PerformPHIConstructionFallBack(UseI, MBB, LI, Visited, Defs,
Uses, NewVNs, LiveOut, Phis,
IsTopLevel, IsIntraBlock);
} }
if (!found)
return PerformPHIConstructionFallBack(UseI, MBB, LI, Visited, Defs,
Uses, NewVNs, LiveOut, Phis,
IsTopLevel, IsIntraBlock);
SlotIndex UseIndex = LIs->getInstructionIndex(Walker); SlotIndex UseIndex = LIs->getInstructionIndex(Walker);
UseIndex = UseIndex.getUseIndex(); UseIndex = UseIndex.getUseIndex();
SlotIndex EndIndex; SlotIndex EndIndex;
@ -533,17 +522,11 @@ PreAllocSplitting::PerformPHIConstruction(MachineBasicBlock::iterator UseI,
// This case is basically a merging of the two preceding case, with the // This case is basically a merging of the two preceding case, with the
// special note that checking for defs must take precedence over checking // special note that checking for defs must take precedence over checking
// for uses, because of two-address instructions. // for uses, because of two-address instructions.
if (UseI == MBB->begin())
return PerformPHIConstructionFallBack(UseI, MBB, LI, Visited, Defs, Uses,
NewVNs, LiveOut, Phis,
IsTopLevel, IsIntraBlock);
MachineBasicBlock::iterator Walker = UseI; MachineBasicBlock::iterator Walker = UseI;
--Walker;
bool foundDef = false; bool foundDef = false;
bool foundUse = false; bool foundUse = false;
while (Walker != MBB->begin()) { while (Walker != MBB->begin()) {
--Walker;
if (BlockDefs.count(Walker)) { if (BlockDefs.count(Walker)) {
foundDef = true; foundDef = true;
break; break;
@ -551,21 +534,13 @@ PreAllocSplitting::PerformPHIConstruction(MachineBasicBlock::iterator UseI,
foundUse = true; foundUse = true;
break; break;
} }
--Walker;
}
// Must check begin() too.
if (!foundDef && !foundUse) {
if (BlockDefs.count(Walker))
foundDef = true;
else if (BlockUses.count(Walker))
foundUse = true;
else
return PerformPHIConstructionFallBack(UseI, MBB, LI, Visited, Defs,
Uses, NewVNs, LiveOut, Phis,
IsTopLevel, IsIntraBlock);
} }
if (!foundDef && !foundUse)
return PerformPHIConstructionFallBack(UseI, MBB, LI, Visited, Defs,
Uses, NewVNs, LiveOut, Phis,
IsTopLevel, IsIntraBlock);
SlotIndex StartIndex = LIs->getInstructionIndex(Walker); SlotIndex StartIndex = LIs->getInstructionIndex(Walker);
StartIndex = foundDef ? StartIndex.getDefIndex() : StartIndex.getUseIndex(); StartIndex = foundDef ? StartIndex.getDefIndex() : StartIndex.getUseIndex();
SlotIndex EndIndex; SlotIndex EndIndex;