gcc/libstdc++-v3
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
..
config libstdc++: Fix symbol versioning for Solaris 11.3 [PR103407] 2022-03-16 21:16:53 +00:00
doc libstdc++: Fix incorrect IS number in doc comment 2022-04-14 17:31:15 +01:00
include libstdc++: Micro-optimize __from_chars_pow2_base 2022-04-18 17:22:55 -04:00
libsupc++ libstdc++: Add comment about memalign requirements 2022-03-31 16:18:00 +01:00
po libstdc++: Define <stacktrace> header for C++23 2022-01-17 12:13:02 +00:00
python libstdc++: Make std::error_code printer more robust 2022-02-17 22:22:14 +00:00
scripts libstdc++: Only add valid -L paths to testsuite linker options 2022-01-20 12:29:29 +00:00
src libstdc++: Optimize integer std::from_chars 2022-04-15 09:34:09 -04:00
testsuite libstdc++: Avoid double-deref of __first in ranges::minmax [PR104858] 2022-04-15 14:41:14 -04:00
acinclude.m4 libstdc++: Default to mutex-based atomics on RISC-V 2022-04-14 17:31:15 +01:00
aclocal.m4
ChangeLog Daily bump. 2022-04-16 00:16:31 +00:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
ChangeLog-2019
ChangeLog-2020 libstdc++: Fix typo in ChangeLog-2020 2021-01-13 11:02:13 +00:00
ChangeLog-2021 Rotate ChangeLog files - part 1 - add ChangeLog-2021. 2022-01-03 10:18:16 +01:00
config.h.in libstdc++: Prefer to use mmap instead of malloc in libbacktrace 2022-04-12 22:38:31 +01:00
configure libstdc++: Default to mutex-based atomics on RISC-V 2022-04-14 17:31:15 +01:00
configure.ac libstdc++: Remove -gdwarf-4 from flags for debug library 2022-01-19 19:31:00 +00:00
configure.host
crossconfig.m4 libstdc++: Check for TLS support on mingw cross-compilers 2021-09-15 09:49:33 +01:00
fragment.am libstdc++: Add C++ runtime support for new 128-bit long double format 2020-12-16 23:25:01 +00:00
linkage.m4
Makefile.am Update copyright years. 2022-01-03 10:42:10 +01:00
Makefile.in libstdc++: Define <stacktrace> header for C++23 2022-01-17 12:13:02 +00:00
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.