[llvm-dev] Naming clash: -DCLS=n and CLS in code

U.Mutlu via llvm-dev llvm-dev at lists.llvm.org
Tue Jun 19 12:12:30 PDT 2018


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".




More information about the llvm-dev mailing list