(re-sent to the correct llvm-dev)
Timing is definitively an issue in multithreaded mode (I think it is a known issue, but we may not have a PR opened yet). “Someone” needs to reimplement it I guess…
I just hasn’t been a high priority for anyone I think (and it won’t be for me in the next couple of months at least, but I’ll be happy to help on thinking about it and/or reviewing patches).
About your comment on TSan, note that there are already some locks (for example in getNamedRegionTimer()). I wonder if the problem is about race condition or the way the timing are computed.