diff options
author | serge-sans-paille <sguelton@redhat.com> | 2021-04-01 22:18:55 +0200 |
---|---|---|
committer | serge-sans-paille <sguelton@redhat.com> | 2021-04-08 10:11:56 +0200 |
commit | 20105b6b4874a85813f7a4a3d8ad2a0f023dda14 (patch) | |
tree | 51ac8eb0e312c262021515a8c6f69df6afd3f451 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | edb18ea5a9132a8e359ce0c0b103286d15244b8a (diff) | |
download | llvm-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