[PPC64, TSAN] LLVM basic enablement of thread sanitizer for PPC64 (BE and LE)

Description

[PPC64, TSAN] LLVM basic enablement of thread sanitizer for PPC64 (BE and LE)

This patch is by Simone Atzeni with portions by Adhemerval Zanella.

This contains the LLVM patches to enable the thread sanitizer for
PPC64, both big- and little-endian. Two different virtual memory
sizes are supported: Old kernels use a 44-bit address space, while
newer kernels require a 46-bit address space.

There are two companion patches that will be added shortly. There is
a Clang patch to actually turn on the use of the thread sanitizer for
PPC64. There is also a patch that I wrote to provide interceptor
support for setjmp/longjmp on PPC64.

Patch discussion at reviews.llvm.org/D12841.

Details

Committed
wschmidtDec 8 2015, 1:54 PM
Parents
rL255056: [CMake] Ignore externalizing debuginfo for unit tests
Branches
Unknown
Tags
Unknown
foad added a subscriber: foad.Dec 14 2015, 1:25 AM
foad added inline comments.
/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc
256

Should be "44 and 46".

Is there any scope for commoning this code up with GetMaxVirtualAddress in lib/sanitizer_common/sanitizer_posix.cc ?

wschmidt added inline comments.Dec 14 2015, 8:26 AM
/compiler-rt/trunk/lib/tsan/rtl/tsan_platform_linux.cc
256

Yes, it should be 44 instead of 42. Sorry, I should have caught that.

I asked the same question of Simone about commoning the code in the original review. His responses about why he couldn't do that easily are there. Sorry, the reasons have fled from my cache...

wschmidt marked an inline comment as done.Dec 14 2015, 8:29 AM

r255507