diff options
Diffstat (limited to 'lib/Transforms/Utils/SimplifyLibCalls.cpp')
-rw-r--r-- | lib/Transforms/Utils/SimplifyLibCalls.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Transforms/Utils/SimplifyLibCalls.cpp b/lib/Transforms/Utils/SimplifyLibCalls.cpp index 83c74e7519..355bcc08b2 100644 --- a/lib/Transforms/Utils/SimplifyLibCalls.cpp +++ b/lib/Transforms/Utils/SimplifyLibCalls.cpp @@ -1852,6 +1852,13 @@ Value *LibCallSimplifierImpl::optimizeCall(CallInst *CI) { if (Optimizations.empty()) initOptimizations(); + // @LOCALMOD-BEGIN + Function *Caller = CI->getParent()->getParent(); + LibFunc::Func F = LibFunc::NumLibFuncs; + // Don't modify the implementation of known library functions + if (TLI->getLibFunc(Caller->getName(), F)) + return 0; + // @LOCALMOD-END Function *Callee = CI->getCalledFunction(); LibCallOptimization *LCO = Optimizations.lookup(Callee->getName()); if (LCO) { |