summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorPaul Osmialowski <pawel.osmialowski@arm.com>2016-05-31 20:20:32 +0000
committerPaul Osmialowski <pawel.osmialowski@arm.com>2016-05-31 20:20:32 +0000
commitf7cc6affdb27443f1586a775eaf5be68369bf93c (patch)
tree87a1d67c4fa7a997821c7c4b788babb3e81fb730 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent42b0c352c15c40082fbf8c2952b8a88c1578038f (diff)
downloadbcm5719-llvm-f7cc6affdb27443f1586a775eaf5be68369bf93c.tar.gz
bcm5719-llvm-f7cc6affdb27443f1586a775eaf5be68369bf93c.zip
Use C++11 atomics for ticket locks implementation
This patch replaces use of compiler builtin atomics with C++11 atomics for ticket locks implementation. Ticket locks are used in critical places of the runtime, e.g. in the tasking mechanism. The main reason this change was introduced is the problem with work stealing function on ARM architecture which suffered from nasty race condition. It turned out that the root cause of the problem lies in the way ticket locks are implemented. Changing compiler builtins into C++11 atomics solves the problem. Two assertions were added into kmp_tasking.c which are useful for detecting early symptoms of something wrong going on with work stealing, which were among the possible outcomes of the race condition. Differential Revision: http://reviews.llvm.org/D19878 llvm-svn: 271324
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud