Fields

hardware None
os None

Parameters

Fields

NameValue

Parameters

NameValue
git_commit commit 2bdd1357c826afe681ab0d6ddfa8fb814b2cef6a
Author: Nikolas Klauser <nikolasklauser@berlin.de>
Date: Mon Nov 24 16:53:58 2025 +0100

[libc++] Optimize num_get integral functions (#121795)

```
---------------------------------------------------
Benchmark old new
---------------------------------------------------
BM_num_get<bool> 86.5 ns 32.3 ns
BM_num_get<long> 82.1 ns 30.3 ns
BM_num_get<long long> 85.2 ns 33.4 ns
BM_num_get<unsigned short> 85.3 ns 31.2 ns
BM_num_get<unsigned int> 84.2 ns 31.1 ns
BM_num_get<unsigned long> 83.6 ns 31.9 ns
BM_num_get<unsigned long long> 87.7 ns 31.5 ns
BM_num_get<float> 116 ns 114 ns
BM_num_get<double> 114 ns 114 ns
BM_num_get<long double> 113 ns 114 ns
BM_num_get<void*> 151 ns 144 ns
```

This patch applies multiple optimizations:
- Stages two and three of do_get are merged and a custom integer parser
has been implemented
This avoids allocations, removes the need for strto{,u}ll and avoids
__stage2_int_loop (avoiding extra writes to memory)
- std::find has been replaced with __atoms_offset, which uses vector
instructions to look for a character

Fixes #158100
Fixes #158102
Filter

ldionne-old-macbook-results test results

Run Order Start Time Duration
Current 560475 2025-12-16T16:40:01 0:00:00
Previous 560467 2025-12-16T16:40:01 0:00:00
Baseline 485288 2025-12-16T16:40:01 0:00:00


Tests Summary

Status Group # # (B)
Performance Regressions 4 0
Added Tests 0 16
Unchanged Tests 76 64
Total Tests 80

Performance Regressions - execution_time Δ Previous Current σ Δ (B) σ (B)
735_gem5_r 3.34% 13.278 13.722 - 0.00% -
710_omnetpp_r 1.92% 8.398 8.559 - 0.00% -
707_ntest_r 1.91% 16.508 16.822 - 0.00% -
729_abc_r 1.08% 18.680 18.881 - 0.00% -

Added Tests - execution_time
706_stockfish_r
707_ntest_r
709_cactus_r
710_omnetpp_r
721_gcc_r
723_llvm_r
727_cppcheck_r
729_abc_r
731_astcenc_r
735_gem5_r
736_ocio_r
737_gmsh_r
748_flightdm_r
750_sealcrypto_r
753_ns3_r
766_femflow_r


Report Time: 0.13s
Name Current %
706_stockfish_r 21.543 -
707_ntest_r 16.822 1.91%
709_cactus_r 19.722 -
710_omnetpp_r 8.559 1.92%
721_gcc_r 12.952 -
723_llvm_r 11.425 -
727_cppcheck_r 25.297 -
729_abc_r 18.881 1.08%
731_astcenc_r 10.047 -
735_gem5_r 13.722 3.34%
736_ocio_r 16.158 -
737_gmsh_r 12.922 -
748_flightdm_r 8.921 -
750_sealcrypto_r 18.340 -
753_ns3_r 10.208 -
766_femflow_r 12.856 -
Geometric Mean 14.180 -