]> granicus.if.org Git - clang/commit
[ms] Reintroduce feature guards in intrinsic headers in Microsoft mode
authorNico Weber <nicolasweber@gmx.de>
Mon, 16 May 2016 18:14:07 +0000 (18:14 +0000)
committerNico Weber <nicolasweber@gmx.de>
Mon, 16 May 2016 18:14:07 +0000 (18:14 +0000)
commitce2e20c483ad6ed39c9a8e5a6804a0f9e5986ae5
treee4b63de49708a64ea071faf924e6cdb5c193180e
parente57f2755bb3466c51d674b5e71c5a231a2533a38
[ms] Reintroduce feature guards in intrinsic headers in Microsoft mode

Visual Studio's C++ standard library headers include intrin.h, so the intrinsic
headers get included a lot more often in Microsoft mode than elsewhere. The
AVX512 intrinsics are a lot of code (0.7 MB, causing 30% compile time overhead
for small programs including e.g. <string> and 6% compile time overhead for
larger projects like e.g. v8). Since multiversioning can't be relied on in
Microsoft mode (cl.exe doesn't support it), having faster compiles seems like
the much better tradeoff until we have a better intrinsic story going forward
(which we'll need for e.g. PR19898).

Actually using intrinsics on Windows already requires the right /arch:
settings, so this patch should have no big behavior change.

See also thread "The intrinsics headers (especially avx512) are too big. What
to do about it?" on cfe-dev.

http://reviews.llvm.org/D20291

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@269675 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Headers/immintrin.h
lib/Headers/x86intrin.h
test/CodeGen/ms-mm-align.c