diff options
author | Guillaume Chatelet <gchatelet@google.com> | 2025-06-26 08:18:02 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-26 10:18:02 +0200 |
commit | 7289b6789ef3297f8de30a9d94c7dabc6c35931e (patch) | |
tree | 3c9c2e996217cae6f5b7c708f31cfd8e4365e556 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 0e268791c5618b1cfedc73e51cf362d62400241c (diff) | |
download | llvm-7289b6789ef3297f8de30a9d94c7dabc6c35931e.zip llvm-7289b6789ef3297f8de30a9d94c7dabc6c35931e.tar.gz llvm-7289b6789ef3297f8de30a9d94c7dabc6c35931e.tar.bz2 |
[libc] Improve memcpy for ARM Cortex-M supporting unaligned accesses. (#144872)
This implementation has been compiled with the [pigweed toolchain](https://pigweed.dev/toolchain.html) and tested on:
- Raspberry Pi Pico 2 with the following options\
`--target=armv8m.main-none-eabi`
`-march=armv8m.main+fp+dsp`
`-mcpu=cortex-m33`
- Raspberry Pi Pico with the following options\
`--target=armv6m-none-eabi`
`-march=armv6m`
`-mcpu=cortex-m0+`
They both compile down to a little bit more than 200 bytes and are between 2 and 10 times faster than byte per byte copies.
For best performance the following options can be set in the `libc/config/baremetal/arm/config.json`
```
{
"codegen": {
"LIBC_CONF_KEEP_FRAME_POINTER": {
"value": false
}
},
"general": {
"LIBC_ADD_NULL_CHECKS": {
"value": false
}
}
}
```
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions