Do not pass in the same argument to the extracted function more than once, and

give the extracted function a more useful name than just foo_code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13493 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-05-12 16:26:18 +00:00
parent 68bee938e5
commit 587992721c

View File

@ -226,6 +226,12 @@ void CodeExtractor::findInputsOutputs(Values &inputs, Values &outputs) {
} // for: basic blocks
NumExitBlocks = ExitBlocks.size();
// Eliminate duplicates.
std::sort(inputs.begin(), inputs.end());
inputs.erase(std::unique(inputs.begin(), inputs.end()), inputs.end());
std::sort(outputs.begin(), outputs.end());
outputs.erase(std::unique(outputs.begin(), outputs.end()), outputs.end());
}
/// constructFunction - make a function based on inputs and outputs, as follows:
@ -284,7 +290,8 @@ Function *CodeExtractor::constructFunction(const Values &inputs,
// Create the new function
Function *newFunction = new Function(funcType,
GlobalValue::InternalLinkage,
oldFunction->getName() + "_code", M);
oldFunction->getName() + "_" +
header->getName(), M);
newFunction->getBasicBlockList().push_back(newRootNode);
// Create an iterator to name all of the arguments we inserted.