Don't insert a PHI node to merge "returns" from an inlined function if there

is only a single return from the function!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3878 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-09-22 18:41:25 +00:00
parent 172b648cd4
commit bdccb00970

View File

@ -190,7 +190,18 @@ bool InlineFunction(CallInst *CI) {
RemapInstruction(II, ValueMap);
}
if (PHI) RemapInstruction(PHI, ValueMap); // Fix the PHI node also...
if (PHI) {
RemapInstruction(PHI, ValueMap); // Fix the PHI node also...
// Check to see if the PHI node only has one argument. This is a common
// case resulting from there only being a single return instruction in the
// function call. Because this is so common, eliminate the PHI node.
//
if (PHI->getNumIncomingValues() == 1) {
PHI->replaceAllUsesWith(PHI->getIncomingValue(0));
PHI->getParent()->getInstList().erase(PHI);
}
}
// Change the branch that used to go to NewBB to branch to the first basic
// block of the inlined function.