diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-11-04 20:37:31 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-12-15 03:54:02 -0500 |
commit | 28c6781a3215a36d61126818c3e64c99c2344350 (patch) | |
tree | 9c1122799e470b93667d2e8f8202b89d33edcb6d /rts/include | |
parent | 748490d2ff51d6c6fa44aad587908b271c801fa9 (diff) | |
download | haskell-28c6781a3215a36d61126818c3e64c99c2344350.tar.gz |
codeGen: Introduce ThreadSanitizer instrumentation
This introduces a new Cmm pass which instruments the program with
ThreadSanitizer annotations, allowing full tracking of mutator memory
accesses via TSAN.
Diffstat (limited to 'rts/include')
-rw-r--r-- | rts/include/rts/TSANUtils.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/rts/include/rts/TSANUtils.h b/rts/include/rts/TSANUtils.h index ddcf108041..da2240085e 100644 --- a/rts/include/rts/TSANUtils.h +++ b/rts/include/rts/TSANUtils.h @@ -65,3 +65,10 @@ void AnnotateBenignRaceSized(const char *file, #define TSAN_ANNOTATE_BENIGN_RACE(addr,desc) \ TSAN_ANNOTATE_BENIGN_RACE_SIZED((void*)(addr), sizeof(*addr), desc) + + +uint64_t ghc_tsan_atomic64_compare_exchange(uint64_t *ptr, uint64_t expected, uint64_t new_value, int success_memorder, int failure_memorder); +uint32_t ghc_tsan_atomic32_compare_exchange(uint32_t *ptr, uint32_t expected, uint32_t new_value, int success_memorder, int failure_memorder); +uint16_t ghc_tsan_atomic16_compare_exchange(uint16_t *ptr, uint16_t expected, uint16_t new_value, int success_memorder, int failure_memorder); +uint8_t ghc_tsan_atomic8_compare_exchange(uint8_t *ptr, uint8_t expected, uint8_t new_value, int success_memorder, int failure_memorder); + |