aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
diff options
context:
space:
mode:
authorJoerg Sonnenberger <joerg@bec.de>2016-05-09 14:36:16 +0000
committerJoerg Sonnenberger <joerg@bec.de>2016-05-09 14:36:16 +0000
commit8ffe7ab7c212f4b10c50a9ff500eb4757e43c701 (patch)
treedc3d1fc11c6ce79ad99606cf1eaf1646af3db2bb /llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
parent5c20e27b7fcc8fad80f9c209f4d49c6995bd5cc2 (diff)
downloadllvm-8ffe7ab7c212f4b10c50a9ff500eb4757e43c701.zip
llvm-8ffe7ab7c212f4b10c50a9ff500eb4757e43c701.tar.gz
llvm-8ffe7ab7c212f4b10c50a9ff500eb4757e43c701.tar.bz2
Optimize a printf with a double procent to putchar.
llvm-svn: 268922
Diffstat (limited to 'llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
index 42b3cef..d0fb0d32 100644
--- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
@@ -1598,8 +1598,8 @@ Value *LibCallSimplifier::optimizePrintFString(CallInst *CI, IRBuilder<> &B) {
if (!CI->use_empty())
return nullptr;
- // printf("x") -> putchar('x'), even for '%'.
- if (FormatStr.size() == 1)
+ // printf("x") -> putchar('x'), even for "%" and "%%".
+ if (FormatStr.size() == 1 || FormatStr == "%%")
return emitPutChar(B.getInt32(FormatStr[0]), B, TLI);
// printf("%s", "a") --> putchar('a')