| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[libc][NFC] Use a end of list marker for cpu feature detection. Without this, the array can end up being an empty array leading to compiler failures. | 5 年前 | |
[libc] Normalize LIBC_TARGET_MACHINE Current implementation defines LIBC_TARGET_MACHINE with the use of CMAKE_SYSTEM_PROCESSOR. Unfortunately CMAKE_SYSTEM_PROCESSOR is OS dependent and can produce different results. An evidence of this is the various matchers used to detect whether the architecture is x86. This patch normalizes LIBC_TARGET_MACHINE and renames it LIBC_TARGET_ARCHITECTURE. I've added many architectures but we may want to limit ourselves to x86 and ARM. Differential Revision: https://reviews.llvm.org/D101524 | 5 年前 | |
[libc] Automatically add -mfma flag for architectures supporting FMA. Detect if the architecture supports FMA instructions and if the targets depend on fma. Reviewed By: gchatelet Differential Revision: https://reviews.llvm.org/D123615 | 3 年前 | |
[libc] Enable MPFR library for math functions test Included more math functions to Windows's entrypoints and made a cmake option (-DLLVM_LIBC_MPFR_INSTALL_PATH) where the user can specify the install path where the MPFR library was built so it can be linked. The try_compile was moved to LLVMLibCCheckMPFR.cmake, so the variable that is set after this process can retain its value in other files of the same parent file. A direct reason for this is for LIBC_TESTS_CAN_USE_MPFR to be true when the user specifies MPFR's path and retain its value even after leaving the file. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D106894 | 4 年前 | |
[libc] Add float type and flag for nearest_integer to enable SSE4.2. Add float type and flag for nearest integer to automatically test with and without SSE4.2 flag. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D129916 | 3 年前 | |
[libc] Introduce a full build mode CMake option. This option will build LLVM libc as a full libc by itself. In this mode, it is not expected that it will be mixed with other libcs. The non-full-build mode will be the default LLVM libc build mode. In a future where LLVM libc is complete enough, the full libc build will be made the default mode. | 5 年前 | |
[libc][Obvious] Do not add __NO_ to targets with FLAG__NO suffix. | 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] 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 年前 | |
[libc] Add fully-qualified target names. Only targets setup by the special LLVM libc rules now have fully qualified names. The naming style is similar to fully qualified names in Python. Reviewers: abrachet, PaulkaToast, phosek Differential Revision: https://reviews.llvm.org/D77340 | 6 年前 | |
[libc][NFC] Make all integration tests depend on the threads implementation. The integration tests use the loader which sets up the main thread's self object. So, all integration tests have to depend on the threads implementation. | 3 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 4 年前 | ||
| 3 年前 | ||
| 5 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 6 年前 | ||
| 3 年前 |