Minor std::to_chars optimisation for base 10
authorAntony Polukhin <antoshkka@gmail.com>
Mon, 9 Sep 2019 11:12:44 +0000 (11:12 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Mon, 9 Sep 2019 11:12:44 +0000 (12:12 +0100)
commitd0e086ae4f9ac2138a5fa6c6405c61b1f7ae032d
treeb59733708c7b9a3b4caa6d4ecb5aad284d1b7d7b
parent27dada7d06926cc7ef6293fbbf0629f523b49e48
Minor std::to_chars optimisation for base 10

__to_chars_10_impl is quite fast. According to the IACA the main loop
takes only 6.0 cycles, the whole function with one iteration takes
10.0 cycles. Replacing the __first[pos] and __first[pos - 1] with
__first[0] and __first[1] drops the function time to 7.53 cycles.

2019-09-09  Antony Polukhin  <antoshkka@gmail.com>

* include/bits/charconv.h (__detail::__to_chars_10_impl): Replace
final offsets with constants.

From-SVN: r275514
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/charconv.h