From 0900eedf2feeaec5a39e137dc2512b5e9606c092 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Mar=C3=ADn?= Date: Wed, 23 Sep 2026 21:17:10 +0200 Subject: [PATCH] Inline the parser into from_chars under clang Clang kept from_chars_fixed_format out of line, so every conversion paid for the call and its six register saves and restores. Co-Authored-By: Claude Opus 5.5 (1M context) --- include/fast_float/parse_number.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/fast_float/parse_number.h b/include/fast_float/parse_number.h index 6aa4c34..d3856cb 100644 --- a/include/fast_float/parse_number.h +++ b/include/fast_float/parse_number.h @@ -187,7 +187,7 @@ template <> struct from_chars_caller { // whole parser into each caller, where the format is a constant; clang keeps // it out of line and would otherwise re-test each format flag per conversion. template -FASTFLOAT_CONSTEXPR20 from_chars_result_t +fastfloat_clang_really_inline FASTFLOAT_CONSTEXPR20 from_chars_result_t from_chars_fixed_format(UC const *first, UC const *last, T &value) noexcept { return from_chars_caller::call(first, last, value, parse_options_t(Fmt)); @@ -195,7 +195,7 @@ from_chars_fixed_format(UC const *first, UC const *last, T &value) noexcept { #endif template -FASTFLOAT_CONSTEXPR20 from_chars_result_t +fastfloat_clang_really_inline FASTFLOAT_CONSTEXPR20 from_chars_result_t from_chars(UC const *first, UC const *last, T &value, chars_format fmt /*= chars_format::general*/) noexcept { #ifdef __clang__