Nikolas Klauser
49bced456c
[libc++] Add basic constant folding for std::format (#107197)
```
-------------------------------------------------------------------
Benchmark old new
-------------------------------------------------------------------
BM_format_string<char>/1 42.1 ns 7.67 ns
BM_format_string<char>/2 22.3 ns 3.84 ns
BM_format_string<char>/4 10.6 ns 1.92 ns
BM_format_string<char>/8 5.31 ns 0.815 ns
BM_format_string<char>/16 2.79 ns 0.480 ns
BM_format_string<char>/32 1.63 ns 0.550 ns
BM_format_string<char>/64 0.782 ns 0.276 ns
BM_format_string<char>/128 0.397 ns 0.145 ns
BM_format_string<char>/256 0.211 ns 0.066 ns
BM_format_string<char>/512 0.154 ns 0.035 ns
BM_format_string<char>/1024 0.146 ns 0.021 ns
BM_format_string<char>/2048 0.125 ns 0.033 ns
BM_format_string<char>/4096 0.097 ns 0.016 ns
BM_format_string<char>/8192 0.077 ns 0.012 ns
BM_format_string<char>/16384 0.066 ns 0.010 ns
BM_format_string<char>/32768 0.062 ns 0.016 ns
BM_format_string<char>/65536 0.062 ns 0.016 ns
BM_format_string<char>/131072 0.443 ns 0.015 ns
BM_format_string<char>/262144 0.629 ns 0.017 ns
BM_format_string<char>/524288 0.715 ns 0.020 ns
BM_format_string<char>/1048576 0.757 ns 0.020 ns
BM_format_string<wchar_t>/1 38.8 ns 34.0 ns
BM_format_string<wchar_t>/2 19.4 ns 16.9 ns
BM_format_string<wchar_t>/4 9.88 ns 8.45 ns
BM_format_string<wchar_t>/8 6.30 ns 6.47 ns
BM_format_string<wchar_t>/16 3.11 ns 3.21 ns
BM_format_string<wchar_t>/32 1.60 ns 1.63 ns
BM_format_string<wchar_t>/64 0.899 ns 0.925 ns
BM_format_string<wchar_t>/128 0.676 ns 0.693 ns
BM_format_string<wchar_t>/256 0.658 ns 0.685 ns
BM_format_string<wchar_t>/512 0.556 ns 0.531 ns
BM_format_string<wchar_t>/1024 0.428 ns 0.402 ns
BM_format_string<wchar_t>/2048 0.328 ns 0.319 ns
BM_format_string<wchar_t>/4096 0.276 ns 0.274 ns
BM_format_string<wchar_t>/8192 0.252 ns 0.251 ns
BM_format_string<wchar_t>/16384 0.248 ns 0.246 ns
BM_format_string<wchar_t>/32768 0.229 ns 0.232 ns
BM_format_string<wchar_t>/65536 0.248 ns 0.246 ns
BM_format_string<wchar_t>/131072 0.250 ns 0.240 ns
BM_format_string<wchar_t>/262144 3.03 ns 3.03 ns
BM_format_string<wchar_t>/524288 3.14 ns 3.15 ns
BM_format_string<wchar_t>/1048576 3.60 ns 3.61 ns
BM_string_without_formatting<char> 32.2 ns 0.470 ns
BM_string_without_formatting<wchar_t> 38.8 ns 10.2 ns
```
2025-05-15 10:37:32 +02:00
..
2025-04-19 07:12:43 -04:00
2025-04-13 11:01:17 +02:00
2025-05-01 15:02:17 +02:00
2025-04-18 20:57:05 -04:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-03-06 10:22:18 +01:00
2025-04-08 18:16:18 +02:00
2025-05-05 14:19:13 -07:00
2025-04-09 23:47:57 +02:00
2025-03-27 11:34:38 +01:00
2025-05-14 08:54:42 +02:00
2025-05-08 16:35:00 -04:00
2025-05-08 16:35:00 -04:00
2025-03-27 15:14:17 +01:00
2025-05-07 10:09:40 -04:00
2025-04-06 10:50:55 +01:00
2025-05-15 10:37:32 +02:00
2025-04-25 10:45:46 +02:00
2025-05-15 09:01:56 +02:00
2025-04-09 23:47:57 +02:00
2025-05-07 12:59:38 -04:00
2025-04-04 11:48:46 -04:00
2025-05-08 16:48:57 -04:00
2025-04-14 17:33:57 -04:00
2025-05-15 09:01:56 +02:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-03-27 11:34:38 +01:00
2025-04-05 13:46:11 +02:00
2025-04-09 23:47:57 +02:00
2025-02-10 21:19:46 +01:00
2025-04-09 23:47:57 +02:00
2025-04-24 10:29:59 +02:00
2025-04-13 08:40:21 -04:00
2025-05-07 10:54:34 -04:00
2025-01-10 15:21:58 -05:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-05-13 12:23:50 -07:00
2025-05-12 22:40:17 +02:00
2025-04-09 23:47:57 +02:00
2025-05-14 07:20:27 +08:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-04-18 20:57:05 -04:00
2025-05-10 17:05:35 +02:00
2025-04-18 20:57:05 -04:00
2025-05-08 16:35:00 -04:00
2025-02-18 12:12:23 +01:00
2025-05-15 09:01:56 +02:00
2025-05-08 16:35:00 -04:00
2025-05-15 09:01:56 +02:00
2025-04-14 18:55:01 +02:00
2025-04-19 07:12:43 -04:00
2025-04-09 23:47:57 +02:00
2025-05-08 16:35:00 -04:00
2025-01-17 14:22:40 -05:00
2025-04-09 15:00:46 +02:00
2025-04-09 15:00:46 +02:00
2025-04-19 07:12:43 -04:00
2025-01-08 11:12:59 -05:00
2025-04-09 15:00:46 +02:00
2025-03-21 18:02:32 +01:00
2025-01-08 11:12:59 -05:00
2025-05-08 16:35:00 -04:00
2025-05-08 16:48:57 -04:00
2025-04-19 07:12:43 -04:00
2025-04-09 15:00:46 +02:00
2025-05-08 16:48:57 -04:00
2025-04-09 15:00:46 +02:00
2025-04-19 07:12:43 -04:00
2025-04-09 15:00:46 +02:00
2025-01-08 11:12:59 -05:00
2025-01-08 11:12:59 -05:00
2025-01-08 11:12:59 -05:00
2025-02-27 17:47:34 +01:00
2025-05-08 16:35:00 -04:00
2025-04-09 15:00:46 +02:00
2025-04-09 15:00:46 +02:00
2025-04-09 15:00:46 +02:00
2025-01-25 18:30:00 +00:00
2025-04-06 10:50:55 +01:00
2025-04-09 15:00:46 +02:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-01-10 14:14:14 -05:00
2025-04-13 11:01:17 +02:00
2025-04-09 23:47:57 +02:00
2025-04-19 07:12:43 -04:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-03-01 12:29:21 +01:00
2025-04-09 15:00:46 +02:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-05-12 15:55:24 -04:00
2025-05-15 09:01:56 +02:00
2025-04-14 17:33:57 -04:00
2025-04-14 17:33:57 -04:00
2025-04-09 15:00:46 +02:00
2025-05-08 16:35:00 -04:00
2025-04-09 23:47:57 +02:00
2025-04-09 15:00:46 +02:00
2025-04-05 13:46:11 +02:00
2025-05-08 16:35:00 -04:00
2025-04-09 15:00:46 +02:00
2025-04-09 23:47:57 +02:00
2025-04-09 15:00:46 +02:00
2025-04-09 23:47:57 +02:00
2025-04-11 12:07:04 +02:00
2025-04-09 23:47:57 +02:00
2025-04-09 15:00:46 +02:00
2025-04-09 23:47:57 +02:00
2025-04-09 15:00:46 +02:00
2025-04-09 15:00:46 +02:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-01-17 14:22:40 -05:00
2025-04-09 15:00:46 +02:00
2025-04-19 07:12:43 -04:00
2025-05-08 16:35:00 -04:00
2025-04-19 07:12:43 -04:00
2025-04-04 11:48:46 -04:00
2025-04-09 23:47:57 +02:00
2025-04-19 07:12:43 -04:00
2025-05-08 16:35:00 -04:00
2025-04-29 08:46:06 +02:00
2025-04-09 23:47:57 +02:00
2025-03-27 11:34:38 +01:00
2025-04-09 23:47:57 +02:00
2025-04-09 23:47:57 +02:00
2025-03-25 18:31:57 +01:00
2025-04-09 23:47:57 +02:00
2025-05-08 16:35:00 -04:00
2025-04-19 07:12:43 -04:00
2025-04-14 17:33:57 -04:00