[llvm] r311742 - [sanitizer-coverage] Make sure pc-tables aren't dead stripped

Kostya Serebryany via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 8 22:39:36 PDT 2017


Sent a message in another thread ("Building LLVM's fuzzers")
Attempted to fix this in r312855

On Fri, Sep 8, 2017 at 7:28 PM, Kostya Serebryany <kcc at google.com> wrote:

>
>
> On Thu, Aug 24, 2017 at 6:24 PM, Justin Bogner via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: bogner
>> Date: Thu Aug 24 18:24:54 2017
>> New Revision: 311742
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=311742&view=rev
>> Log:
>> [sanitizer-coverage] Make sure pc-tables aren't dead stripped
>>
>> Add a reference to the PC array in llvm.used so that linkers that
>> aggressively dead strip (like ld64) don't remove it.
>>
>> Modified:
>>     llvm/trunk/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
>>
>> Modified: llvm/trunk/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transform
>> s/Instrumentation/SanitizerCoverage.cpp?rev=311742&r1=
>> 311741&r2=311742&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
>> (original)
>> +++ llvm/trunk/lib/Transforms/Instrumentation/SanitizerCoverage.cpp Thu
>> Aug 24 18:24:54 2017
>> @@ -557,6 +557,10 @@ void SanitizerCoverageModule::CreatePCAr
>>    FunctionPCsArray->setInitializer(
>>        ConstantArray::get(ArrayType::get(Int8PtrTy, N), PCs));
>>    FunctionPCsArray->setConstant(true);
>> +
>> +  // We don't reference the PCs array in any of our runtime functions,
>> so we
>> +  // need to prevent it from being dead stripped.
>> +  appendToUsed(*F.getParent(), {FunctionPCsArray});
>>
>
> Sadly, this seems to break everything.
> E.g. now to build clang's tools/clang/lib/Sema/SemaExpr.cpp with
> -fsanitize=fuzzer it takes ~6Gb  of RAM and all time/RAM is spent here.
>
> I'll try to come up with a simple repro.
>
>
>  }
>>
>>  void SanitizerCoverageModule::CreateFunctionLocalArrays(
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170908/98b392c4/attachment.html>


More information about the llvm-commits mailing list