diff options
author | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2016-07-07 14:31:19 +0000 |
---|---|---|
committer | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2016-07-07 14:31:19 +0000 |
commit | 7435a910b56344d19033bea84b2040be90c05062 (patch) | |
tree | 5a22df26342dd1d4994f30aac5384b6aa12dd307 /llvm/lib/Transforms | |
parent | 64c32d6f020beb3632d3e5fbdfbdea88f4847a73 (diff) | |
download | bcm5719-llvm-7435a910b56344d19033bea84b2040be90c05062.tar.gz bcm5719-llvm-7435a910b56344d19033bea84b2040be90c05062.zip |
Addressing post-commit comments for not rewriting fputs:
moved the optimise for size check inside function optimizeFPuts.
llvm-svn: 274758
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp index 9bba359ce71..c2986951e48 100644 --- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp @@ -1836,6 +1836,11 @@ Value *LibCallSimplifier::optimizeFWrite(CallInst *CI, IRBuilder<> &B) { Value *LibCallSimplifier::optimizeFPuts(CallInst *CI, IRBuilder<> &B) { optimizeErrorReporting(CI, B, 1); + // Don't rewrite fputs to fwrite when optimising for size because fwrite + // requires more arguments and thus extra MOVs are required. + if (CI->getParent()->getParent()->optForSize()) + return nullptr; + // We can't optimize if return value is used. if (!CI->use_empty()) return nullptr; @@ -2056,8 +2061,6 @@ Value *LibCallSimplifier::optimizeCall(CallInst *CI) { case LibFunc::fwrite: return optimizeFWrite(CI, Builder); case LibFunc::fputs: - if (CI->getParent()->getParent()->optForSize()) - return nullptr; return optimizeFPuts(CI, Builder); case LibFunc::log: case LibFunc::log10: |