Make a PR against the branch tsan-with-ea-IPA. In this PR, on top of computing the currently held lockset, for each procedure also compute a summary consisting of two sets:
- A set of mutexes that may be unlocked anywhere in the function and not relocked
- A set of mutexes that were not known to locked at the start of the function but are known to be locked now.
Then, we computing the effect of a call edge to f, take the current lockset, remove any mutexes that f may unlock and add those that f must lock.
Make a PR against the branch
tsan-with-ea-IPA. In this PR, on top of computing the currently held lockset, for each procedure also compute a summary consisting of two sets:Then, we computing the effect of a call edge to
f, take the current lockset, remove any mutexes thatfmay unlock and add those thatfmust lock.