PRUNERS / archer

Archer, a data race detection tool for large OpenMP applications
https://pruners.github.io/archer
Apache License 2.0
61 stars 13 forks source link

Implement deduplication #58

Closed IanBriggs closed 6 years ago

IanBriggs commented 6 years ago

This uses ThreadSanitizer's report capabilities to identify all races and suppress based on unique tuples of (file, line, column, is_write)

This was based on the v1.0.0 tag. Intended for a minor release - v1.0.1

I will make another pull request for the master.

dongahn commented 6 years ago

@jprotze and @simoatze: This is an experimental PR for early review.

I will also ask Pei-Hung and Leo to review this. 1. we used their benchmark and 2. they cinsider this as a weakness of Archer.

simoatze commented 6 years ago

@IanBriggs The problem of this is that archer is dependent to the compiler-rt source. For example the new deduplication file needs sanitizer_common/sanitizer_atomic.h which is not installed with LLVM/Clang. I don't think we can assume that user will always build Archer having the llvm source on hand.

Is there a possible workaround for this? Would help using __tsan_on_report instead of redefining the C++ method OnReport?