llvm-project/llvm/lib
Evgeniy Stepanov 6c3a8cbc4d [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
..
Analysis [InstSimplify] Remove unreachable default from SimplifyBinOp. 2017-04-06 18:59:08 +00:00
AsmParser getPristineRegs is not accurately considering shrink wrapping puts 2017-03-30 22:34:20 +00:00
Bitcode Bitcode: Do not create FNENTRYs for aliases of functions. 2017-04-06 19:39:24 +00:00
CodeGen [SDAG] Fix visitAND optimization to deal with vector extract case again. 2017-04-06 19:05:41 +00:00
DebugInfo [PDB] Save one type record copy 2017-04-04 00:56:34 +00:00
Demangle Add support for demangling C++11 thread_local variables. 2017-01-31 15:56:36 +00:00
ExecutionEngine [Orc] Make orcError return an error_code rather than Error. 2017-04-06 01:35:13 +00:00
Fuzzer [Fuzzer] Flush std::cout before aborting in CxxStringEqTest 2017-04-03 23:00:25 +00:00
IR Verifier: Check some amdgpu calling convention restrictions 2017-04-04 18:43:11 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LTO LTO: call getRealLinkageName on IRNames before feeding to getGUID 2017-03-31 21:56:30 +00:00
LibDriver LibDriver: Allow resource files to be archive members. 2016-12-15 19:37:46 +00:00
LineEditor
Linker [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
MC StringTableBuilder: Don't assert when writing an empty raw string table. 2017-04-06 00:10:17 +00:00
Object [WASM] Remove other comparison of unsigned expression >= 0. 2017-04-01 19:47:52 +00:00
ObjectYAML Add virtual destructor to WasmYAML::Section or avoid memory leak 2017-03-31 22:14:14 +00:00
Option Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
Passes [PGO] Memory intrinsic calls optimization based on profiled size 2017-04-04 16:42:20 +00:00
ProfileData [PGO] Memory intrinsic calls optimization based on profiled size 2017-04-04 16:42:20 +00:00
Support Implement host CPU detection for AArch64 2017-04-04 19:06:04 +00:00
TableGen Use print() instead of dump() in code 2017-01-28 02:47:46 +00:00
Target [AMDGPU] Temporarily change constant address space from 4 to 2 2017-04-06 19:17:32 +00:00
Transforms [asan] Fix dead stripping of globals on Linux. 2017-04-06 19:55:17 +00:00
XRay [XRay] - Fix spelling error to test commit access. 2017-04-06 03:32:01 +00:00
CMakeLists.txt [XRay] Define the library for XRay trace logs 2017-01-11 06:39:09 +00:00
LLVMBuild.txt