| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Harmonize Python shebang Differential Revision: https://reviews.llvm.org/D83857 | 5 年前 | |
Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options | 3 年前 | |
[libc] Implement sinf function that is correctly rounded to all rounding modes. Implement sinf function that is correctly rounded to all rounding modes. - We use a simple range reduction for pi/16 < |x| : Let k = round(x / pi) and y = (x/pi) - k. So k is an integer and -0.5 <= y <= 0.5. Then sin(x) = sin(y*pi + k*pi) = (-1)^(k & 1) * sin(y*pi) ~ (-1)^(k & 1) * y * P(y^2) where y*P(y^2) is a degree-15 minimax polynomial generated by Sollya with: > P = fpminimax(sin(x*pi)/x, [|0, 2, 4, 6, 8, 10, 12, 14|], [|D...|], [0, 0.5]); - Performance benchmark using perf tool from CORE-MATH project (https://gitlab.inria.fr/core-math/core-math/-/tree/master) on Ryzen 1700: Before this patch (not correctly rounded): $ CORE_MATH_PERF_MODE="rdtsc" ./perf.sh sinf CORE-MATH reciprocal throughput : 17.892 System LIBC reciprocal throughput : 25.559 LIBC reciprocal throughput : 29.381 After this patch (correctly rounded): `` $ CORE_MATH_PERF_MODE="rdtsc" ./perf.sh sinf CORE-MATH reciprocal throughput : 17.896 System LIBC reciprocal throughput : 25.740 LIBC reciprocal throughput : 27.872 LIBC reciprocal throughput : 20.012 (with -msse4.2 flag) LIBC reciprocal throughput : 14.244 (with -mfma flag) `` Reviewed By: zimmermann6 Differential Revision: https://reviews.llvm.org/D123154 | 3 年前 | |
[libc] Add dirent.h functions opendir, readdir, closedir and dirfd. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D130459 | 3 年前 | |
[libc] Use nearest_integer instructions to improve expm1f performance. Use nearest_integer instructions to improve expf performance. Performance tests with CORE-MATH's perf tool: Before the patch: $ ./perf.sh expm1f LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a GNU libc version: 2.31 GNU libc release: stable CORE-MATH reciprocal throughput : 10.096 System LIBC reciprocal throughput : 44.036 LIBC reciprocal throughput : 11.575 $ ./perf.sh expm1f --latency LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a GNU libc version: 2.31 GNU libc release: stable CORE-MATH latency : 42.239 System LIBC latency : 122.815 LIBC latency : 50.122 After the patch: $ ./perf.sh expm1f LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a GNU libc version: 2.31 GNU libc release: stable CORE-MATH reciprocal throughput : 10.046 System LIBC reciprocal throughput : 43.899 LIBC reciprocal throughput : 9.179 $ ./perf.sh expm1f --latency LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a GNU libc version: 2.31 GNU libc release: stable CORE-MATH latency : 42.078 System LIBC latency : 120.488 LIBC latency : 41.528 Reviewed By: zimmermann6 Differential Revision: https://reviews.llvm.org/D130502 | 3 年前 | |
[libc][NFC] split standalone_cpp into single headers Previously, the entire support/CPP folder was in one header library, which meant that a lot of headers were included where they shouldn't be. This patch splits each header into its own target, as well as adjusting each place they were included to only include what is used. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D121237 | 4 年前 | |
[libc] Add dirent.h functions opendir, readdir, closedir and dirfd. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D130459 | 3 年前 | |
Use add_llvm_install_targets for install-llvmlibc Using the LLVM rules for install ensures that DESTDIR and other expected variables for an LLVM install work correctly. Tested: Manually with DESTDIR=/tmp/testinstall/ ninja install-llvmlibc Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D129041 | 3 年前 | |
[libc] Enable a few stdlib and time functions on aarch64. | 3 年前 | |
[libc] Add dirent.h functions opendir, readdir, closedir and dirfd. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D130459 | 3 年前 | |
[libc] Use nearest_integer instructions to improve expm1f performance. Use nearest_integer instructions to improve expf performance. Performance tests with CORE-MATH's perf tool: Before the patch: $ ./perf.sh expm1f LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a GNU libc version: 2.31 GNU libc release: stable CORE-MATH reciprocal throughput : 10.096 System LIBC reciprocal throughput : 44.036 LIBC reciprocal throughput : 11.575 $ ./perf.sh expm1f --latency LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a GNU libc version: 2.31 GNU libc release: stable CORE-MATH latency : 42.239 System LIBC latency : 122.815 LIBC latency : 50.122 After the patch: $ ./perf.sh expm1f LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a GNU libc version: 2.31 GNU libc release: stable CORE-MATH reciprocal throughput : 10.046 System LIBC reciprocal throughput : 43.899 LIBC reciprocal throughput : 9.179 $ ./perf.sh expm1f --latency LIBC-location: /home/lnt/experiment/llvm/llvm-project/build/projects/libc/lib/libllvmlibc.a GNU libc version: 2.31 GNU libc release: stable CORE-MATH latency : 42.078 System LIBC latency : 120.488 LIBC latency : 41.528 Reviewed By: zimmermann6 Differential Revision: https://reviews.llvm.org/D130502 | 3 年前 | |
[libc][Obvious] Use the correct StringView constructor in dirent_test. | 3 年前 | |
[libc] Specify rounding mode for strto[f|d] tests The specified rounding mode will be used and restored to what it was before the test ran. Additionally, it moves ForceRoundingMode and RoundingMode out of MPFRUtils to be used in more places. Differential Revision: https://reviews.llvm.org/D129685 | 3 年前 | |
[libc] Add a naming rule for global constants. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D117645 | 4 年前 | |
[libc][Obvious] Add build folder to .gitignore. | 4 年前 | |
[libc] Implement FLAGS option for generating all combinations for targets. Add FLAGS option for add_header_library, add_object_library, add_entrypoint_object, and add_libc_unittest. In general, a flag is a string provided for supported functions under the multi-valued option FLAGS. It should be one of the following forms: FLAG_NAME FLAG_NAME__NO FLAG_NAME__ONLY A target will inherit all the flags of its upstream dependency. When we create a target TARGET_NAME with a flag using (add_header_library, add_object_library, ...), its behavior will depend on the flag form as follow: - FLAG_NAME: The following 2 targets will be generated: TARGET_NAME that has FLAG_NAME in its FLAGS property. TARGET_NAME.__NO_FLAG_NAME that depends on DEP.__NO_FLAG_NAME if TARGET_NAME depends on DEP and DEP has FLAG_NAME in its FLAGS property. - FLAG_NAME__ONLY: Only generate 1 target TARGET_NAME that has FLAG_NAME in its FLAGS property. - FLAG_NAME__NO: Only generate 1 target TARGET_NAME.__NO_FLAG_NAME that depends on DEP.__NO_FLAG_NAME if DEP is in its DEPENDS list and DEP has FLAG_NAME in its FLAGS property. To show all the targets generated, pass SHOW_INTERMEDIATE_OBJECTS=ON to cmake. To show all the targets' dependency and flags, pass SHOW_INTERMEDIATE_OBJECTS=DEPS to cmake. To completely disable a flag FLAG_NAME expansion, set the variable SKIP_FLAG_EXPANSION_FLAG_NAME=TRUE. Reviewed By: michaelrj, sivachandra Differential Revision: https://reviews.llvm.org/D125174 | 3 年前 | |
Rename top-level LICENSE.txt files to LICENSE.TXT This makes all the license filenames uniform across subprojects. Differential Revision: https://reviews.llvm.org/D98380 | 5 年前 | |
Add a director, along with README.txt and LICENSE.txt, for libc. llvm-svn: 372036 | 6 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 6 年前 |