This is an archive of the discontinued LLVM Phabricator instance.

Remove the feature guards from the Clang intrinsics header files.
Needs ReviewPublic

Authored by eladcohen on Dec 17 2016, 10:39 PM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

These were re-introduced to get better compile times in cases that don't actually require all the features. However, it creates compatibility issues with MSVC (in which all the intrinsics are available all the time).
With Clang's Modules feature we can remove these guards and still prevent large header files from compiling over and over again.

See also the thread "clang-cl's <intrin.h>, _tzcnt_u32, and compatibility with MSVC's <intrin.h>" in cfe-dev.

Diff Detail

Event Timeline

eladcohen updated this revision to Diff 81873.Dec 17 2016, 10:39 PM
eladcohen retitled this revision from to Remove the feature guards from the Clang intrinsics header files. .
eladcohen updated this object.
eladcohen added a subscriber: cfe-commits.