Go to file
Kostya Kortchinsky d6f7a65197 [sanitizer] SizeClassMap minor improvement/correctness changes
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
2018-02-05 19:22:56 +00:00
clang [Options] Make --cuda-path-ignore-env a Flag, NFCI. 2018-02-05 18:19:40 +00:00
clang-tools-extra [clang-tidy] Fix incorrect code indention in the doc. 2018-02-05 13:23:48 +00:00
compiler-rt [sanitizer] SizeClassMap minor improvement/correctness changes 2018-02-05 19:22:56 +00:00
debuginfo-tests [debuginfo-tests] Support moving debuginfo-tests to llvm/projects 2017-12-12 16:54:20 +00:00
libclc half_powr: Implement using powr 2018-02-01 03:00:35 +00:00
libcxx Fix initialization of array<const T, 0> with GCC. 2018-02-04 08:02:35 +00:00
libcxxabi [demangler] return early if conditional expr parsing failed 2018-02-05 02:34:41 +00:00
libunwind [cmake] [libunwind] LLVM_FOUND isn't always set, so just test if 2018-01-27 19:31:44 +00:00
lld Allow both -no-omagic and --no-omagic. 2018-02-05 19:14:03 +00:00
lldb Add a comment explaining how the input for GetModuleSpecifications_EarlySectionHeaders was generated 2018-02-05 18:03:02 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm [X86] Teach DAG unfoldMemoryOperand to reconvert CMPs to tests 2018-02-05 18:58:58 +00:00
openmp [OpenMP-RT] Fix debug string for NVPTX runtime library 2018-02-01 16:12:16 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default. 2018-02-03 06:59:47 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

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.