Siva Chandra Reddy
6c3f53c7ba
[libc][NFC] Move test related pieces from FPUtil to util/UnitTest.
...
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D112673
2021-10-29 15:37:30 +00:00
Siva Chandra Reddy
f362aea42d
[libc][NFC] Move utils/CPP to src/__support/CPP.
...
The idea is to move all pieces related to the actual libc sources to the
"src" directory. This allows downstream users to ship and build just the
"src" directory.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D112653
2021-10-28 15:50:00 +00:00
Guillaume Chatelet
00c943a548
[libc] automemcpy
2021-10-28 11:10:15 +00:00
Michael Jones
9830518082
[libc][obvious] fix strdup being listed twice
...
strdup was being included even if malloc wasn't and that was causing
a build failure.
Differential Revision: https://reviews.llvm.org/D112641
2021-10-27 11:13:08 -07:00
Michael Jones
65bb6593e5
[libc] add strdup implementation
...
Add an implementation for strdup.
Reviewed By: lntue, sivachandra
Differential Revision: https://reviews.llvm.org/D111584
2021-10-27 10:21:04 -07:00
Michael Jones
7dcdbabb3b
[libc] add malloc funcs as external entrypoints
...
malloc, calloc, realloc, and free are all functions that other libc
functions depend on, but are pulled from external sources, instead of
having an internal implementation. This patch adds a way to include
functions like that as entrypoints in the list of external entrypoints,
and includes the malloc functions using this new path.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D112104
2021-10-27 10:21:01 -07:00
Michael Jones
53804d4eb2
[libc] fix strtol returning the wrong length
...
Previously, strtol/ll/ul/ull would return a pointer to the end of its
parsing, regardless of if it detected a number. Now it will return a
length of 0 when it doesn't find a number.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D112176
2021-10-25 15:00:45 -07:00
Joe Loser
59cf6a7403
[libc][NFC] Remove extra space in libc/CMakeLists.txt
2021-10-25 16:29:14 -04:00
Joe Loser
46c82753f6
[libc][NFC] Remove extra slash in path in libc/CMakeLists.txt
...
Remove extra `/` in path to match the include filepath from the previous
line.
Differential Revision: https://reviews.llvm.org/D112476
2021-10-25 16:26:49 -04:00
Kazu Hirata
d8e4170b0a
Ensure newlines at the end of files (NFC)
2021-10-23 08:45:29 -07:00
Michael Jones
87c016078a
[libc] add atof, strtof and strtod
...
Add the string to floating point conversion functions.
Long doubles aren't supported yet, but floats and doubles are. The
primary algorithm used is the Eisel-Lemire ParseNumberF64 algorithm,
with the Simple Decimal Conversion algorithm as backup.
Links for more information on the algorithms:
Number Parsing at a Gigabyte per Second, Software: Practice and
Experience 51 (8), 2021 (https://arxiv.org/abs/2101.11408 )
https://nigeltao.github.io/blog/2020/eisel-lemire.html
https://nigeltao.github.io/blog/2020/parse-number-f64-simple.html
Differential Revision: https://reviews.llvm.org/D109261
2021-10-18 16:10:03 -07:00
Guillaume Chatelet
4a9bcb605b
[libc] Memory function benchmarks: rename MemcmpConfiguration in MemcmpOrBcmpConfiguration
...
This will help make sense of the double use of the same type in https://reviews.llvm.org/D111622#inline-1065560 .
Differential Revision: https://reviews.llvm.org/D111868
2021-10-15 13:42:29 +00:00
Michael Jones
db8a88fef8
[libc] add memccpy and mempcpy
...
Add an implementation for memccpy and mempcpy. These functions are
posix extensions for the moment.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D111762
2021-10-14 16:38:00 -07:00
Michael Jones
9e9803bf82
[libc] Add strncat and fix strcat
...
This adds strncat to llvm libc. In addition, an error was found with
strcat and that was fixed.
Reviewed By: lntue
Differential Revision: https://reviews.llvm.org/D111583
2021-10-12 18:18:18 +00:00
Guillaume Chatelet
ad82fe7b28
[libc] Add rep;movsb as an accelerator under x86
2021-10-08 14:31:55 +00:00
Guillaume Chatelet
f256c39541
[libc] ifdef guard element architecture implementations
2021-10-08 14:25:26 +00:00
Guillaume Chatelet
d01ae990e1
Revert "[libc] Add rep;movsb as an accelerator under x86"
...
This reverts commit 1c7160300d
.
2021-10-08 13:44:37 +00:00
Guillaume Chatelet
1c7160300d
[libc] Add rep;movsb as an accelerator under x86
2021-10-08 13:34:59 +00:00
Michael Jones
6f80339b18
[libc][NFC] Add supporting class for atof implementation
...
This change adds the High Precision Decimal described here:
https://nigeltao.github.io/blog/2020/parse-number-f64-simple.html
It will be used for the atof implementation later, but is complete and
tested now.
The code is inspired by the golang implmentation of the HPD class, which
can be found here: https://github.com/golang/go/blob/release-branch.go1.16/src/strconv/decimal.go
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D110454
2021-10-04 21:08:02 +00:00
Guillaume Chatelet
adc18ad6ac
[libc] move benchmark function registration to a different file
2021-09-30 13:11:33 +00:00
Michael Jones
b62d72f3c5
[libc] Add support for 128 bit ints in limits.h
...
Also, this adds unit tests to check that limits.h complies with the C
standard.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D110643
2021-09-28 23:50:16 +00:00
Siva Chandra Reddy
8379fc4a53
[libc] Add implementations of the C standard condition variable functions.
...
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D108948
2021-09-28 21:18:45 +00:00
Siva Chandra Reddy
5c3c716bb1
[libc] Add FE_DFL_ENV and handle it in fesetenv.
...
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D110611
2021-09-28 18:09:52 +00:00
Michael Jones
43c543aab7
[libc][NFC] Make strchr and strrchr more consistent
...
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D110581
2021-09-28 17:42:03 +00:00
Siva Chandra Reddy
5eb6b82729
[libc] Add an implementation of qsort.
...
A fuzzer for qsort has also been added.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D110382
2021-09-24 19:22:45 +00:00
Andre Vieira
8b87c3d573
[libc] Add optimized memset for AArch64
...
Differential Revision: https://reviews.llvm.org/D107848
2021-09-23 09:19:47 +01:00
Siva Chandra Reddy
32a5007865
[libc] Add an implementation of bsearch.
...
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D110222
2021-09-22 16:37:03 +00:00
Siva Chandra Reddy
f5b8f1247c
[libc][obvious] Add inttypes.h and stdlib.h as deps to *div functions.
2021-09-20 05:54:32 +00:00
Siva Chandra Reddy
5252aa2981
[libc][obvious] Make *abs and *div functions buildable in default mode.
2021-09-20 05:44:49 +00:00
Siva Chandra Reddy
74670e79b0
[libc] Add implementations of div, ldiv, lldiv and imaxdiv.
...
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D109952
2021-09-20 04:51:42 +00:00
Cheng Wang
3582828748
[libc][Obvious] Some clean work with memmove.
2021-09-14 17:30:37 +08:00
Guillaume Chatelet
cc84ce9129
Revert "[libc] Some clean work with memmove."
...
This reverts commit b659b789c0
.
2021-09-13 14:32:08 +00:00
Siva Chandra Reddy
0da5ac1a75
[libc] Add extension functions fedisableexcept, feenableexcept and fegetexcept.
...
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D109613
2021-09-10 18:44:53 +00:00
Cheng Wang
2fc1913505
[libc] Check signs instead of values in memcmp unittests.
...
The C standard only guarantees the sign of return value. The exact return
value is implementation defined.
Reviewed By: gchatelet
Differential Revision: https://reviews.llvm.org/D109588
2021-09-10 18:35:10 +08:00
Cheng Wang
b659b789c0
[libc] Some clean work with memmove.
...
- Replace `move_byte_forward()` with `memcpy`. In `memcpy` implementation,
it copies bytes forward from beginning to end. Otherwise, `memmove` unit
tests will break.
- Make `memmove` unit tests work.
Reviewed By: gchatelet
Differential Revision: https://reviews.llvm.org/D109316
2021-09-10 16:52:42 +08:00
Siva Chandra Reddy
c5cfbe40de
[libc] Skip fenv exception tests on aarch64 if HW doesn't support exceptions.
...
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D109538
2021-09-09 20:47:59 +00:00
Guillaume Chatelet
219a1d217d
[libc] Fix running benchmarks under msan/asan
...
asan/msan intercepts `aligned_malloc` and misbehave when the requested
alignment is greater than 512.
b041b613e6/compiler-rt/lib/asan/asan_allocator.cpp (L430-L431)
2021-09-08 14:43:55 +00:00
Siva Chandra Reddy
2bf8be79b1
[libc][NFC] Add fenv and string headers to x86_64 headers list.
2021-09-07 21:06:39 +00:00
Cheng Wang
9b015383f1
[libc][Obvious] Reorder CMakelists alphabetically.
2021-09-05 11:01:05 +08:00
Cheng Wang
7abd8f6c6e
[libc][Obvious] Fix typos
2021-09-05 10:54:52 +08:00
Michael Jones
37ce7349f7
[libc] fix strtointeger hex prefix parsing
...
Fix edge case where "0x" would be considered a complete hexadecimal
number for purposes of str_end. Now the hexadecimal prefix needs a valid
digit after it, else just the 0 will be counted as the number.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D109084
2021-09-03 20:39:15 +00:00
Siva Chandra Reddy
2f4f452f16
[libc] Add a skeleton for C standard condition variable functions.
...
This patch adds a skeleton as a preparatory step for the next patch which
adds the actual implementations of the condition variable functions.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D108947
2021-09-01 19:41:52 +00:00
Siva Chandra Reddy
0239adac4a
[libc] Mark return value of memcpy in strcpy as initialized for msan.
...
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D109045
2021-09-01 19:01:25 +00:00
Michael Jones
7f2ce19d1c
[libc][nfc][obvious] fix typos in FPUtil
...
Fix minor typos in FPUtil comments.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D108952
2021-08-30 22:39:02 +00:00
Siva Chandra Reddy
7a2a765745
[libc] Add mtx_destroy which does nothing.
...
There is not cleanup to be done for the mutex type so mtx_destroy does
nothing.
2021-08-30 20:43:46 +00:00
Siva Chandra Reddy
3383ec5fdd
[libc] Ensure the result of the clone syscall is not on stack in thrd_create.
...
Also, added a call to munmap on error in thrd_create.
2021-08-30 04:35:40 +00:00
Siva Chandra Reddy
f7e572b4f4
[libc][NFC] Add a check to catch mismatch in internal and public mutex types.
2021-08-30 04:08:35 +00:00
Roland McGrath
225eb8a22d
[libc][NFC] Fix onre more -Wconversion warning in strtoul test code.
...
The last change missed one spot.
Differential Revision: https://reviews.llvm.org/D108845
2021-08-27 14:12:39 -07:00
Roland McGrath
4e1a164d7b
[libc] Fix various -Wconversion warnings in strto*l test code.
...
The Fuchsia build compiles the libc and test code with lots
of warnings enabled, including all the integer conversion warnings.
There was some sloppy type usage here that triggered some of those.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D108800
2021-08-27 14:04:00 -07:00
Siva Chandra Reddy
8e284be04f
[libc][Obvious] Add header guards for the generated linux syscall header file.
2021-08-27 16:17:53 +00:00