|
std::unique_ptr< Module > | llvm::CloneModule (const Module &M) |
| Return an exact copy of the specified module. More...
|
|
std::unique_ptr< Module > | llvm::CloneModule (const Module &M, ValueToValueMapTy &VMap) |
|
std::unique_ptr< Module > | llvm::CloneModule (const Module &M, ValueToValueMapTy &VMap, function_ref< bool(const GlobalValue *)> ShouldCloneDefinition) |
| Return a copy of the specified module. More...
|
|
BasicBlock * | llvm::CloneBasicBlock (const BasicBlock *BB, ValueToValueMapTy &VMap, const Twine &NameSuffix="", Function *F=nullptr, ClonedCodeInfo *CodeInfo=nullptr, DebugInfoFinder *DIFinder=nullptr) |
| Return a copy of the specified basic block, but without embedding the block into a particular function. More...
|
|
Function * | llvm::CloneFunction (Function *F, ValueToValueMapTy &VMap, ClonedCodeInfo *CodeInfo=nullptr) |
| Return a copy of the specified function and add it to that function's module. More...
|
|
void | llvm::CloneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst *> &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr, ValueMapTypeRemapper *TypeMapper=nullptr, ValueMaterializer *Materializer=nullptr) |
| Clone OldFunc into NewFunc, transforming the old arguments into references to VMap values. More...
|
|
void | llvm::CloneAndPruneIntoFromInst (Function *NewFunc, const Function *OldFunc, const Instruction *StartingInst, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst *> &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr) |
| This works like CloneAndPruneFunctionInto, except that it does not clone the entire function. More...
|
|
void | llvm::CloneAndPruneFunctionInto (Function *NewFunc, const Function *OldFunc, ValueToValueMapTy &VMap, bool ModuleLevelChanges, SmallVectorImpl< ReturnInst *> &Returns, const char *NameSuffix="", ClonedCodeInfo *CodeInfo=nullptr, Instruction *TheCall=nullptr) |
| This works exactly like CloneFunctionInto, except that it does some simple constant prop and DCE on the fly. More...
|
|
InlineResult | llvm::InlineFunction (CallInst *C, InlineFunctionInfo &IFI, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true) |
| This function inlines the called function into the basic block of the caller. More...
|
|
InlineResult | llvm::InlineFunction (InvokeInst *II, InlineFunctionInfo &IFI, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true) |
|
InlineResult | llvm::InlineFunction (CallSite CS, InlineFunctionInfo &IFI, AAResults *CalleeAAR=nullptr, bool InsertLifetime=true, Function *ForwardVarArgsTo=nullptr) |
| This function inlines the called function into the basic block of the caller. More...
|
|
Loop * | llvm::cloneLoopWithPreheader (BasicBlock *Before, BasicBlock *LoopDomBB, Loop *OrigLoop, ValueToValueMapTy &VMap, const Twine &NameSuffix, LoopInfo *LI, DominatorTree *DT, SmallVectorImpl< BasicBlock *> &Blocks) |
| Clones a loop OrigLoop . More...
|
|
void | llvm::remapInstructionsInBlocks (const SmallVectorImpl< BasicBlock *> &Blocks, ValueToValueMapTy &VMap) |
| Remaps instructions in Blocks using the mapping in VMap . More...
|
|
BasicBlock * | llvm::DuplicateInstructionsInSplitBetween (BasicBlock *BB, BasicBlock *PredBB, Instruction *StopAt, ValueToValueMapTy &ValueMapping, DomTreeUpdater &DTU) |
| Split edge between BB and PredBB and duplicate all non-Phi instructions from BB between its beginning and the StopAt instruction into the split block. More...
|
|