summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
diff options
context:
space:
mode:
authorSjoerd Meijer <sjoerd.meijer@arm.com>2016-07-07 14:31:19 +0000
committerSjoerd Meijer <sjoerd.meijer@arm.com>2016-07-07 14:31:19 +0000
commit7435a910b56344d19033bea84b2040be90c05062 (patch)
tree5a22df26342dd1d4994f30aac5384b6aa12dd307 /llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
parent64c32d6f020beb3632d3e5fbdfbdea88f4847a73 (diff)
downloadbcm5719-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/Utils/SimplifyLibCalls.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp7
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:
OpenPOWER on IntegriCloud