forked from OSchip/llvm-project
d6f7a65197
Summary: In `ClassID`, make sure we use an unsigned as based for the `lbits` shift. The previous code resulted in spurious sign extensions like for x64: ``` add esi, 0FFFFFFFFh movsxd rcx, esi and rcx, r15 ``` The code with the `U` added is: ``` add esi, 0FFFFFFFFh and rsi, r15 ``` And for `MaxCachedHint`, use a 32-bit division instead of `64-bit`, which is faster (https://lemire.me/blog/2017/11/16/fast-exact-integer-divisions-using-floating-point-operations/) and already used in other parts of the code (64-bit `GetChunkIdx`, 32-bit `GetMetaData` enforce 32-bit divisions) Not major performance gains by any mean, but they don't hurt. Reviewers: alekseyshl Reviewed By: alekseyshl Subscribers: kubamracek, delcypher, llvm-commits, #sanitizers Differential Revision: https://reviews.llvm.org/D42916 llvm-svn: 324263 |
||
---|---|---|
clang | ||
clang-tools-extra | ||
compiler-rt | ||
debuginfo-tests | ||
libclc | ||
libcxx | ||
libcxxabi | ||
libunwind | ||
lld | ||
lldb | ||
llgo | ||
llvm | ||
openmp | ||
parallel-libs | ||
polly | ||
README.md |
README.md
Low Level Virtual Machine (LLVM)
This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.