<div dir="ltr"><div class="gmail_extra">Sorry for the late response.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Yes, we explicitly add -fomit-frame-pointer when we build sanitizer runtimes, and it may override what you set in CMAKE_CXX_FLAGS. It is indeed related to performance overhead, which is especially critical for slower tools like ThreadSanitizer, which inserts a call into runtime for *every* load/store in the original problem.</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 20, 2015 at 3:25 PM, Chris Bieneman <span dir="ltr"><<a href="mailto:cbieneman@apple.com" target="_blank">cbieneman@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">At the moment I don’t believe we support building ASAN with -fno-omit-frame-pointer because doing so would likely have significant adverse impact on performance. Samsonov would know better, but especially if you’re looking to run profiling tools you really don’t want frame pointers for the runtime libraries.<br></blockquote><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
-Chris<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> On Jul 20, 2015, at 3:00 PM, <a href="mailto:adek@adek.io">adek@adek.io</a> wrote:<br>
><br>
> This is just for compiler-rt. The reason for having<br>
> -fno-omit-frame-pointer is that tools like<br>
> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__perf.wiki.kernel.org_index.php_Main-5FPage&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=ypPl7-fiJ7lNO5HCWuNJFZICXLGx7bs0LEEc_YMZdmQ&s=ErAHzBHpiHd6mVJBH5cNSIGt2zjxvbY0i9V0W99f-Nk&e=" rel="noreferrer" target="_blank">https://perf.wiki.kernel.org/index.php/Main_Page</a> would work on ASAN<br>
> binaries.<br>
><br>
> Adrian<br>
><br>
> On Mon, Jul 20, 2015, at 02:23 PM, <a href="mailto:adek@adek.io">adek@adek.io</a> wrote:<br>
>> Hey,<br>
>><br>
>> Thanks for ideas. I tried them on, but none of them succeeded.<br>
>><br>
>> If I remove this line:<br>
>> <a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_llvm-2Dmirror_compiler-2Drt_blob_c9d8d35a5c2bdd6a0dd41f1b6cf3afb822df6a6e_CMakeLists.txt-23L207&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=ypPl7-fiJ7lNO5HCWuNJFZICXLGx7bs0LEEc_YMZdmQ&s=BW8fxRhSVIItafJE4S7js6CWN7ecN6vERII46iHaaN0&e=" rel="noreferrer" target="_blank">https://github.com/llvm-mirror/compiler-rt/blob/c9d8d35a5c2bdd6a0dd41f1b6cf3afb822df6a6e/CMakeLists.txt#L207</a><br>
>><br>
>> Everything is correctly built with -fno-omit-frame-pointer.<br>
>><br>
>> Any suggestion why it would be the case?<br>
>><br>
>> Thanks,<br>
>> Adrian<br>
>><br>
>> On Mon, Jul 20, 2015, at 01:39 PM, Martin J. O'Riordan wrote:<br>
>>> I regularly use '-DCMAKE_CXX_FLAGS' when configuring CLang/LLVM to<br>
>>> distinguish my builds (Alpha/Beta/Final) or to build custom versions,<br>
>>> usually by adding additional '-D' flags, but I discovered I had to add<br>
>>> the ':STRING' qualifier to it when invoking 'cmake'.  With 'gmake' this<br>
>>> is equivalent to '--with-extra-options="whatever flags":<br>
>>><br>
>>>     -DCMAKE_CXX_FLAGS:STRING="whatever flags"<br>
>>><br>
>>> This works regardless of whether it is a Debug or Release build.<br>
>>><br>
>>> All the best,<br>
>>><br>
>>>     MartinO<br>
>>><br>
>>> -----Original Message-----<br>
>>> From: <a href="mailto:llvmdev-bounces@cs.uiuc.edu">llvmdev-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvmdev-bounces@cs.uiuc.edu">llvmdev-bounces@cs.uiuc.edu</a>] On<br>
>>> Behalf Of Chris Bieneman<br>
>>> Sent: 20 July 2015 19:23<br>
>>> To: <a href="mailto:adek@adek.io">adek@adek.io</a><br>
>>> Cc: <a href="mailto:llvmdev@cs.uiuc.edu">llvmdev@cs.uiuc.edu</a><br>
>>> Subject: Re: [LLVMdev] CMake does not propagate flags to build<br>
>>><br>
>>> Adrian,<br>
>>><br>
>>> What makes you think CMAKE_CXX_FLAGS isn’t being respected?<br>
>>><br>
>>> The tests will always occur regardless of whether or not you set the<br>
>>> CXX_FLAGS explicitly.<br>
>>><br>
>>> -Chris<br>
>>><br>
>>>> On Jul 20, 2015, at 9:36 AM, <a href="mailto:adek@adek.io">adek@adek.io</a> wrote:<br>
>>>><br>
>>>><br>
>>>> Hey Pete,<br>
>>>><br>
>>>> I also tried CMAKE_CXX_FLAGS_RELEASE<br>
>>>> with the same effect.<br>
>>>><br>
>>>> On Mon, Jul 20, 2015, at 09:34 AM, Pete Cooper wrote:<br>
>>>>> Hi Adrian<br>
>>>>><br>
>>>>> I’m not sure if the CMAKE_CXX_FLAGS is used in LLVM.  We have our own<br>
>>>>> flags for different configurations.  I don’t remember if our ones<br>
>>>>> inherit from CMAKE_CXX_FLAGS or override it completely.  Anyway, they are:<br>
>>>>> - CMAKE_CXX_FLAGS_DEBUG<br>
>>>>> - CMAKE_CXX_FLAGS_MINSIZEREL<br>
>>>>> - CMAKE_CXX_FLAGS_RELEASE<br>
>>>>> - CMAKE_CXX_FLAGS_RELWITHDEBINFO<br>
>>>>><br>
>>>>> The one of those you get depends on what you set CMAKE_BUILD_TYPE to.<br>
>>>>> Options are ‘Debug, Release, RelWithDebInfo, MinSizeRel’<br>
>>>>><br>
>>>>> Cheers,<br>
>>>>> Pete<br>
>>>>>> On Jul 17, 2015, at 8:41 PM, <a href="mailto:adek@adek.io">adek@adek.io</a> wrote:<br>
>>>>>><br>
>>>>>> '-DCMAKE_CXX_FLAGS=-fno-omit-frame-pointer -Wno-maybe-uninitialized<br>
>>>>>> -fPIC -fPIE'<br>
>>>>>> -- The C compiler identification is GNU 4.8.1<br>
>>>>>> -- The CXX compiler identification is GNU 4.8.1<br>
>>>>>> -- Check for working C compiler:<br>
>>>>>> /home/engshare/third-party2/gcc/4.8.1/centos6-native/cc6c9dc/bin/gcc<br>
>>>>>> -- Check for working C compiler:<br>
>>>>>> /home/engshare/third-party2/gcc/4.8.1/centos6-native/cc6c9dc/bin/gcc<br>
>>>>>> -- works<br>
>>>>>> -- Detecting C compiler ABI info<br>
>>>>>> -- Detecting C compiler ABI info - done<br>
>>>>>> -- Detecting C compile features<br>
>>>>>> -- Detecting C compile features - done<br>
>>>>>> -- Check for working CXX compiler:<br>
>>>>>> /home/engshare/third-party2/gcc/4.8.1/centos6-native/cc6c9dc/bin/g++<br>
>>>>>> -- Check for working CXX compiler:<br>
>>>>>> /home/engshare/third-party2/gcc/4.8.1/centos6-native/cc6c9dc/bin/g++<br>
>>>>>> -- works<br>
>>>>>> -- Detecting CXX compiler ABI info<br>
>>>>>> -- Detecting CXX compiler ABI info - done<br>
>>>>>> -- Detecting CXX compile features<br>
>>>>>> -- Detecting CXX compile features - done<br>
>>>>>> -- Found PythonInterp:<br>
>>>>>> /home/engshare/third-party2/python/2.7.5/centos6-native/da39a3e/bin/<br>
>>>>>> python2.7<br>
>>>>>> (found version "2.7.5")<br>
>>>>>> -- Looking for unwind.h<br>
>>>>>> -- Looking for unwind.h - found<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FPIC_FLAG<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FPIC_FLAG - Success<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FPIE_FLAG<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FPIE_FLAG - Success<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FNO_BUILTIN_FLAG<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FNO_BUILTIN_FLAG - Success<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG - Success<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG<br>
>>>>>> -- Performing Test COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG -<br>
>>>>>> Success<br>
>>>>>><br>
>>>>>> Is it still related to this:<br>
>>>>>> <a href="http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-March/071394.html" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/pipermail/llvmdev/2014-March/071394.html</a><br>
>>>>>><br>
>>>>>><br>
>>>>>> Adrian Zgorzałek<br>
>>>>>><br>
>>>>>> _______________________________________________<br>
>>>>>> LLVM Developers mailing list<br>
>>>>>> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
>>>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
>>>>><br>
>>>><br>
>>>> _______________________________________________<br>
>>>> LLVM Developers mailing list<br>
>>>> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
>>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> LLVM Developers mailing list<br>
>>> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
>>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
>>><br>
>><br>
>> _______________________________________________<br>
>> LLVM Developers mailing list<br>
>> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
>> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
><br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" rel="noreferrer" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" rel="noreferrer" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Alexey Samsonov<br><a href="mailto:vonosmas@gmail.com" target="_blank">vonosmas@gmail.com</a></div></div>
</div></div>