diff options
Diffstat (limited to 'include/llvm/Transforms/Utils/SimplifyLibCalls.h')
| -rw-r--r-- | include/llvm/Transforms/Utils/SimplifyLibCalls.h | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/include/llvm/Transforms/Utils/SimplifyLibCalls.h b/include/llvm/Transforms/Utils/SimplifyLibCalls.h index 2572094ddac8..88c2ef787ad8 100644 --- a/include/llvm/Transforms/Utils/SimplifyLibCalls.h +++ b/include/llvm/Transforms/Utils/SimplifyLibCalls.h @@ -126,6 +126,12 @@ private:    /// Erase an instruction from its parent with our eraser.    void eraseFromParent(Instruction *I); +  /// Replace an instruction with a value and erase it from its parent. +  void substituteInParent(Instruction *I, Value *With) { +    replaceAllUsesWith(I, With); +    eraseFromParent(I); +  } +    Value *foldMallocMemset(CallInst *Memset, IRBuilder<> &B);  public: @@ -154,6 +160,7 @@ private:    Value *optimizeStrRChr(CallInst *CI, IRBuilder<> &B);    Value *optimizeStrCmp(CallInst *CI, IRBuilder<> &B);    Value *optimizeStrNCmp(CallInst *CI, IRBuilder<> &B); +  Value *optimizeStrNDup(CallInst *CI, IRBuilder<> &B);    Value *optimizeStrCpy(CallInst *CI, IRBuilder<> &B);    Value *optimizeStpCpy(CallInst *CI, IRBuilder<> &B);    Value *optimizeStrNCpy(CallInst *CI, IRBuilder<> &B); @@ -164,14 +171,17 @@ private:    Value *optimizeStrCSpn(CallInst *CI, IRBuilder<> &B);    Value *optimizeStrStr(CallInst *CI, IRBuilder<> &B);    Value *optimizeMemChr(CallInst *CI, IRBuilder<> &B); +  Value *optimizeMemRChr(CallInst *CI, IRBuilder<> &B);    Value *optimizeMemCmp(CallInst *CI, IRBuilder<> &B);    Value *optimizeBCmp(CallInst *CI, IRBuilder<> &B);    Value *optimizeMemCmpBCmpCommon(CallInst *CI, IRBuilder<> &B); +  Value *optimizeMemPCpy(CallInst *CI, IRBuilder<> &B);    Value *optimizeMemCpy(CallInst *CI, IRBuilder<> &B);    Value *optimizeMemMove(CallInst *CI, IRBuilder<> &B);    Value *optimizeMemSet(CallInst *CI, IRBuilder<> &B);    Value *optimizeRealloc(CallInst *CI, IRBuilder<> &B);    Value *optimizeWcslen(CallInst *CI, IRBuilder<> &B); +  Value *optimizeBCopy(CallInst *CI, IRBuilder<> &B);    // Wrapper for all String/Memory Library Call Optimizations    Value *optimizeStringMemoryLibCall(CallInst *CI, IRBuilder<> &B); | 
