diff options
author | Guillaume Chatelet <gchatelet@google.com> | 2023-04-19 14:57:14 +0000 |
---|---|---|
committer | Guillaume Chatelet <gchatelet@google.com> | 2023-06-05 09:46:05 +0000 |
commit | 9ec6ebd3ceabb29482aa18a64b943788b65223dc (patch) | |
tree | 286eb89318e987c80d302c1b090a7eea2b901a99 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 60f06bc5bbd9bcb0d8e5e5b879da36fa7f210e84 (diff) | |
download | llvm-9ec6ebd3ceabb29482aa18a64b943788b65223dc.zip llvm-9ec6ebd3ceabb29482aa18a64b943788b65223dc.tar.gz llvm-9ec6ebd3ceabb29482aa18a64b943788b65223dc.tar.bz2 |
[libc] Improve memcmp latency and codegen
This is based on ideas from @nafi to:
- use a branchless version of 'cmp' for 'uint32_t',
- completely resolve the lexicographic comparison through vector
operations when wide types are available. We also get rid of byte
reloads and serializing '__builtin_ctzll'.
I did not include the suggestion to replace comparisons of 'uint16_t'
with two 'uint8_t' as it did not seem to help the codegen. This can
be revisited in sub-sequent patches.
The code been rewritten to reduce nested function calls, making the
job of the inliner easier and preventing harmful code duplication.
Reviewed By: nafi3000
Differential Revision: https://reviews.llvm.org/D148717
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions