Go to file
Kostya Kortchinsky cb7912cc0f [sanitizer] Correct 64-bit atomic_store on 32-bit "other" platforms
Summary:
I think there might be something to optimize in `atomic_store`.
Currently, if everything goes well (and we have a different new value), we
always iterate 3 times.
For example, `with a = 0`, `oldval = a`, `newval = 42`, we get:
```
oldval = 0, newval = 42, curval = 0  
oldval = 0, newval = 42, curval = 42 
oldval = 42, newval = 42, curval = 42
```
and then it breaks.

Unless I am not seeing something, I don't see a point to the third iteration.
If the current value is the one we want, we should just break.
This means that 2 iterations (with a different newval) should be sufficient to
achieve what we want.

Reviewers: dvyukov, alekseyshl

Reviewed By: dvyukov

Subscribers: kubamracek, delcypher, #sanitizers, llvm-commits

Differential Revision: https://reviews.llvm.org/D46597

llvm-svn: 331890
2018-05-09 16:20:52 +00:00
clang [OPENMP] Mark global tors/dtors as used. 2018-05-09 14:15:18 +00:00
clang-tools-extra Do not warn on unused parameters for functions with empty bodies. 2018-05-09 13:20:03 +00:00
compiler-rt [sanitizer] Correct 64-bit atomic_store on 32-bit "other" platforms 2018-05-09 16:20:52 +00:00
debuginfo-tests [Darwin] Specify DWARF 2/4 when running apple accelerator tests. 2018-02-26 20:56:45 +00:00
libclc remquo: Flush denormals if not supported 2018-05-03 05:44:28 +00:00
libcxx Revert "Emit an error when mixing <stdatomic.h> and <atomic>" 2018-05-08 22:50:35 +00:00
libcxxabi Fix test failure for missing _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS 2018-05-03 12:44:27 +00:00
libunwind [cmake] Remove duplicate command line options from build 2018-04-05 20:27:50 +00:00
lld [wasm] Update test for variables->retainedNodes rename. 2018-05-09 10:09:23 +00:00
lldb [lit, lldbsuite] Add a bug reference to the failing TestLinuxCore and fix an undefined property in dotest.py 2018-05-09 15:35:19 +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 [InstCombine] snprintf optimizations 2018-05-09 16:09:31 +00:00
openmp [OMPT] Fix thread_num for implicit_task_end callbacks in nested parallel regions 2018-05-07 12:42:21 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [test] Replace undef with true/false to make test case less fragile 2018-05-08 07:24:05 +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.