GGuillaume Chatelet[libc] Fix missing static_cast
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[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][mem*] Address facility + test enum support This patch is a subpart of D125768 intented to make the review easier. The Address struct represents a pointer but also adds compile time knowledge like alignment or temporal/non-temporal that helps with downstream instruction selection. Differential Revision: https://reviews.llvm.org/D125966 | 4 年前 | |
[libc][mem*] Introduce Algorithms for new mem framework This patch is a subpart of D125768 intented to make the review easier. This patch introduces the same algorithms as in libc/src/string/memory_utils/elements.h but using the new API. Differential Revision: https://reviews.llvm.org/D128335 | 3 年前 | |
[libc][mem*] Introduce Sized/Backends for new mem framework This patch is a subpart of D125768 intented to make the review easier. The SizedOp struct represents operations to be performed on a certain number of bytes. It is responsible for breaking them down into platform types and forwarded to the Backend. The Backend struct represents a lower level abstraction that works only on types (uint8_t, __m128i, ...). It is similar to instruction selection. Differential Revision: https://reviews.llvm.org/D126768 | 3 年前 | |
[libc][mem*] Introduce Sized/Backends for new mem framework This patch is a subpart of D125768 intented to make the review easier. The SizedOp struct represents operations to be performed on a certain number of bytes. It is responsible for breaking them down into platform types and forwarded to the Backend. The Backend struct represents a lower level abstraction that works only on types (uint8_t, __m128i, ...). It is similar to instruction selection. Differential Revision: https://reviews.llvm.org/D126768 | 3 年前 | |
[libc][mem*] Introduce Sized/Backends for new mem framework This patch is a subpart of D125768 intented to make the review easier. The SizedOp struct represents operations to be performed on a certain number of bytes. It is responsible for breaking them down into platform types and forwarded to the Backend. The Backend struct represents a lower level abstraction that works only on types (uint8_t, __m128i, ...). It is similar to instruction selection. Differential Revision: https://reviews.llvm.org/D126768 | 3 年前 | |
[libc][mem*] Introduce Sized/Backends for new mem framework This patch is a subpart of D125768 intented to make the review easier. The SizedOp struct represents operations to be performed on a certain number of bytes. It is responsible for breaking them down into platform types and forwarded to the Backend. The Backend struct represents a lower level abstraction that works only on types (uint8_t, __m128i, ...). It is similar to instruction selection. Differential Revision: https://reviews.llvm.org/D126768 | 3 年前 | |
[libc] apply new lint rules This patch applies the lint rules described in the previous patch. There was also a significant amount of effort put into manually fixing things, since all of the templated functions, or structs defined in /spec, were not updated and had to be handled manually. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D114302 | 4 年前 | |
[libc] Optimized version of memmove This implementation relies on storing data in registers for sizes up to 128B. Then depending on whether dst is less (resp. greater) than src we move data forward (resp. backward) by chunks of 32B. We first make sure one of the pointers is aligned to increase performance on large move sizes. Differential Revision: https://reviews.llvm.org/D114637 | 4 年前 | |
[libc] Use correct mnemonic for arm64_32 architecture arm64_32 is an ILP32 platform Differential Revision: https://reviews.llvm.org/D124134 | 4 年前 | |
[libc] Add explicit casts for string functions This fixes warnings from -Wimplicit-int-conversion Differential revision: https://reviews.llvm.org/D127694 | 3 年前 | |
[libc] apply new lint rules This patch applies the lint rules described in the previous patch. There was also a significant amount of effort put into manually fixing things, since all of the templated functions, or structs defined in /spec, were not updated and had to be handled manually. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D114302 | 4 年前 | |
[libc] Rely on __builtin_memcpy_inline for memcpy implementation This patch removes usage of -mllvm -combiner-global-alias-analysis and relies on compiler builtin to implement memcpy. Note that -mllvm -combiner-global-alias-analysis is actually only useful for functions where buffers can alias (namely memcpy and memmove). The other memory functions where not benefiting from the flag anyways. The upside is that the memory functions can now be compiled from source with thinlto (thinlto would not be able to carry on the flag when doing inlining). The downside is that for compilers other than clang (i.e. not providing __builtin_memcpy_inline) the codegen may be worse. Differential Revision: https://reviews.llvm.org/D128051 | 3 年前 | |
[libc] apply new lint rules This patch applies the lint rules described in the previous patch. There was also a significant amount of effort put into manually fixing things, since all of the templated functions, or structs defined in /spec, were not updated and had to be handled manually. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D114302 | 4 年前 | |
[libc] Fix missing static_cast | 3 年前 | |
[libc] Add a cacheline size of arm target. It is set arbitrarily at 32 now. It can be adjusted as required in future. | 3 年前 |