diff options
| author | Matt Morehouse <mascasa@google.com> | 2018-07-12 20:24:58 +0000 |
|---|---|---|
| committer | Matt Morehouse <mascasa@google.com> | 2018-07-12 20:24:58 +0000 |
| commit | 45438161503f1688ed4af9ffda626b5c79454781 (patch) | |
| tree | 46dd5400322fba0e73ce5db7263cd062a8219302 /llvm/lib/Transforms | |
| parent | 94259ba13af6ba594fc1bd17611f15511d1730c0 (diff) | |
| download | bcm5719-llvm-45438161503f1688ed4af9ffda626b5c79454781.tar.gz bcm5719-llvm-45438161503f1688ed4af9ffda626b5c79454781.zip | |
[SanitizerCoverage] Add associated metadata to 8-bit counters.
Summary:
This allows counters associated with unused functions to be
dead-stripped along with their functions. This approach is the same one
we used for PC tables.
Fixes an issue where LLD removes an unused PC table but leaves the 8-bit
counter.
Reviewers: eugenis
Reviewed By: eugenis
Subscribers: llvm-commits, hiraditya, kcc
Differential Revision: https://reviews.llvm.org/D49264
llvm-svn: 336941
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp index a9336381edd..a4dd48c8dd6 100644 --- a/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp +++ b/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp @@ -595,7 +595,9 @@ void SanitizerCoverageModule::CreateFunctionLocalArrays( if (Options.Inline8bitCounters) { Function8bitCounterArray = CreateFunctionLocalArrayInSection( AllBlocks.size(), F, Int8Ty, SanCovCountersSectionName); - GlobalsToAppendToUsed.push_back(Function8bitCounterArray); + GlobalsToAppendToCompilerUsed.push_back(Function8bitCounterArray); + MDNode *MD = MDNode::get(F.getContext(), ValueAsMetadata::get(&F)); + Function8bitCounterArray->addMetadata(LLVMContext::MD_associated, *MD); } if (Options.PCTable) { FunctionPCsArray = CreatePCArray(F, AllBlocks); |

