18 #ifndef LLVM_TRANSFORMS_UTILS_CLONING_H
19 #define LLVM_TRANSFORMS_UTILS_CLONING_H
99 const Twine &NameSuffix =
"", Function *
F = 0,
100 ClonedCodeInfo *CodeInfo = 0);
116 bool ModuleLevelChanges,
117 ClonedCodeInfo *CodeInfo = 0);
130 bool ModuleLevelChanges,
131 SmallVectorImpl<ReturnInst*> &Returns,
132 const char *NameSuffix =
"",
133 ClonedCodeInfo *CodeInfo = 0,
134 ValueMapTypeRemapper *TypeMapper = 0,
135 ValueMaterializer *Materializer = 0);
150 bool ModuleLevelChanges,
151 SmallVectorImpl<ReturnInst*> &Returns,
152 const char *NameSuffix =
"",
153 ClonedCodeInfo *CodeInfo = 0,
154 const DataLayout *
TD = 0,
155 Instruction *TheCall = 0);
194 bool InlineFunction(CallInst *
C, InlineFunctionInfo &IFI,
bool InsertLifetime =
true);
195 bool InlineFunction(InvokeInst *II, InlineFunctionInfo &IFI,
bool InsertLifetime =
true);
196 bool InlineFunction(CallSite CS, InlineFunctionInfo &IFI,
bool InsertLifetime =
true);
void CloneAndPruneFunctionInto(Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst * > &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=0, const DataLayout *TD=0, Instruction *TheCall=0)
Module * CloneModule(const Module *M)
bool InlineFunction(CallInst *C, InlineFunctionInfo &IFI, bool InsertLifetime=true)
void CloneFunctionInto(Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst * > &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=0, ValueMapTypeRemapper *TypeMapper=0, ValueMaterializer *Materializer=0)
SmallVector< AllocaInst *, 4 > StaticAllocas
Instr is a loop (backwards branch).
SmallVector< WeakVH, 8 > InlinedCalls
ValueMap< const Value *, WeakVH > ValueToValueMapTy
InlineFunctionInfo(CallGraph *cg=0, const DataLayout *td=0)
BasicBlock * CloneBasicBlock(const BasicBlock *BB, ValueToValueMapTy &VMap, const Twine &NameSuffix="", Function *F=0, ClonedCodeInfo *CodeInfo=0)
Function * CloneFunction(const Function *F, ValueToValueMapTy &VMap, bool ModuleLevelChanges, ClonedCodeInfo *CodeInfo=0)
bool ContainsDynamicAllocas
INITIALIZE_PASS(GlobalMerge,"global-merge","Global Merge", false, false) bool GlobalMerge const DataLayout * TD