mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-16 08:08:01 +00:00
Implement a new method: CloneAndPruneFunctionInto, as documented.
llvm-svn: 28518
This commit is contained in:
parent
1835cfb302
commit
fcb019fcb6
@ -130,6 +130,19 @@ void CloneFunctionInto(Function *NewFunc, const Function *OldFunc,
|
||||
const char *NameSuffix = "",
|
||||
ClonedCodeInfo *CodeInfo = 0);
|
||||
|
||||
/// CloneAndPruneFunctionInto - This works exactly like CloneFunctionInto,
|
||||
/// except that it does some simple constant prop and DCE on the fly. The
|
||||
/// effect of this is to copy significantly less code in cases where (for
|
||||
/// example) a function call with constant arguments is inlined, and those
|
||||
/// constant arguments cause a significant amount of code in the callee to be
|
||||
/// dead. Since this doesn't produce an exactly copy of the input, it can't be
|
||||
/// used for things like CloneFunction or CloneModule.
|
||||
void CloneAndPruneFunctionInto(Function *NewFunc, const Function *OldFunc,
|
||||
std::map<const Value*, Value*> &ValueMap,
|
||||
std::vector<ReturnInst*> &Returns,
|
||||
const char *NameSuffix = "",
|
||||
ClonedCodeInfo *CodeInfo = 0);
|
||||
|
||||
|
||||
/// CloneTraceInto - Clone T into NewFunc. Original<->clone mapping is
|
||||
/// saved in ValueMap.
|
||||
|
Loading…
Reference in New Issue
Block a user