aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorserge-sans-paille <sguelton@redhat.com>2021-04-01 22:18:55 +0200
committerserge-sans-paille <sguelton@redhat.com>2021-04-08 10:11:56 +0200
commit20105b6b4874a85813f7a4a3d8ad2a0f023dda14 (patch)
tree51ac8eb0e312c262021515a8c6f69df6afd3f451 /flang/lib/Frontend/CompilerInvocation.cpp
parentedb18ea5a9132a8e359ce0c0b103286d15244b8a (diff)
downloadllvm-20105b6b4874a85813f7a4a3d8ad2a0f023dda14.zip
llvm-20105b6b4874a85813f7a4a3d8ad2a0f023dda14.tar.gz
llvm-20105b6b4874a85813f7a4a3d8ad2a0f023dda14.tar.bz2
[clang] Speedup line offset mapping computation
Clang spends a decent amount of time in the LineOffsetMapping::get(...) function. This function used to be vectorized (through SSE2) then the optimization got dropped because the sequential version was on-par performance wise. This provides an optimization of the sequential version that works on a word at a time, using (documented) bithacks to provide a portable vectorization. When preprocessing the sqlite amalgamation, this yields a sweet 3% speedup. This is a recommit of 6951b72334bbe4c189c71751edc1e361d7b5632c with endianness and unsigned long vs uint64_t issues fixed (hopefully). Differential Revision: https://reviews.llvm.org/D99409
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions