[all-commits] [llvm/llvm-project] 829842: [libc] refactor atof string parsing
michaelrj-google via All-commits
all-commits at lists.llvm.org
Tue Nov 9 10:12:31 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 8298424cae9b4d3d41dbe17857dc9cb247d90786
https://github.com/llvm/llvm-project/commit/8298424cae9b4d3d41dbe17857dc9cb247d90786
Author: Michael Jones <michaelrj at google.com>
Date: 2021-11-09 (Tue, 09 Nov 2021)
Changed paths:
M libc/src/__support/str_to_float.h
M libc/test/src/stdlib/strtof_test.cpp
Log Message:
-----------
[libc] refactor atof string parsing
Split the code for parsing hexadecimal floating point numbers from the
code for parsing the decimal floating point numbers so that the parsing
can be faster for both of them.
This decreases the time for the benchmark in release mode by about 15%,
which noticeably beats GLibc.
Old version: 2.299s
New version: 1.893s
GLibc: 2.133s
Tests run by running the following command 10 times for each version:
time ~/llvm-project/build/bin/libc_str_to_float_comparison_test ~/parse-number-fxx-test-data/data/*
the parse-number-fxx-test-data-repository is here:
https://github.com/nigeltao/parse-number-fxx-test-data/tree/fe94de252c691900982050c8e7c503d1efd1299a
It's important to build llvm-libc in Release mode for accurate
performance comparisons against glibc (set -DCMAKE_BUILD_TYPE=Release in
your cmake).
You also have to build the libc_str_to_float_comparison_test target.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D113036
More information about the All-commits
mailing list