aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Utils/SimplifyLibCalls.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Transforms/Utils/SimplifyLibCalls.cpp')
-rw-r--r--lib/Transforms/Utils/SimplifyLibCalls.cpp7
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) {