Performance aside, what features does gcc -fsanitize=thread lack that are supported by valgrind --tool=helgrind, and vice-versa? Is it platform-dependent?
Which detects the most critical errors? I would like to use only one if I can, since gcc threadsanitize is incompatible with address sanitization, and valgrind makes my project run much slower.