[tsan] fox the GO build

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204037 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] allow to store the lock context (stack trace id) with all currently held locks in a thread. This will allow the deadlock detector to provide better warnings (more changes to go)

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204039 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] make the deadlock detector print 2*N stack traces on lock-order-inversion with N locks (i.e. print stack traces for both lock acquisitions in every edge in the graph). More improvements to follow

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204042 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] reverse the order of the stack traces printed for every pair of locks in the deadlock report (first print the 'from' node, then print the 'to' node of the deadlock graph)

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204043 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] fix the deadlock detector build

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204044 91177308-0d34-0410-b5e6-96231b3b80d8
PGO: Statically generate data structures

In instrumentation-based profiling, we need a set of data structures to
represent the counters.  Previously, these were built up during static
initialization.  Now, they're shoved into a specially-named section so
that they show up as an array.

As a consequence of the reorganizing symbols, instrumentation data
structures for linkonce functions are now correctly coalesced.

This is the first step in a larger project to minimize runtime overhead
and dependencies in instrumentation-based profilng.  The larger picture
includes removing all initialization overhead and making the dependency
on libc optional.

<rdar://problem/15943240>

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204079 91177308-0d34-0410-b5e6-96231b3b80d8
Rename __ProfileData to __llvm_pgo_data

<rdar://problem/15943240>

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204083 91177308-0d34-0410-b5e6-96231b3b80d8
Switch from fputc to putc to fix r204079?

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204084 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r204079, r204083 and r204084 "PGO: Statically generate data structures"

Buildbots are having trouble finding fputc(), and I can't figure out
why.  Reverting to investigate.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204088 91177308-0d34-0410-b5e6-96231b3b80d8
Reapply "PGO: Statically generate data structures"

Reapply r204079 and r204083, this time with stubs for fputc in
compiler-rt.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204091 91177308-0d34-0410-b5e6-96231b3b80d8
[sanitizer] a bit more informative deadlock detector report (still lots to improve)

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204115 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: fix flaky test



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204119 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: add missing interceptor for embed symbolizer



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204124 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: better addr->object hashmap
still experimental



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204126 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: support up to 1<<20 mutexes in standalone deadlock detector



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204127 91177308-0d34-0410-b5e6-96231b3b80d8
Move Android ucontext.h out of third_party.

Google is re-licensing this code under the standard dual license of
compiler-rt.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@204128 91177308-0d34-0410-b5e6-96231b3b80d8