1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test/Instrumentation
Evgeniy Stepanov a340589458 [asan] Fix dead stripping of globals on Linux.
Use a combination of !associated, comdat, @llvm.compiler.used and
custom sections to allow dead stripping of globals and their asan
metadata. Sometimes.

Currently this works on LLD, which supports SHF_LINK_ORDER with
sh_link pointing to the associated section.

This also works on BFD, which seems to treat comdats as
all-or-nothing with respect to linker GC. There is a weird quirk
where the "first" global in each link is never GC-ed because of the
section symbols.

At this moment it does not work on Gold (as in the globals are never
stripped).

This is a re-land of r298158 rebased on D31358. This time,
asan.module_ctor is put in a comdat as well to avoid quadratic
behavior in Gold.

llvm-svn: 299697
2017-04-06 19:55:17 +00:00
..
AddressSanitizer [asan] Fix dead stripping of globals on Linux. 2017-04-06 19:55:17 +00:00
BoundsChecking
DataFlowSanitizer [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
EfficiencySanitizer [EfficiencySanitizer] Using '$' instead of '#' for struct counter name 2016-09-22 08:33:06 +00:00
InstrProfiling Resubmit r297897: [PGO] Value profile for size of memory intrinsic calls 2017-03-16 21:15:48 +00:00
MemorySanitizer [msan] Handle x86_sse_stmxcsr and x86_sse_ldmxcsr. 2017-03-03 01:12:43 +00:00
SanitizerCoverage [sancov] Don't instrument blocks with no insertion point 2017-03-23 23:30:41 +00:00
ThreadSanitizer ThreadSanitizer: don't track swifterror memory addresses 2017-02-15 18:57:06 +00:00