llvm-project/llvm/lib/Transforms/Instrumentation
Vedant Kumar 55891fc71e Re-apply "[profiling] Remove dead profile name vars after emitting name data"
This reverts 295092 (re-applies 295084), with a fix for dangling
references from the array of coverage names passed down from frontends.

I missed this in my initial testing because I only checked test/Profile,
and not test/CoverageMapping as well.

Original commit message:

The profile name variables passed to counter increment intrinsics are dead
after we emit the finalized name data in __llvm_prf_nm. However, we neglect to
erase these name variables. This causes huge size increases in the
__TEXT,__const section as well as slowdowns when linker dead stripping is
disabled. Some affected projects are so massive that they fail to link on
Darwin, because only the small code model is supported.

Fix the issue by throwing away the name constants as soon as we're done with
them.

Differential Revision: https://reviews.llvm.org/D29921

llvm-svn: 295099
2017-02-14 20:03:48 +00:00
..
AddressSanitizer.cpp [WebAssembly] Add triple support for the new wasm object format 2017-01-17 20:34:09 +00:00
BoundsChecking.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
CFGMST.h [PGO] Fix PGO use ICE when there are unreachable BBs 2016-12-02 19:10:29 +00:00
CMakeLists.txt [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
DataFlowSanitizer.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
EfficiencySanitizer.cpp [esan] Remove global variable. 2016-10-18 19:39:23 +00:00
GCOVProfiling.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
IndirectCallPromotion.cpp [ICP] Fix bool conversion warning and actually write out the reason instead of dropping it. 2017-01-30 23:11:29 +00:00
InstrProfiling.cpp Re-apply "[profiling] Remove dead profile name vars after emitting name data" 2017-02-14 20:03:48 +00:00
Instrumentation.cpp [PM] code refactoring /NFC 2016-06-05 03:40:03 +00:00
LLVMBuild.txt [PGO] Resubmit "MST based PGO instrumentation infrastructure" (r254021) 2015-12-09 18:08:16 +00:00
MaximumSpanningTree.h
MemorySanitizer.cpp [AVX-512] Add AVX-512 vector shift intrinsics to memory santitizer. 2016-11-15 16:27:33 +00:00
PGOInstrumentation.cpp Fix variable name /NFC 2017-02-04 07:40:43 +00:00
SanitizerCoverage.cpp [sancov] using comdat only when it is enabled 2017-02-08 23:12:46 +00:00
ThreadSanitizer.cpp [tsan] Add support for C++ exceptions into TSan (call __tsan_func_exit during unwinding), LLVM part 2016-11-14 21:41:13 +00:00