[llvm-commits] Thread Sanitizer seems to have the dual issue

Pedro Artigas partigas at apple.com
Tue Nov 27 14:55:33 PST 2012


Hello All,

Context: Address Sanitizer is currently being fixed because it uses the doFinalization(Module) of the function pass as a module pass that runs after the function passes and that is not a valid assumption, a separate module pass doing transformations in the run method is the clean solution.

Thread sanitizer has the similar dual problem, it uses doInitialization as the run of a module pass that executes prior to the function passes.

Unfortunately there is no simple WAR for the issue on Thread Sanitizer because doInitialization can be called just once and, therefore, we cannot just ignore the first call (on doFinalization we ignore all but the first call as a WAR, that works when a single call is made or when multiple calls are made for WAR reasons)

I cannot check in my changes before Thread Sanitizer gets fixed as they would break it, I am hoping the authors of Thread Sanitizer are the same (or as helpful) as the Address Sanitizer ones (thanks for the work on the fix for that one).

Any info / insight is appreciated.

Thanks

Pedro Artigas



More information about the llvm-commits mailing list