[PATCH] D25337: [Modules] Add a command line option for enabling the modules feature exclusively for the Clang builtins.

Bruno Cardoso Lopes via cfe-commits cfe-commits at lists.llvm.org
Mon Oct 17 11:19:27 PDT 2016


bruno added a comment.



> The long answer is that there is a history of problems regarding the intrinsic files:
>  http://lists.llvm.org/pipermail/cfe-dev/2016-May/048837.html
>  http://lists.llvm.org/pipermail/cfe-dev/2016-September/050943.html
>  Mainly compatibility issues because MSVC makes all the intrinsics available all the time, while in clang this is not always the case (On Windows the different h files are not-included unless asked for explicitly since AVX512 was added which impacted compile-time).

Thinking a bit more about this: did you ever consider a solution where "immintrin.h" (or any similar other) would use "#include_next" and "__has_include_next" to point to a second level (user specified) immintrin.h, which then could use ifdefs to only include what's relevant?

> A suggestion was made to try and mitigate this by reducing the compile time using modules (only for the x86 intrinsics). This patch aims at adding this option. The new compile flag is just a milestone - if all goes well, we can turn this on by default (Then we won't actually need to use a specific compile flag, and we could always include all the intrinsic h files without their long compile time).

The speedup sounds nice, but it seems awkward IMO to have such specific behavior for x86 intrinsics only.


https://reviews.llvm.org/D25337





More information about the cfe-commits mailing list