[llvm-dev] Naming clash: -DCLS=n and CLS in code
Bruce Hoult via llvm-dev
llvm-dev at lists.llvm.org
Tue Jun 19 13:18:54 PDT 2018
You've just insulted one of the most knowledgeable and helpful people in
LLVM land. (no not me) Good luck here in future.
On Tue, Jun 19, 2018 at 1:14 PM, U.Mutlu via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Tim Northover via llvm-dev wrote on 06/19/2018 09:49 PM:
>
>> On Tue, 19 Jun 2018 at 20:46, Bruce Hoult <brucehoult at sifive.com> wrote:
>>
>>> Furthermore .. in the articles you reference, the -DCLS=$(getconf
>>> LEVEL1_DCACHE_LINESIZE) is passed when compiling the user's program -- one
>>> doing extensive blocked matrix operations -- and not when building the
>>> *compiler*.
>>>
>>
>> It's worse. At least in the first case, the code looks like it
>> wouldn't even compile without that definition. That's not an
>> optimization flag, that's a weird build system.
>>
>
> We have a famous saying here over in Germany:
> "Wenn man keine Ahnung hat, sollte man besser die Schnauze halten."
>
> Enjoy :-)
>
>
>
> On Tue, Jun 19, 2018 at 12:12 PM, U.Mutlu via llvm-dev <
>>> llvm-dev at lists.llvm.org> wrote:
>>>
>>>>
>>>> Tim Northover wrote on 06/19/2018 08:54 PM:
>>>>
>>>>>
>>>>>>> Why are you passing that argument in the first place? The compiler
>>>>>>> completely ignores it.
>>>>>>>
>>>>>>
>>>>>>
>>>>>> CLS stands for cacheline size. It is an important parameter
>>>>>> for optimization of the generated code, at least with gcc/g++.
>>>>>> -DCLS=n should have the same importance like for example -DNDEBUG.
>>>>>>
>>>>>
>>>>>
>>>>> The GCC source doesn't appear to mention it, and neither does any
>>>>> documentation I can find. NDEBUG on the other hand is in both the C
>>>>> and C++ standards.
>>>>>
>>>>> I still think there's some weird library out there that interprets it
>>>>> the way you're suggesting, and Clang is not that weird library.
>>>>>
>>>>
>>>>
>>>> This is from a famous article series titled "What every programmer
>>>> should know about memory":
>>>> gcc -DCLS=$(getconf LEVEL1_DCACHE_LINESIZE) ...
>>>>
>>>> https://lwn.net/Articles/255364/
>>>> http://mosermichael.github.io/cstuff/all/blog/2015/12/11/wepskn.html
>>>> https://www.dcl.hpi.uni-potsdam.de/teaching/numasem/slides/
>>>> NUMASem_Matrix_multiplication.pdf
>>>>
>>>> You can find more examples by searching for "DCLS getconf
>>>> LEVEL1_DCACHE_LINESIZE".
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> LLVM Developers mailing list
>>>> llvm-dev at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>>>
>>>
>>>
>>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180619/208fff16/attachment.html>
More information about the llvm-dev
mailing list