Patrick Palka
d210653f39
libstdc++: Micro-optimize __from_chars_pow2_base
...
In the first iteration of __from_chars_pow2_base's main loop, we need
to remember the value of the leading significant digit for sake of the
overflow check at the end (for base > 2).
This patch manually unrolls this first iteration so as to not encumber
the entire loop with logic that only the first iteration needs. This
seems to significantly improve performance:
Base Before After (seconds, lower is better)
2 9.36 9.37
8 3.66 2.93
16 2.93 1.91
32 2.39 2.24
libstdc++-v3/ChangeLog:
* include/std/charconv (__from_chars_pow2_base): Manually
unroll the first iteration of the main loop and simplify
accordingly.
2022-04-18 17:22:55 -04:00
..
2022-01-03 10:42:10 +01:00
2022-03-18 15:40:03 +00:00
2022-02-01 17:21:49 -07:00
2022-01-21 16:07:34 +00:00
2022-01-03 10:42:10 +01:00
2022-03-25 20:21:48 +00:00
2022-01-03 10:42:10 +01:00
2022-04-18 17:22:55 -04:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-21 16:07:34 +00:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-11 13:28:46 +00:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-04-08 18:30:07 +01:00
2022-01-21 16:07:34 +00:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-21 16:07:34 +00:00
2022-01-03 10:42:10 +01:00
2022-01-21 16:07:34 +00:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-21 16:07:34 +00:00
2022-01-03 10:42:10 +01:00
2022-01-21 16:07:34 +00:00
2022-04-14 11:02:37 +01:00
2022-01-11 13:28:46 +00:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-02-22 09:37:58 -05:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-04-02 12:49:38 +02:00
2022-01-03 10:42:10 +01:00
2022-01-23 22:48:33 +00:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-04-12 22:38:31 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-18 20:41:46 +00:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-21 16:07:34 +00:00
2022-01-21 16:07:34 +00:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-01-03 10:42:10 +01:00
2022-04-01 13:17:18 +01:00
2022-01-03 10:42:10 +01:00
2022-02-14 13:03:31 +00:00
2022-01-03 10:42:10 +01:00
2022-04-14 11:02:37 +01:00