summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h
Commit message (Collapse)AuthorAgeFilesLines
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-191-4/+3
| | | | | | | | | | | | | | | | | to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
* [sanitizer] Correct 64-bit atomic_store on 32-bit "other" platformsKostya Kortchinsky2018-05-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Reland "[mips][compiler-rt] Provide 64bit atomic add and sub"Simon Dardis2017-12-221-63/+0
| | | | | | | | | | | | | | | | | r318733 introduced a build failure for native MIPS32 systems for xray due to the lack of __sync_fetch_and_add / __syn_fetch_and_sub support. This patch extends the existing support providing atomics so that xray can be successfully built. The initial patch was reverted in r321292, as I suspected it may have caused the buildbot failure. Another patch in the updates the bot fetched caused the test failures which was reverted. Reviewers: atanasyan, dberris Differential Revision: https://reviews.llvm.org/D40385 llvm-svn: 321383
* Revert "[mips][compiler-rt] Provide 64bit atomic add and sub"Simon Dardis2017-12-211-0/+63
| | | | | | | | | | | This reverts commit r321260. It appears to have broken the sanitizer bot sanitizer-ppc64be-linux. http://lab.llvm.org:8011/builders/sanitizer-ppc64be-linux/builds/5029 Reverting to see if the buildbot turns green. llvm-svn: 321292
* [mips][compiler-rt] Provide 64bit atomic add and subSimon Dardis2017-12-211-63/+0
| | | | | | | | | | | | | r318733 introduced a build failure for native MIPS32 systems for xray due to the lack of __sync_fetch_and_add / __syn_fetch_and_sub support. This patch extends the existing support providing atomics so that xray can be successfully built. Reviewers: atanasyan, dberris Differential Revision: https://reviews.llvm.org/D40385 llvm-svn: 321260
* [mips][compiler-rt] Fix build breakage.Simon Dardis2017-06-211-2/+1
| | | | | | | Change some reinterpret_casts to c-style casts due to template instantiation restrictions and build breakage due to missing paranthesises. llvm-svn: 305899
* [scudo] Enabling MIPS support for ScudoSagar Thakur2017-06-191-0/+65
| | | | | | | | | Adding MIPS 32-bit and 64-bit support for Scudo. Reviewed by cryptoad, sdardis. Differential: D31803 llvm-svn: 305682
* [sanitizer] fix for ARM Linux, patch by Maxim OstapenkoKostya Serebryany2014-05-131-1/+2
| | | | llvm-svn: 208673
* asan: fix atomic operations on ARMDmitry Vyukov2014-01-221-0/+96
implement correct atomic load/store for ARM add test for atomic load/store http://llvm-reviews.chandlerc.com/D2582 llvm-svn: 199802
OpenPOWER on IntegriCloud