[llvm-bugs] [Bug 31994] New: std::to_string with constant input not optimized to string constant
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Feb 17 07:47:40 PST 2017
https://bugs.llvm.org/show_bug.cgi?id=31994
Bug ID: 31994
Summary: std::to_string with constant input not optimized to
string constant
Product: libraries
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: Scalar Optimizations
Assignee: unassignedbugs at nondot.org
Reporter: trass3r at gmail.com
CC: llvm-bugs at lists.llvm.org
#include <string>
std::string foo() {
return std::to_string(5u);
}
$ clang++ -S -O3 -std=c++14
foo[abi:cxx11](): # @foo[abi:cxx11]()
push rbx
mov rbx, rdi
mov esi, vsnprintf
mov edx, 16
mov ecx, .L.str
mov r8d, 5
xor eax, eax
call __gnu_cxx::__to_xstring(int (*)(char*, unsigned long, char
const*, __va_list_tag*), unsigned long, char const*, ...)
mov rax, rbx
pop rbx
ret
There was a post on the libstdc++ mailing list about this some time ago. They
recommended better optimization of the vsnprintf builtin:
https://gcc.gnu.org/ml/libstdc++/2015-01/msg00007.html
When using the specialized to_string implementation from VisualC's STL gcc and
clang are perfectly able to figure out the string constant.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170217/4eb2966a/attachment.html>
More information about the llvm-bugs
mailing list