- Mar 24, 2022
-
-
Siva Chandra Reddy authored
Previously, we used empty, non-ELF crti.o, crtn.o, libm.a and libc++.a files. Instead, we now still use dummies but they are real ELF object files and archives.
-
Siva Chandra Reddy authored
A follow up patch will add feof and ferror. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D122327
-
Michael Jones authored
This patch adds aligned_alloc as an entrypoint. Previously it was being included implicitly. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D122362
-
Siva Chandra Reddy authored
We were previously linking to libllvmlibc.a. But, with libllvmlibc.a now including functions which depend on the loader, we will have to use the LLVM libc loader as well. To avoid this, we will link to a special library which is just a collection of SCUDO allocator entrypoints. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D122360
-
Michael Jones authored
This patch primarily fixes the fenv implementation on Windows, since Windows uses the MXCSR in place of the x87 status registers for storing information about the floating point environment. This allows FEnv to work correctly on Windows, and successfully build. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D121839
-
- Mar 23, 2022
-
-
Siva Chandra Reddy authored
All existing loader tests are switched to an integration test added with the new rule. Also, the getenv test is now enabled as an integration test. All loader tests have been moved to test/integration. Also, the simple checker library for the previous loader tests has been moved to a separate directory of its own. A follow up change will perform more cleanup of the loader CMake rules to eliminate now redundent options. Reviewed By: lntue, michaelrj Differential Revision: https://reviews.llvm.org/D122266
-
Siva Chandra Reddy authored
Reviewed By: jeffbailey, michaelrj Differential Revision: https://reviews.llvm.org/D122272
-
Siva Chandra Reddy authored
Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D122284
-
- Mar 22, 2022
-
-
Siva Chandra Reddy authored
An unnecessary dep of the getenv function is removed. From the x86_64 loader, a call to __llvm_libc::memcpy is replaced with call to __llvm_libc::inline_memcpy.
-
- Mar 21, 2022
-
-
Siva Chandra Reddy authored
Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D121976
-
- Mar 18, 2022
-
-
Siva Chandra Reddy authored
The platform independent file implementation is not an entrypoint so it cannot be excluded via the entrypoints.txt file. Hence, we need a special treatment to exclude it from the build. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D121947
-
- Mar 17, 2022
-
-
Siva Chandra Reddy authored
Having a separate flag helps in setting up proper flags when implementing, say the Linux specialization of File. Along the way, a signature for a function which is to be used to open files has been added. The implementation of the function is to be included in platform specializations. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D121889
-
- Mar 16, 2022
-
-
Siva Chandra Reddy authored
-
Siva Chandra Reddy authored
This is now possible because we have a platform independent abstraction for mutexes. Reviewed By: lntue, michaelrj Differential Revision: https://reviews.llvm.org/D121773
-
Siva Chandra Reddy authored
-
Tue Ly authored
Let exhaustive tests indicate each interval PASSED/FAILED. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D121564
-
Alex Brachet authored
-
Alex Brachet authored
We were in between two styles when this file was initially checked in.
-
- Mar 15, 2022
-
-
Siva Chandra Reddy authored
-
Siva Chandra Reddy authored
Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D121676
-
Alex Brachet authored
-
Alex Brachet authored
Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D121656
-
Tue Ly authored
Implement expm1f function that is correctly rounded for all rounding modes. This is based on expf implementation. From exhaustive testings, using expf implementation, and subtract 1.0 before rounding the final result to single precision gives correctly rounded results for all |x| > 2^-4 with 1 exception. When |x| < 2^-25, we use x + x^2 (implemented with a single fma). And for 2^-25 <= |x| <= 2^-4, we use a single degree-8 minimax polynomial generated by Sollya. Reviewed By: sivachandra, zimmermann6 Differential Revision: https://reviews.llvm.org/D121574
-
Siva Chandra Reddy authored
-
- Mar 14, 2022
-
-
Tue Ly authored
-
Tue Ly authored
Implement exp2f function that is correctly rounded for all rounding modes. Reviewed By: sivachandra, zimmermann6 Differential Revision: https://reviews.llvm.org/D121463
-
- Mar 11, 2022
-
-
Tue Ly authored
Implement expf function that is correctly rounded for all rounding modes. Reviewed By: sivachandra, zimmermann6 Differential Revision: https://reviews.llvm.org/D121440
-
- Mar 10, 2022
-
-
Siva Chandra Reddy authored
-
Siva Chandra Reddy authored
The new container is used to store atexit callbacks. This way, we avoid the possibility of the destructor of the container itself getting added as an at exit callback. Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D121350
-
Tue Ly authored
Add initial support for darwin-aarch64 (macOS M1). Some differences compared to linux-aarch64: - `math.h` defined `math_errhandling` by the compiler builtin `__math_errhandling()` but Apple Clang 13.0.0 on M1 does not support `__math_errhandling()` builtin as a macro function or a constexpr function. - `math.h` defines `UNDERFLOW` and `OVERFLOW` macros. - Besides 5 usual floating point exceptions: `FE_INEXACT`, `FE_UNDERFLOW`, `FE_OVERFLOW`, `FE_DIVBYZERO`, and `FE_INVALID`, `fenv.h` also has another floating point exception: `FE_FLUSHTOZERO`. The corresponding trap for `FE_FLUSHTOZERO` in the control register is at the different location compared to the status register. - `FE_FLUSHTOZERO` exception flag cannot be raised with the default CPU floating point operation mode. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D120914
-
Siva Chandra Reddy authored
Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D121334
-
- Mar 08, 2022
-
-
Tue Ly authored
Add testing macros for errno and floating point exceptions. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D121235
-
Michael Jones authored
There were some "TODO" messages that were for things that I have already completed. This patch removes those. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D121232
-
Michael Jones authored
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
-
- Mar 07, 2022
-
-
Siva Chandra Reddy authored
The loader TLS test for x86_64, which now passes, has been enabled. A future change should enable the test for aarch64 as well. Reviewed By: jeffbailey Differential Revision: https://reviews.llvm.org/D121091
-
Siva Chandra Reddy authored
-
- Mar 04, 2022
-
-
Stella Laurenzo authored
This reverts commit 7cdda6b8. Differential Revision: https://reviews.llvm.org/D121020
-
Tue Ly authored
Fix small bugs in aarch64/EFnvImpl.h and simplify feclearexcept_test. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D120997
-
Tue Ly authored
Remove the redundant header FPUtil/FEnvUtils.h, use FPUtil/FEnvImpl.h header instead. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D120965
-
Siva Chandra Reddy authored
The idea is that, other parts of the libc which require thread/lock support will be able to use this platform independent setup. With this change, only the linux implementation of a mutex type has been moved to the new library. Because of this, there is some duplication between the new library and src/threads/linux. A follow up change will move all of src/threads/linux to the new library. The duplication should be eliminated with that move. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D120795
-