FailedChanges

Summary

  1. [tsan] Track external tags in thread traces To make the TSan external API work with Swift and other use cases, we need to track "tags" for individual memory accesses. Since there is no space to store this information in shadow cells, let's use the thread traces for that. This patch stores the tag as an extra frame in the stack traces (by calling FuncEntry and FuncExit with the address of a registered tag), this extra frame is then stripped before printing the backtrace to stderr. Differential Revision: https://reviews.llvm.org/D32382
Revision 301777 by kuba.brecka:
[tsan] Track external tags in thread traces

To make the TSan external API work with Swift and other use cases, we need to track "tags" for individual memory accesses. Since there is no space to store this information in shadow cells, let's use the thread traces for that. This patch stores the tag as an extra frame in the stack traces (by calling FuncEntry and FuncExit with the address of a registered tag), this extra frame is then stripped before printing the backtrace to stderr.

Differential Revision: https://reviews.llvm.org/D32382
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/go/buildgo.sh (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/go/buildgo.sh
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_external.cc (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_external.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_report.cc (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_report.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.h (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc (diff)llvm-revision.src/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_report.cc