aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorGuillaume Chatelet <gchatelet@google.com>2023-04-19 14:57:14 +0000
committerGuillaume Chatelet <gchatelet@google.com>2023-06-05 09:46:05 +0000
commit9ec6ebd3ceabb29482aa18a64b943788b65223dc (patch)
tree286eb89318e987c80d302c1b090a7eea2b901a99 /flang/lib/Frontend/CompilerInvocation.cpp
parent60f06bc5bbd9bcb0d8e5e5b879da36fa7f210e84 (diff)
downloadllvm-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