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

Kostya Serebryany kcc at google.com
Tue Nov 27 20:50:09 PST 2012


Hi Pedro,

I managed to understand the problem with doFinalization, but I still don't
see the problem with doInitialization.
Could you please describe what's wrong in more detail?

Besides, tsan pass's doInitialization doesn't do anything than
asan's doInitialization.

Thanks,
--kcc

On Wed, Nov 28, 2012 at 2:55 AM, Pedro Artigas <partigas at apple.com> wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121128/8c96fa40/attachment.html>


More information about the llvm-commits mailing list