Tue Ly
d41280467d
[libc] Add implementations of fdim[f|l].
...
Implementing fdim, fdimf, and fdiml for llvm-libc.
Differential Revision: https://reviews.llvm.org/D90906
2020-11-10 18:48:11 -05:00
Siva Chandra Reddy
930cf1cb9f
[libc] Add implementations of ilogb[f|l].
...
Depends on D90805.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D90806
2020-11-05 16:27:44 -08:00
Michael Jones
5080840d28
[LIBC][NFC] Rename errno and assert files to match other files with functions
...
Rename the files containing the `__errno_location` function
to `__errno_location.h/cpp` to match the other files and move
the `llvmlibc_errno` macro to its own file.
Split assert.h into `__assert_fail.h` (contains the function prototype)
and assert.h (contains the assert macro).
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D90653
2020-11-03 21:29:32 +00:00
Tue Ly
f55963d501
[libc] Add implementation for hypotf
...
Truncating the sum of squares, and then use shift-and-add algorithm to compute its square root.
Required MPFR testing infra is updated in https://reviews.llvm.org/D87514
Differential Revision: https://reviews.llvm.org/D87516
2020-09-17 23:28:36 -04:00
Guillaume Chatelet
c3fd2a50ba
[libc] Remove special case for 8 and 16 bytes
...
They don't seem to gain much in real apps and its better to favor less branches and smaller code.
2020-09-15 20:48:27 +00:00
Guillaume Chatelet
c19fda9aa0
[libc] use stddef instead of string header
2020-09-15 20:12:55 +00:00
Guillaume Chatelet
00ba1a3de7
[libc] remove useless headers
2020-09-15 20:04:12 +00:00
Guillaume Chatelet
85763e0758
[libc] Fix typo in platform_defs.h.inc
...
Differential Revision: https://reviews.llvm.org/D87687
2020-09-15 14:25:01 +00:00
cgyurgyik
c92d1aa44b
[libc] Decouple string functions.
...
This revision removes dependencies that exist between different string functions. This allows for the libc user to use a specific function X of this library without also depending on Y and Z.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D87421
2020-09-14 12:22:05 -04:00
Siva Chandra Reddy
878cb5170d
[libc][NFC][obvious] Remove a redudant dep of strcmp implementation.
2020-09-10 12:34:32 -07:00
Siva Chandra Reddy
8514ecb02d
[libc] Add implementations of remquo[f|l] and remainder[f|l].
...
The implementation is not fully standards compliant in the sense that
errno is not set on error, and floating point exceptions are not raised.
Subnormal range and normal range are tested separately in the tests.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D86666
2020-09-03 22:00:17 -07:00
Tue Ly
5078825aa9
[libc] Add implementations for sqrt, sqrtf, and sqrtl.
...
Differential Revision: https://reviews.llvm.org/D84726
2020-08-26 09:46:18 -04:00
cgyurgyik
79ce64ea08
[libc] Add restrict qualifiers to string library; give consistent naming scheme to TableGen files.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D85945
2020-08-14 15:41:02 -04:00
parallels
bc45bab7eb
[libc] Add strtok_r implementation.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D85779
2020-08-13 15:51:38 -04:00
cgyurgyik
667843cc07
[libc] Add strtok implementation.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D85615
2020-08-11 13:44:53 -04:00
cgyurgyik
dc13a9a781
[libc] Add strcpsn and strpbrk implementation.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D85386
2020-08-07 16:14:32 -04:00
cgyurgyik
128bf458ab
[libc] Add tolower, toupper implementation.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D85326
2020-08-06 15:21:38 -04:00
cgyurgyik
f3b4150255
[libc] Add strspn implementation and std::bitset
...
Reviewed By: sivachandra, abrachet
Differential Revision: https://reviews.llvm.org/D85103
2020-08-05 16:48:38 -04:00
cgyurgyik
1fdab96130
[libc] Add isspace, isprint, isxdigit implementations.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D85270
2020-08-05 10:51:43 -04:00
cgyurgyik
6cd50e7b75
[libc] Add implementations for isblank, iscntrl, isgraph, ispunct.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D85059
2020-08-04 15:16:58 -04:00
cgyurgyik
1b35c4fed2
[libc] [obvious] In strrchr, remove cast to unsigned char before
...
comparison.
2020-07-31 20:14:34 -04:00
cgyurgyik
e8a2af28af
[libc] Adds strrchr implementation.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D84875
2020-07-31 14:38:34 -04:00
cgyurgyik
e2d4bf6cec
[libc] Add islower and isupper implementation.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D84960
2020-07-31 14:05:27 -04:00
cgyurgyik
e263dcc3ef
[libc] Implements isdigit and isalnum. Adds a utility header to inline
...
functions to avoid overhead of function calls.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D84893
2020-07-30 12:37:30 -04:00
cgyurgyik
686c82b974
[libc] Add scaffolding for ctype and implementation of isalpha
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D84575
2020-07-28 19:17:31 -04:00
cgyurgyik
5a9630b777
[libc] Adds implementation for memrchr.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D84469
2020-07-24 14:40:12 -04:00
Tue Ly
1404d9d68a
[libc] Remove unused #include <vector> in fmin_test, fminf_test, and fminl_test.
2020-07-23 15:26:05 -04:00
Tue Ly
4096088e19
[libc] Add implementations of fmax, fmaxf, and fmaxl.
...
Summary: Add implementations of fmax, fmaxf, and fmaxl.
Reviewers: sivachandra
Subscribers: mgorny, tschuett, libc-commits, ecnelises
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D84385
2020-07-23 15:23:08 -04:00
cgyurgyik
f773d37ee1
[libc] Implements strnlen.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D84247
2020-07-22 18:28:35 -04:00
Tue Ly
7ce32f87f9
Add implementations for fmin, fminf, and fminl. Testing infrastructure update is splitted to https://reviews.llvm.org/D83931 .
2020-07-21 17:24:15 -04:00
cgyurgyik
d080635bfc
[libc] Add strstr implementation.
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D83956
2020-07-21 11:39:23 -04:00
cgyurgyik
7859242a37
[libc] [Obvious] Remove unneeded header in strchr.
...
Reviewers: sivachandra
Reviewed By: sivachandra
Subscribers: mgorny, tschuett, ecnelises, libc-commits
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D83589
2020-07-10 19:33:55 -04:00
cgyurgyik
a4f0c58c6e
[libc] Add strchr implementation. Fixes bug in memchr.
...
Summary: [libc] Adds strchr implementation with unit tests. Fixes signed character bug in memchr.
Reviewers: sivachandra, PaulkaToast
Reviewed By: sivachandra
Subscribers: mgorny, tschuett, ecnelises, libc-commits
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D83353
2020-07-10 14:30:20 -04:00
Chris Gyurgyik
9d8b4defd3
[libc] Fix typographical error in math_utils.h.
2020-07-08 11:56:21 -04:00
cgyurgyik
b6a20a4970
[libc] Add memchr implementation.
2020-07-07 17:08:50 -04:00
Siva Chandra Reddy
d4adac4832
[libc] Add the remaining long double flavors of nearest integer functions.
...
Specifically: ceill, floorl and roundl have been added.
Reviewers: asteinhauser
Differential Revision: https://reviews.llvm.org/D82591
2020-06-25 22:45:05 -07:00
Siva Chandra Reddy
a00fb593b4
[libc] Add long double flavors of the floating point manipulation functions.
...
Specifically: copysignl, frexpl, logbl and modfl have been added.
Reviewers: asteinhauser
Differential Revision: https://reviews.llvm.org/D82357
2020-06-23 23:46:58 -07:00
cgyurgyik
05e1612c43
[libc] This adds the strcmp (string compare) implementation.
...
Reviewed-by: sivachandra
Differential Revision: https://reviews.llvm.org/D82134
2020-06-19 16:09:44 -04:00
Siva Chandra Reddy
139018265b
[libc] Add implementations long double fabsl and truncl functions.
...
Current implementations of single precision and double precision
floating point operations operate on bits of the integer type of
same size. The code made use of magic masks which were listed as
literal integer values. This is not possible in the case of long
double type as the mantissa of quad-precision long double type used
on non-x86 architectures is wider that the widest integer type for
which we can list literal values. So, in this patch, to avoid
using magic masks specified with literal values, we use packed
bit-field struct types and let the compiler generate the masks.
This new scheme allows us to implement long double flavors of the
various floating point operations. To keep the size of the patch
small, only the implementations of fabs and trunc have been
switched to the new scheme. In following patches, all exisiting
implementations will be switched to the new scheme.
Reviewers: asteinhauser
Differential Revision: https://reviews.llvm.org/D82036
2020-06-18 11:08:26 -07:00
Siva Chandra Reddy
6fb7f3a3cf
[lib][NFC] Split the floating point util functions into multiple files.
...
The grouping now reflects the grouping on cppreference.com.
2020-06-15 23:12:00 -07:00
Siva Chandra Reddy
051f0ffdbf
[libc] Extract an architecture independent copy of memcpy implementation.
...
Along that way, platform specific options to memcpy, memset and bzero
builds have been enclosed in conditionals. Also, the optimization level
has been set to -O2 for the memory function builds to actually see the
static functions inlined.
Reviewers: gchatelet
Differential Revision: https://reviews.llvm.org/D81621
2020-06-15 09:24:32 -07:00
Siva Chandra Reddy
118c13c691
[libc] Add implementation of few floating point manipulation functions.
...
Implementations of copysign[f], frexp[f], logb[f], and modf[f] are added.
Reviewers: asteinhauser
Differential Revision: https://reviews.llvm.org/D81134
2020-06-11 12:23:11 -07:00
Siva Chandra Reddy
b622a255a3
[libc][Obvious] Use full path with cmake's if(EXISTS ...).
...
That if(EXISTS ...) works only with full paths was missed in couple of
places a in recent cleanup.
2020-06-10 15:08:00 -07:00
Siva Chandra Reddy
4be1c116ad
[libc] Add implementations of round and roundf.
...
Reviewers: asteinhauser
Differential Revision: https://reviews.llvm.org/D80779
2020-06-09 23:01:20 -07:00
Siva Chandra Reddy
235e9cc924
[libc][NFC][Obvious] Tidy up some CMake files.
...
Conditionally adding subdirectories was missed in a few places previously.
This change adds the conditionals. A sub-directory was being added
needlessly in another place. That has been removed.
2020-06-09 15:54:07 -07:00
Siva Chandra Reddy
e9de9e3368
[libc][NFC][Obvious] Add names to various string entrypoints.
2020-06-08 17:13:53 -07:00
Siva Chandra Reddy
1caedd0c55
[libc] Add implementations of ceil[f], floor[f] and trunc[f] from math.h.
...
Reviewers: abrachet
Differential Revision: https://reviews.llvm.org/D80612
2020-06-01 08:36:59 -07:00
Siva Chandra Reddy
0baf0e8cfc
[libc] Add implementation of call_once from threads.h.
...
Reviewers: abrachet, maskray
Differential Revision: https://reviews.llvm.org/D79828
2020-05-28 23:45:09 -07:00
Siva Chandra Reddy
c7614faa05
[libc][NFC][Obvious] Fix few header guards in src/threads.
2020-05-28 15:07:27 -07:00
Guillaume Chatelet
0d52a7d038
[libc][NFC] Simplify memcpy implementation
...
Summary: This is a NFC, it aims at simplifying both the code and build files.
Reviewers: abrachet, sivachandra
Subscribers: mgorny, tschuett, ecnelises, libc-commits, courbet
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D80291
2020-05-26 11:38:48 +00:00